Nutzung
explore: explore_name {
symmetric_aggregates: yes
}
|
Hierarchie
symmetric_aggregates |
Standardwert
yes
Akzeptiert
Ein boolescher Wert (yes oder no)
|
Definition
Mit dem Parameter symmetric_aggregates wird festgelegt, ob symmetrische Aggregate in einem bestimmten Explore angewendet werden. Wenn symmetric_aggregates aktiviert ist, geben Aggregatfunktionen korrekte Ergebnisse zurück, auch wenn Joins zu einem Fanout führen. Symmetrische Aggregate werden auf der Seite Symmetrische Aggregate ausführlicher beschrieben. Das Fanout-Problem, das sie lösen, wird im Community-Beitrag Das Problem von SQL-Fanouts erläutert.
Standardmäßig sind symmetrische Aggregate für alle Explores in Looker aktiviert. Das bedeutet, dass wenn Ihr SQL-Dialekt symmetrische Aggregate unterstützt, Sie den Parameter symmetric_aggregates nur einfügen müssen, wenn Sie diese Funktion für einen Explore deaktivieren möchten.
Beispiele
Aktivieren Sie symmetrische Aggregate für den Explore product:
explore: product {
symmetric_aggregates: yes # the default value, could be excluded
}
Symmetrische Aggregate für den Explore customer deaktivieren:
explore: customer {
symmetric_aggregates: no
}
Wichtige Punkte
Verknüpfungen sorgfältig erstellen, wenn symmetrische Aggregate deaktiviert sind
Symmetrische Summen verhindern, dass bestimmte Berechnungen falsche Ergebnisse liefern, wenn ein Join zu einem Fanout führt. Wenn Ihr Dialekt symmetrische Aggregate nicht unterstützt oder Sie sie deaktivieren, müssen Sie bei der Ausführung von Joins in Looker besonders aufmerksam sein. Dieses Problem und die entsprechenden Workarounds werden im Communitybeitrag The problem of SQL fanouts (Das Problem von SQL-Fanouts) ausführlich beschrieben.
Nicht alle Datenbankdialekte unterstützen Messwerttypen für Median und Perzentil mit symmetrischen Aggregaten.
Wenn symmetrische Aggregate aktiviert sind, werden die Messwerttypen percentile und median automatisch in percentile_distinct und median_distinct konvertiert, wenn ein Join einen Fanout umfasst. Nicht alle Datenbankdialekte, die symmetrische Aggregate unterstützen, unterstützen die Messwerttypen percentile_distinct und median_distinct. In der Dokumentation auf der Seite Messwerte können Sie nachsehen, ob Ihr Datenbankdialekt diese Messwerttypen unterstützt.
Wenn Sie einen Fehler wie SQL dialect doesn't support Symmetric Aggregates with percentiles, field ignored. erhalten, bedeutet das, dass Ihr Datenbankdialekt die Messwerttypen percentile_distinct und median_distinct nicht unterstützt. Um dieses Problem zu umgehen, ändern Sie den Messwerttyp in type: number und geben Sie dann die Aggregatfunktion mit sql: median(${dimension}) an. Dadurch werden jedoch symmetrische Aggregate deaktiviert.
Symmetrische Aggregate und Value Overflow-Fehler
Wenn Sie versuchen, Dashboards herunterzuladen oder anzusehen, kann ein Fehler wie A LookML model issue occurred. Non-unique value/primary key (or sql_distinct_key), value overflow or collision when computing sum. auftreten.
Wenn Sie einen Messwert mit großen Werten aggregieren, können Hintergrundberechnungen für die symmetrische Aggregation Dezimalstellenüberlauffehler verursachen. Dezimalüberlauffehler treten auf, wenn Looker versucht, eine symmetrische Aggregation (z. B. type: sum) mit LEFT JOINS für sehr große Werte auszuführen, die 14 Ziffern überschreiten (Werte, die größer als 10.000.000.000.000 sind).
Um dieses Problem zu beheben, können Sie den Parameter precision verwenden und ihn auf 5 oder niedriger festlegen. Beispiel:
measure: average_value {
type: average
precision: 5
sql: ${value} ;;
}
Dialektunterstützung für symmetrische Aggregate
Die Möglichkeit, symmetrische Summen zu verwenden, hängt vom Datenbankdialekt ab, den Ihre Looker-Verbindung verwendet. In der aktuellen Version von Looker unterstützen die folgenden Dialekte die Aggregatberücksichtigung:
| Dialekt | Unterstützt? |
|---|---|
| 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 |