Usage
view: view_name {
measure: field_name {
allow_approximate_optimization: yes
}
}
|
היררכיה
allow_approximate_optimization |
סוגי שדות אפשריים
מדידה
ערך ברירת המחדל
no
מקבל
ערך בוליאני (yes או no)
|
הגדרה
בניבים שתומכים בסקיצות של HyperLogLog, Looker יכול להשתמש באלגוריתם HyperLogLog כדי להעריך את מספר הערכים הייחודיים בטבלאות מצטברות.
ההצהרה allow_approximate_optimization: yes מאפשרת ל-Looker לאחסן סקיצות של HyperLogLog בטבלאות מצטברות, מה שאומר ש-Looker יכול להשתמש בקירובים לספירות נפרדות עבור המודעות המצטברת.
בקטע תמיכה בדיאלקטים לספירות נפרדות עם מודעות לטבלאות מסכמות בדף הזה מופיעה רשימה של דיאלקטים שתומכים בספירות נפרדות לטבלאות מסכמות באמצעות סקיצות של HyperLogLog.
באופן כללי, אי אפשר לתמוך בספירות נפרדות באמצעות מודעות לאגרגציה, כי אי אפשר לקבל נתונים מדויקים אם מנסים לצבור ספירות נפרדות. לדוגמה, אם אתם סופרים את המשתמשים הייחודיים באתר, יכול להיות שמשתמש מסוים הגיע לאתר פעמיים, בהפרש של שלושה שבועות. אם ניסיתם להחיל טבלה מסכמת שבועית כדי לקבל ספירה חודשית של משתמשים ייחודיים באתר שלכם, המשתמש הזה ייספר פעמיים בשאילתת הספירה החודשית של משתמשים ייחודיים, והנתונים יהיו שגויים.
פתרון עקיף אפשרי הוא ליצור טבלת צבירה שתואמת בדיוק לשאילתת ניתוח נתונים, כמו שמתואר בדף התיעוד בנושא צבירה. כששאילתת הניתוח ושאילתת הטבלה המצטברת זהות, מדדי הספירה הייחודית מספקים נתונים מדויקים, ולכן אפשר להשתמש בהם כדי להבין את הנתונים המצטברים.
אפשרות אחרת היא להשתמש בקירובים לספירות נפרדות. האלגוריתם HyperLogLog ידוע בכך שיש בו שגיאה פוטנציאלית של כ-2%. הפרמטר allow_approximate_optimization מחייב את מפתחי Looker שלכם לאשר שאפשר להשתמש בנתונים משוערים למדד, כדי שהמדד יוכל להיות מחושב בקירוב מטבלאות מצטברות.
במודעות מצטברת, יש שני מקרים שבהם נכנסים לתמונה ספירות נפרדות:
- המקרה הראשון הוא עם מידות של
type: count_distinct. - המקרה השני הוא עם מדדים של
type: countשמעובדים בפועל על ידי Looker כסוגי מדדים שלcount_distinct. כפי שמוסבר בדף התיעוד בנושא מודעות מצטברת, Looker מעבד מדדים שלcountבתורcount_distinctכדי להימנע מחישובים שגויים של פיצול נתונים ב'ניתוחים' שבהם מתבצע join של כמה טבלאות במסד נתונים.
בשני המקרים האלה, אם הדיאלקט שלכם תומך בסקיצות של 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 | |
| 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+ | |
| 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 כדי להבין את היתרונות והחסרונות של השיטה הזו מבחינת מהירות ודיוק.