Utilizzo
explore: explore_name {
symmetric_aggregates: yes
}
|
Gerarchia
symmetric_aggregates |
Valore predefinito
yes
Accetta
Un valore booleano (yes o no)
|
Definizione
Il parametro symmetric_aggregates determina se gli aggregati simmetrici verranno applicati o meno all'interno di un'esplorazione specifica. Quando symmetric_aggregates è attivo, le funzioni di aggregazione restituiscono risultati corretti, anche quando i join generano un fanout. Gli aggregati simmetrici sono descritti in maggiore dettaglio nella pagina delle best practice Informazioni sugli aggregati simmetrici, mentre il problema del fanout che risolvono è spiegato nel post per la community Il problema dei fanout SQL.
Per impostazione predefinita, gli aggregati simmetrici sono attivati per ogni esplorazione in Looker. Ciò significa che se il tuo dialetto SQL supporta gli aggregati simmetrici, devi includere il parametro symmetric_aggregates solo se vuoi disattivare questa funzionalità per un'esplorazione.
Esempi
Attiva gli aggregati simmetrici per l'esplorazione product:
explore: product {
symmetric_aggregates: yes # the default value, could be excluded
}
Disattiva gli aggregati simmetrici per l'esplorazione customer:
explore: customer {
symmetric_aggregates: no
}
Aspetti da considerare
Crea i join con attenzione quando gli aggregati simmetrici sono disattivati
Gli aggregati simmetrici impediscono che determinati calcoli forniscano risultati errati quando un join genera un fanout. Pertanto, se il tuo dialetto non supporta gli aggregati simmetrici o se scegli di disattivarli, dovrai prestare attenzione quando esegui i join in Looker. Questo problema e le relative soluzioni sono descritti in dettaglio nel post per la community The problem of SQL fanouts.
Non tutti i dialetti di database supportano i tipi di misura mediana e percentile con aggregati simmetrici
Quando gli aggregati simmetrici sono abilitati, Looker converte automaticamente i tipi di misura percentile e median in percentile_distinct e median_distinct quando un join comporta un fanout. Non tutti i dialetti di database che supportano gli aggregati simmetrici supportano i tipi di misura percentile_distinct e median_distinct. Puoi verificare se il dialetto del tuo database supporta questi tipi di misure nella pagina della documentazione Tipi di misure.
Se ricevi un errore simile a SQL dialect doesn't support Symmetric Aggregates with percentiles, field ignored., significa che il dialetto del tuo database non supporta i tipi di misura percentile_distinct e median_distinct. Per risolvere il problema, modifica il tipo di misura in type: number e poi specifica la funzione di aggregazione con sql: median(${dimension}). Tuttavia, questa operazione disattiva gli aggregati simmetrici.
Aggregati simmetrici ed errori Value Overflow
Quando provi a scaricare o visualizzare le dashboard, potresti riscontrare un errore come A LookML model issue occurred. Non-unique value/primary key (or sql_distinct_key), value overflow or collision when computing sum.
Quando si aggrega una misura con valori elevati, i calcoli in background per l'aggregazione simmetrica potrebbero causare errori di overflow decimale. Gli errori di overflow decimale si verificano quando Looker tenta di eseguire l'aggregazione simmetrica (ad esempio, type: sum) con left join per valori molto grandi che superano le 14 cifre (valori superiori a 10.000.000.000.000).
Per risolvere il problema, puoi utilizzare il parametro precision e impostarlo su 5 o su un valore inferiore. Ad esempio:
measure: average_value {
type: average
precision: 5
sql: ${value} ;;
}
Supporto dei dialetti per gli aggregati simmetrici
La possibilità di utilizzare gli aggregati simmetrici dipende dal dialetto del database utilizzato dalla connessione di Looker. Nell'ultima release di Looker, i seguenti dialetti supportano l'awareness aggregata:
| Dialetto | Supportata? |
|---|---|
| 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 |