שימוש
view: view_name {
measure: field_name {
allow_approximate_optimization: yes
}
}
|
היררכיה
allow_approximate_optimization |
סוגי שדות אפשריים
מדידה
ערך ברירת המחדל
no
אמצעי תשלום מקובלים
ערך בוליאני (כן או לא)
|
הגדרה
בניבים שתומכים בשרטוטי HyperLogLog, Looker יכול להשתמש באלגוריתם HyperLogLog כדי להעריך ספירות נפרדות לטבלאות מסכמות.
ההצהרה allow_approximate_optimization: yes מאפשרת ל-Looker לאחסן שרטוטים של HyperLogLog בטבלאות מסכמות, כך ש-Looker יכול להשתמש בקירובים לספירות נפרדות בשביל מודעוּת לצבירת נתונים.
בקטע תמיכה בניבים בספירות ייחודיות עם מוּדעוּת לטבלאות מסכמות שבדף הזה מופיעה רשימת הניבים שתומכים בספירות ייחודיות בטבלאות מסכמות באמצעות שרטוטי HyperLogLog.
באופן כללי, אי אפשר לתמוך בספירות נפרדות באמצעות מודעות לצבירת נתונים, כי אי אפשר לקבל נתונים מדויקים אם מנסים לצבור ספירות נפרדות. לדוגמה, אם אתם סופרים את המשתמשים הייחודיים באתר, יכול להיות שמשתמש מסוים נכנס לאתר פעמיים, בהפרש של שלושה שבועות. אם תנסו להחיל טבלה מסכמת שבועית כדי לקבל ספירה חודשית של משתמשים ייחודיים באתר, המשתמש הזה ייספר פעמיים בשאילתה של הספירה הייחודית החודשית, והנתונים יהיו שגויים.
אחת הדרכים לעקוף את זה היא ליצור טבלה מסכמת שתואמת בדיוק לשאילתה של Explore, כמו שמתואר בדף התיעוד מודעות לצבירת נתונים. כשהשאילתה של הכלי "ניתוחים" והשאילתה של הטבלה המסכמת זהות, מדדי הספירה הייחודית מספקים נתונים מדויקים, ולכן אפשר להשתמש בהם כדי להבין את הנתונים המצטברים.
אפשרות אחרת היא להשתמש בקירובים לספירות נפרדות. לאלגוריתם HyperLogLog יש שגיאה פוטנציאלית של כ-2%. הפרמטר allow_approximate_optimization מחייב את מפתחי Looker לאשר שזה בסדר להשתמש בנתונים משוערים למדד, כדי שניתן יהיה לחשב את המדד באופן משוער מטבלאות מסכמות.
כשמשתמשים במודעות לצבירת נתונים, יש שני מקרים שבהם ספירות נפרדות נכנסות לתמונה:
- במקרה הראשון, המידות הן
type: count_distinct. - המקרה השני הוא עם מדדים של
type: countשמעובדים בפועל על ידי Looker כסוגי מדדים שלcount_distinct. כמו שמוסבר בדף התיעוד בנושא מודעות נצברת, Looker מעבד מדדיcountכ-count_distinctכדי למנוע חישובים שגויים של fanout בניתוחים שמצרפים כמה טבלאות של מסדי נתונים.
בשני המקרים האלה, אם הניב תומך בתרשימי HyperLogLog, אתם יכולים להוסיף את ההצהרה allow_approximate_optimization: yes למדדים כדי לאפשר ערכים משוערים. אחר כך אפשר לכלול את המדדים האלה בטבלאות מסכמות.
גם עבור מדדים שמוגדרים עם
allow_approximate_optimization: yes, Looker יחזיר נתונים מדויקים כשאפשר. לדוגמה, אם המאפיינים בשאילתת Explore תואמים בדיוק למאפיינים בטבלה מסכמת, Looker יכול לספק נתונים מדויקים של ספירות נפרדות, בלי צורך להעריך. במקרה כזה, בכרטיסייה SQL בכלי הניתוחים תוכלו לראות שנעשה שימוש במדדים של ספירת ערכים ייחודיים כדי לצבור נתונים על המוּדעוּת, בלי להשתמש באלגוריתם HyperLogLog.
דוגמה
המדד apx_unique_count שמוצג בדוגמה הזו מוגדר ל-allow_approximate_optimization: yes, כלומר אפשר להשתמש במדד ב-aggregate_table.
measure: apx_unique_count {
type: count_distinct
allow_approximate_optimization: yes # default value is no
sql: ${id} ;;
}
תמיכה בדיאלקט לספירות נפרדות עם מוּדעוּת לצבירה
Looker יכול להשתמש בספירות נפרדות למודעות מצטברת עם ניבים של מסדי נתונים שתומכים בשרטוטי HyperLogLog. בגרסה האחרונה של Looker, הדיאלקטים הבאים של SQL נתמכים בספירות נפרדות עם מודעות לצבירה:
| ניב | יש תמיכה? |
|---|---|
| Actian Avalanche | |
| Amazon Athena | |
| Amazon Aurora MySQL | |
| Amazon Redshift | |
| Amazon Redshift 2.1+ | |
| Amazon Redshift Serverless 2.1+ | |
| Apache Druid | |
| Apache Druid 0.13.x - 0.17.x | |
| Apache Druid 0.18+ | |
| Apache Hive 2.3+ | |
| Apache Hive 3.1.2+ | |
| Apache Spark 3+ | |
| ClickHouse | |
| ClickHouse 26+ | |
| Cloudera Impala 3.1+ | |
| Cloudera Impala 3.1+ with Native Driver | |
| Cloudera Impala with Native Driver | |
| DataVirtuality | |
| Databricks | |
| Denodo 7 | |
| Denodo 8 & 9 | |
| Dremio | |
| Dremio 11+ | |
| Dremio 26+ with Arrow Flight SQL | |
| Exasol | |
| Google BigQuery Legacy SQL | |
| Google BigQuery Standard SQL | |
| Google Cloud AlloyDB for PostgreSQL | |
| Google Cloud PostgreSQL | |
| Google Cloud SQL | |
| Google Spanner | |
| Greenplum | |
| HyperSQL | |
| IBM Netezza | |
| MariaDB | |
| Microsoft Azure PostgreSQL | |
| Microsoft Azure SQL Database | |
| Microsoft Azure Synapse Analytics | |
| Microsoft SQL Server 2008+ | |
| Microsoft SQL Server 2012+ | |
| Microsoft SQL Server 2016 | |
| Microsoft SQL Server 2017+ | |
| MongoBI | |
| MongoSQL | |
| MySQL | |
| MySQL 8.0.12+ | |
| Oracle | |
| Oracle ADWC | |
| PostgreSQL 9.5+ | |
| PostgreSQL pre-9.5 | |
| PrestoDB | |
| PrestoSQL | |
| SAP HANA | |
| SAP HANA 2+ | |
| SingleStore | |
| SingleStore 7+ | |
| Snowflake | |
| Teradata | |
| Trino | |
| Vector | |
| Vertica |
כדי להבין את היתרונות והחסרונות של השיטה הזו מבחינת מהירות ודיוק, כדאי לעיין במסמכי התיעוד של ניב ה-SQL שלכם.