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 en una exploración determinada. Cuando symmetric_aggregates está activado, las funciones de agregación devuelven resultados correctos, incluso cuando las uniones generan una distribución ramificada. Las agregaciones simétricas se describen con más detalle en la página de prácticas recomendadas Información sobre las agregaciones simétricas, 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, 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, solo debes incluir el parámetro symmetric_aggregates si quieres 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 den resultados incorrectos cuando una unión genera un fanout. 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 The problem of SQL fanouts.
No todos los dialectos de bases de datos admiten tipos de medidas de mediana y percentil con agregaciones simétricas
Cuando se habilitan los agregados simétricos, Looker convierte automáticamente los tipos de medición percentile y median en percentile_distinct y median_distinct cuando una unión implica una distribución ramificada. No todos los dialectos de bases de datos que admiten agregaciones simétricas admiten los tipos de medición percentile_distinct y median_distinct. Puedes ver si el dialecto de tu base de datos admite estos tipos de mediciones en la página de documentación Tipos de mediciones.
Si recibes un error similar a SQL dialect doesn't support Symmetric Aggregates with percentiles, field ignored., esto indica que el dialecto de tu base de datos no admite los tipos de medición percentile_distinct y median_distinct. Para solucionar este problema, cambia el tipo de medición 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 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 medición 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 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 de dialectos con agregaciones simétricas
La capacidad de usar agregaciones simétricas depende del dialecto de la base de datos que use tu conexión de Looker. En la versión más reciente de Looker, los siguientes dialectos admiten el reconocimiento de agregación:
| 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 | |
| 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 |