symmetric_aggregates

Uso

explore: explore_name {
  symmetric_aggregates: yes
}
Jerarquía
symmetric_aggregates
Valor predeterminado
yes

Acepta
Un valor booleano (yes o no)

Definición

El parámetro symmetric_aggregates determina si se aplicarán o no agregaciones simétricas dentro de una exploración determinada. Cuando symmetric_aggregates está activado, las funciones de agregación devuelven resultados correctos, incluso cuando las uniones generan una expansión. Los agregados simétricos se describen con más detalle en la página de prácticas recomendadas Cómo comprender los agregados simétricos, y el problema de fanout que resuelven se explica en la publicación de Comunidad El problema de los fanouts de SQL.

De forma predeterminada, los agregados simétricos están activados para cada Exploración en Looker. Esto significa que si tu dialecto de SQL admite agregaciones simétricas, debes incluir el parámetro symmetric_aggregates solo si deseas inhabilitar esa funcionalidad para un Explorar.

Ejemplos

Activa las agregaciones simétricas para la exploración product:

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

Desactiva las agregaciones simétricas para la exploración customer:

explore: customer {
  symmetric_aggregates: no
}

Aspectos para tener en cuenta

Crea uniones con cuidado cuando las agregaciones simétricas estén desactivadas

Las agregaciones simétricas protegen ciertos cálculos para que no arrojen resultados incorrectos cuando una unión genera un fanout. Por lo tanto, si tu dialecto no admite agregados simétricos o si decides desactivarlos, deberás tener cuidado cuando ejecutes uniones en Looker. Este problema y las soluciones alternativas se describen con gran detalle en la publicación de Comunidad El problema de las fanouts de SQL.

No todos los dialectos de bases de datos admiten los tipos de medidas de mediana y percentil con agregados simétricos

Cuando se habilitan los agregados simétricos, Looker convierte automáticamente los tipos de medidas percentile y median en percentile_distinct y median_distinct cuando una unión implica una expansión. No todos los dialectos de bases de datos que admiten agregaciones simétricas admiten los tipos de medidas percentile_distinct y median_distinct. Puedes ver si tu dialecto de base de datos admite estos tipos de medidas en la página de documentación Tipos de medidas.

Si recibes un error similar a SQL dialect doesn't support Symmetric Aggregates with percentiles, field ignored., esto indica que tu dialecto de base de datos no admite los tipos de medidas percentile_distinct y median_distinct. Para solucionar este problema, cambia el tipo de medida a type: number y, luego, especifica la función de agregación con sql: median(${dimension}). Sin embargo, esto inhabilita los agregados simétricos.

Agregaciones simétricas y errores de Value Overflow

Cuando intentes descargar o ver paneles, es posible que se produzca un error, como A LookML model issue occurred. Non-unique value/primary key (or sql_distinct_key), value overflow or collision when computing sum..

Cuando se agrega una medida con valores grandes, los cálculos en segundo plano para la agregación simétrica pueden causar errores de desbordamiento decimal. Los errores de desbordamiento decimal se producen cuando Looker intenta realizar una agregación simétrica (por ejemplo, type: sum) con combinaciones externas izquierdas para valores muy grandes que superan los 14 dígitos (valores superiores a 10,000,000,000,000).

Para resolver este problema, puedes usar el parámetro precision y establecerlo en 5 o un valor inferior. Por ejemplo:

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

Compatibilidad con dialectos para agregaciones simétricas

La capacidad de usar agregaciones simétricas depende del dialecto de la base de datos que usa tu conexión de Looker. En la versión más reciente de Looker, los siguientes dialectos admiten el reconocimiento de agregaciones:

Dialecto ¿Es compatible?
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