Utilizzo
derived_table: {
cluster_keys: ["cliente_città", "stato_cliente"]
...
}
}
Gerarchia
cluster_keys - oppure - cluster_keys |
Valore predefinito
None Accetta
Uno o più nomi di colonne in clusterRegole speciali
cluster_keys è supportato solo su dialetti specifici
|
Definizione
Il clustering di una tabella partizionata ordina i dati in una partizione in base ai valori nelle colonne in cluster e organizza le colonne in cluster in blocchi di archiviazione di dimensioni ottimali. Il clustering può migliorare le prestazioni e ridurre il costo delle query che filtrano o aggregano in base alle colonne nel cluster.
Consulta la sezione Assistenza di Dialetto per
cluster_keys
di seguito per l'elenco dei dialetti che supportanocluster_keys
.
Il parametro
cluster_keys
funziona solo con tabelle persistenti, come le PDT e le tabelle aggregate.cluster_keys
non è supportato per le tabelle derivate senza una strategia di persistenza.Inoltre, il parametro
cluster_keys
non è supportato per le tabelle derivate definite concreate_process
osql_create
.Infine, Google BigQuery supporta il clustering solo su tabelle partizionate. Il parametro
cluster_keys
funziona solo con le PDT o le tabelle aggregate che sono anche partizionate utilizzando il parametropartition_keys
.
Per aggiungere una colonna in cluster a una tabella derivata permanente (PDT) o a una tabella aggregata, utilizza il parametro cluster_keys
e fornisci i nomi delle colonne da raggruppare nella tabella del database.
Esempi
Crea una tabella derivata nativa customer_order_facts
in un database Google BigQuery, partizionata in base alla colonna date
e raggruppata nelle colonne city
, age_tier
e gender
per ottimizzare le query filtrate o aggregate su queste colonne:
view: customer_order_facts {
derived_table: {
explore_source: order {
column: customer_id { field: order.customer_id }
column: date { field: order.order_time }
column: city { field: users.city}
column: age_tier { field: users.age_tier }
column: gender { field: users.gender }
derived_column: num_orders {
sql: COUNT(order.customer_id) ;;
}
}
partition_keys: [ "date" ]
cluster_keys: [ "city", "age_tier", "gender" ]
datagroup_trigger: daily_datagroup
}
}
Aspetti da considerare
Le tabelle Google BigQuery possono eseguire il partizionamento solo per i campi data
Le tabelle di Google BigQuery possono essere partizionate solo in una colonna con data o timestamp. Se vuoi aggiungere colonne in cluster a una PDT o a una tabella aggregata che non includa dati basati su data o ora, un modo è aggiungere una colonna di data utilizzando un'istruzione SQL come SELECT CURRENT_DATETIME() as now
, quindi utilizzare partition_keys
per eseguire il partizionamento nella nuova colonna. Puoi quindi utilizzare il clustering su altre colonne nella PDT o nella tabella aggregata.
Supporto del dialetto per cluster_keys
La possibilità di utilizzare cluster_keys
dipende dal dialetto del database utilizzato dalla connessione di Looker. Nell'ultima release di Looker i seguenti dialetti supportano cluster_keys
: