symmetric_aggregates

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
}

משביתים צבירות סימטריות ב-customer Explore:

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