שימוש
explore: explore_name {
symmetric_aggregates: yes
}
|
היררכיה
symmetric_aggregates |
ערך ברירת המחדל
yes
אמצעי תשלום מקובלים
ערך בוליאני (yes או no)
|
הגדרה
הפרמטר symmetric_aggregates קובע אם צבירה סימטרית תוחל ב-Explore נתון. כשהאפשרות symmetric_aggregates מופעלת, פונקציות צבירה מחזירות תוצאות נכונות, גם כשפעולות איחוד גורמות ל-fanout. בדף השיטות המומלצות הסבר על צבירה סימטרית יש תיאור מפורט יותר של צבירה סימטרית, ובפוסט לקהילה הבעיה של fanout ב-SQL יש הסבר על בעיית ה-fanout שהצבירה הסימטרית פותרת.
כברירת מחדל, צבירה סימטרית מופעלת בכל Explore ב-Looker. כלומר, אם ניב ה-SQL שלכם תומך בצבירה סימטרית, אתם צריכים לכלול את הפרמטר symmetric_aggregates רק אם אתם רוצים להשבית את הפונקציונליות הזו ב-Explore.
דוגמאות
מפעילים את הצבירה הסימטרית ב-Explore של product:
explore: product {
symmetric_aggregates: yes # the default value, could be excluded
}
משביתים את הצבירה הסימטרית ב-Explore של customer:
explore: customer {
symmetric_aggregates: no
}
מה כדאי לקחת בחשבון?
יצירת צירופים בזהירות כשהצבירה הסימטרית מושבתת
צבירה סימטרית מונעת מחישובים מסוימים להניב תוצאות שגויות כשצירוף גורם ל-fanout. לכן, אם הניב שלכם לא תומך בצבירה סימטרית, או אם אתם בוחרים להשבית אותה, תצטרכו להיזהר כשאתם מבצעים צירופים ב-Looker. הבעיה הזו והפתרונות האפשריים לה מתוארים בפירוט רב בפוסט לקהילה The problem of SQL fanouts.
לא כל הדיאלקטים של מסדי הנתונים תומכים בסוגי המדדים "חציון" ו"אחוזון" עם צבירה סימטרית
כשמפעילים צבירה סימטרית, Looker ממיר באופן אוטומטי את סוגי המדדים percentile ו-median ל-percentile_distinct ול-median_distinct כשצירוף כולל fanout. לא כל הדיאלקטים של מסדי הנתונים שתומכים בצבירה סימטרית תומכים בסוגי המדדים percentile_distinct ו-median_distinct. בדף התיעוד Measure types אפשר לבדוק אם הדיאלקט של מסד הנתונים תומך בסוגי המדדים האלה.
אם מופיעה שגיאה שדומה ל-SQL dialect doesn't support Symmetric Aggregates with percentiles, field ignored., סימן שהדיאלקט של מסד הנתונים לא תומך בסוגי המדדים percentile_distinct ו-median_distinct. כדי לעקוף את הבעיה, משנים את סוג המדד ל-type: number ואז מציינים את פונקציית הצבירה באמצעות sql: median(${dimension}). עם זאת, הפעולה הזו משביתה את הצבירה הסימטרית.
צבירה סימטרית ושגיאות Value Overflow
כשמנסים להוריד או להציג מרכזי בקרה, יכול להיות שתופיע שגיאה כמו A LookML model issue occurred. Non-unique value/primary key (or sql_distinct_key), value overflow or collision when computing sum.
כשצוברים מדד עם ערכים גדולים, חישובים ברקע לצבירה סימטרית עלולים לגרום לשגיאות של גלישת מספרים עשרוניים. שגיאות של גלישת מספרים עשרוניים נגרמות כש-Looker מנסה לבצע צבירה סימטרית (לדוגמה, type: sum) עם צירופים שמאליים של ערכים גדולים מאוד, שחורגים מ-14 ספרות (ערכים שגדולים מ-10,000,000,000,000).
כדי לפתור את הבעיה, אתם יכולים להשתמש בפרמטר precision ולהגדיר אותו לערך 5 או פחות. לדוגמה:
measure: average_value {
type: average
precision: 5
sql: ${value} ;;
}
תמיכה בדיאלקטים לצבירה סימטרית
האפשרות להשתמש בצבירה סימטרית תלויה בדיאלקט של מסד הנתונים שבו משתמש החיבור שלכם ל-Looker. בגרסה האחרונה של Looker, הניבים הבאים תומכים במודעות לצבירת נתונים:
| ניב | יש תמיכה? |
|---|---|
| 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 |