symmetric_aggregates

Utilisation

explore: explore_name {
  symmetric_aggregates: yes
}
Hiérarchie
symmetric_aggregates
Valeur par défaut
yes

Acceptation
Booléen (yes ou no)

Définition

Le paramètre symmetric_aggregates détermine si des agrégations symétriques seront appliquées ou non dans une exploration donnée. Lorsque symmetric_aggregates est activé, les fonctions d'agrégation renvoient des résultats corrects, même lorsque les jointures se soldent par une sortance. Les agrégats symétriques sont décrits plus en détail sur la page des bonnes pratiques Comprendre les agrégats symétriques. Le problème de sortance qu'ils résolvent est expliqué dans le post de la communauté Le problème de sortance SQL.

Par défaut, les agrégations symétriques sont activées pour chaque exploration dans Looker. Cela signifie que si votre dialecte SQL est compatible avec les agrégats symétriques, vous ne devez inclure le paramètre symmetric_aggregates que si vous souhaitez désactiver cette fonctionnalité pour une exploration.

Exemples

Activez les agrégations symétriques pour l'exploration product :

explore: product {
  symmetric_aggregates: yes  # the default value, could be excluded
}

Désactivez les agrégations symétriques pour l'exploration customer :

explore: customer {
  symmetric_aggregates: no
}

Éléments à prendre en compte

Créer des jointures avec précaution lorsque les agrégats symétriques sont désactivés

Les agrégations symétriques protègent certains calculs contre les résultats incorrects lorsqu'une jointure entraîne une sortance. Par conséquent, si votre dialecte ne reconnaît pas les agrégations symétriques ou si vous choisissez de les désactiver, vous devrez faire attention lorsque vous exécuterez des jointures dans Looker. Ce problème et les solutions de contournement sont décrits en détail dans le post de la communauté Le problème des fan-outs SQL.

Tous les dialectes de base de données ne sont pas compatibles avec les types de mesures de médiane et de centile avec des agrégations symétriques.

Lorsque les agrégations symétriques sont activées, Looker convertit automatiquement les types de mesures percentile et median en percentile_distinct et median_distinct lorsqu'une jointure implique une sortance. Les types de mesures percentile_distinct et median_distinct ne sont pas compatibles avec tous les dialectes de base de données qui acceptent les agrégats symétriques. Pour savoir si votre dialecte de base de données est compatible avec ces types de mesures, consultez la page de documentation Types de mesures.

Si vous recevez une erreur semblable à SQL dialect doesn't support Symmetric Aggregates with percentiles, field ignored., cela signifie que votre dialecte de base de données n'est pas compatible avec les types de mesures percentile_distinct et median_distinct. Pour contourner ce problème, définissez le type de mesure sur type: number, puis spécifiez la fonction d'agrégation avec sql: median(${dimension}). Toutefois, cela désactive les agrégations symétriques.

Agrégations symétriques et erreurs Value Overflow

Lorsque vous essayez de télécharger ou d'afficher des tableaux de bord, une erreur telle que A LookML model issue occurred. Non-unique value/primary key (or sql_distinct_key), value overflow or collision when computing sum. peut s'afficher.

Lorsque vous agrégez une mesure avec des valeurs élevées, les calculs en arrière-plan pour l'agrégation symétrique peuvent entraîner des erreurs de dépassement de capacité décimale. Les erreurs de dépassement de capacité décimale se produisent lorsque Looker tente d'effectuer une agrégation symétrique (par exemple, type: sum) avec des jointures de gauche pour des valeurs très élevées qui dépassent 14 chiffres (valeurs supérieures à 10 000 000 000 000).

Pour résoudre ce problème, vous pouvez utiliser le paramètre precision et le définir sur 5 ou une valeur inférieure. Exemple :

measure: average_value {
  type: average
  precision: 5
  sql: ${value} ;;
}

Compatibilité des dialectes avec les agrégations symétriques

La possibilité d'utiliser des agrégations symétriques dépend du dialecte de base de données de votre connexion Looker. Dans la dernière version de Looker, les dialectes suivants sont compatibles avec la reconnaissance des agrégats :

Dialecte Compatibilité
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