Usage
explore: explore_name {
symmetric_aggregates: yes
}
|
היררכיה
symmetric_aggregates |
ערך ברירת המחדל
yes
מקבל
ערך בוליאני (yes או no)
|
הגדרה
הפרמטר symmetric_aggregates קובע אם צבירות סימטריות יחולו בתוך ניתוח נתון. כשהאפשרות symmetric_aggregates מופעלת, פונקציות מצטברות מחזירות תוצאות נכונות, גם כשצירופים מובילים לפיצול. תיאור מפורט יותר של צבירות סימטריות מופיע בדף השיטות המומלצות בנושא הסבר על צבירות סימטריות, והסבר על בעיית הפיצול שהן פותרות מופיע בפוסט בקהילה בנושא הבעיה של פיצולי SQL.
כברירת מחדל, צבירות סימטריות מופעלות בכל Explore ב-Looker. המשמעות היא שאם דיאלקט ה-SQL שלכם תומך באגרגטים סימטריים, אתם צריכים לכלול את הפרמטר symmetric_aggregates רק אם אתם רוצים להשבית את הפונקציונליות הזו בדוח Explore.
דוגמאות
מפעילים צבירות סימטריות ב-product Explore:
explore: product {
symmetric_aggregates: yes # the default value, could be excluded
}
כדי להשבית צבירות סימטריות ב-Explore customer:
explore: customer {
symmetric_aggregates: no
}
דברים שכדאי לקחת בחשבון
יצירת הצטרפות בזהירות כשצבירות סימטריות מושבתות
צבירות סימטריות מגנות על חישובים מסוימים מפני תוצאות שגויות כשפעולת הצטרפות מובילה לפיצול. לכן, אם הניב שלכם לא תומך באגרגציות סימטריות, או אם אתם בוחרים להשבית אותן, תצטרכו לנקוט משנה זהירות כשאתם מבצעים צירופים ב-Looker. הבעיה הזו והפתרונות שלה מתוארים בפירוט בפוסט לקהילה הבעיה של פיצול שאילתות SQL.
לא בכל הניבים של מסדי הנתונים יש תמיכה בסוגי המדדים 'חציון' ו'אחוזון' עם צבירות סימטריות
כשמפעילים צבירות סימטריות, 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, הדיאלקטים הבאים תומכים ב-Aggregate Awareness:
| דיאלקט | נתמך? |
|---|---|
| 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 |