Utilisation
explore: explore_name {
symmetric_aggregates: yes
}
|
Hiérarchie
symmetric_aggregates |
Valeur par défaut
yes
Acceptation
Valeur booléenne (yes ou no)
|
Définition
Le paramètre symmetric_aggregates détermine si les 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 entraînent une sortance. Les agrégations symétriques sont décrites plus en détail sur la page des bonnes pratiques Comprendre les agrégations symétriques, et le problème de sortance qu'elles résolvent est expliqué dans le post destiné à la communauté Le problème des sortances SQL.
Par défaut, les agrégations symétriques sont activées pour chaque exploration dans Looker. Cela signifie que si votre dialecte SQL accepte les agrégations 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égations symétriques sont désactivées
Les agrégations symétriques empêchent certains calculs de donner des résultats incorrects lorsqu'une jointure entraîne une sortance. Par conséquent, si votre dialecte n'est pas compatible avec les agrégations symétriques ou si vous choisissez de les désactiver, vous devrez faire preuve de prudence 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é The problem of SQL fanouts (Le problème des fanouts 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égats symétriques sont activés, Looker convertit automatiquement les types de mesures percentile et median en percentile_distinct et median_distinct lorsqu'une jointure implique une distribution ramifiée. Les dialectes de base de données qui prennent en charge les agrégats symétriques ne sont pas tous compatibles avec les types de mesures percentile_distinct et median_distinct. Vous pouvez vérifier si votre dialecte de base de données est compatible avec ces types de mesures sur 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, remplacez le type de mesure par 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.
Lors de l'agrégation d'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écimal. 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 gauches 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} ;;
}
Prise en charge des agrégations symétriques par les dialectes
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 l'aggregate awareness :
| 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 | |
| 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 |