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 agregadas muestran resultados correctos, incluso cuando las uniones generan una expansión. Las agregaciones simétricas se describen con más detalle en la página Prácticas recomendadas para comprender las agregaciones simétricas, y el problema de expansión que resuelven se explica en la publicación de Comunidad El problema de las expansiones de SQL.

De forma predeterminada, las agregaciones simétricas están activadas 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 una exploración.

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 una expansión. Por lo tanto, si tu dialecto no admite agregaciones simétricas o si decides desactivarlas, deberás tener cuidado cuando ejecutes uniones en Looker. Este problema y las soluciones alternativas se describen en detalle en la publicación de Comunidad El problema de las expansiones de SQL.

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

Cuando se habilitan las agregaciones simétricas, Looker convierte automáticamente los tipos de medidas percentile y median a 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 agregada con sql: median(${dimension}). Sin embargo, esto inhabilita las agregaciones simétricas.

Agregaciones simétricas y errores de Value Overflow

Cuando intentes descargar o ver paneles, es posible que encuentres 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 uniones externas izquierdas para valores muy grandes que superan los 14 dígitos (valores mayores que 10,000,000,000,000).

Para resolver este problema, puedes usar el precision parámetro y configurarlo en 5 o menos. Por ejemplo:

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

Compatibilidad de dialectos con agregaciones simétricas

La capacidad de usar agregaciones simétricas depende del dialecto de 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