allow_approximate_optimization

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 זהים למאפיינים בטבלה מסכמת, 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
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 כדי להבין את היתרונות והחסרונות של השיטה הזו מבחינת מהירות ודיוק.