Utilisation
derived_table: {
cluster_keys: ["customer_city", "customer_state"]
...
}
Hiérarchie
cluster_keys - ou - cluster_keys |
Valeur par défaut
None Acceptation
Un ou plusieurs noms de colonne en clusterRègles spéciales
cluster_keys est pris en charge uniquement sur des dialectes spécifiques
|
Définition
Le clustering d'une table partitionnée trie les données d'une partition en fonction des valeurs des colonnes en cluster et les organise dans des blocs de stockage de taille optimale. Le clustering peut améliorer les performances et réduire le coût des requêtes qui filtrent ou agrégent les colonnes en cluster.
Reportez-vous à la section Dialecte de
cluster_keys
ci-dessous pour obtenir la liste des dialectes disponibles :cluster_keys
.
Le paramètre
cluster_keys
ne fonctionne qu'avec les tables persistantes, telles que les tables PST et les tables agrégées.cluster_keys
n'est pas disponible pour les tables dérivées sans stratégie de persistance.De plus, le paramètre
cluster_keys
n'est pas accepté pour les tables dérivées définies à l'aide decreate_process
ou desql_create
.Enfin, Google BigQuery n'accepte le clustering que sur les tables partitionnées. Le paramètre
cluster_keys
ne fonctionne qu'avec les tables dérivées persistantes ou les tables agrégées qui sont également partitionnées à l'aide du paramètrepartition_keys
.
Pour ajouter une colonne en cluster à une table dérivée persistante (PDT) ou à une table agrégée, utilisez le paramètre cluster_keys
et indiquez les noms des colonnes à mettre en cluster dans la table de base de données.
Examples
Créez une table dérivée native customer_order_facts
sur une base de données Google BigQuery, partitionnée dans la colonne date
et regroupée sur les colonnes city
, age_tier
et gender
pour optimiser les requêtes filtrées ou agrégées sur ces colonnes:
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
}
}
Éléments à prendre en compte
Les tables Google BigQuery ne peuvent être partitionnées que sur des champs de date
Les tables Google BigQuery ne peuvent être partitionnées que sur une colonne de date ou d'horodatage. Si vous souhaitez ajouter des colonnes en cluster à une table de progression ou à une table agrégée n'incluant pas de données temporelles ou de date, vous pouvez le faire en utilisant une instruction SQL telle qu'une instruction SQL telle que SELECT CURRENT_DATETIME() as now
, puis utiliser partition_keys
pour partitionner la nouvelle colonne. Vous pouvez ensuite utiliser le clustering sur d'autres colonnes de votre table individuelle ou de votre table agrégée.
Langues acceptées pour cluster_keys
La possibilité d'utiliser cluster_keys
dépend du dialecte de la base de données utilisé par votre connexion Looker. Dans la dernière version de Looker, les dialectes suivants sont compatibles avec cluster_keys
: