Activer le clustering liquide
S'applique à : Connecteurs SaaS
Connecteurs de base de données
Connecteurs basés sur la query
Le clustering liquide optimise le layout des données d’une table en fonction de ses colonnes de clustering, ce qui améliore les performances des requêtes. Cette page décrit comment activer le clustering liquide sur les tables de streaming de destination créées par un pipeline d’ingestion géré.
Comme les tables de destination sont des tables de streaming gérées par le pipeline, vous ne pouvez pas exécuter ALTER TABLE ... CLUSTER BY directement sur celles-ci. Configurez plutôt le clustering dans le ingestion_definition du pipeline en utilisant le champ table_configuration.
Vous pouvez activer le clustering liquide de deux manières :
Propriété | Niveau | Description |
|---|---|---|
| Pipeline | Lorsqu'il est défini sur |
| Table | Spécifiez une liste explicite de colonnes pour effectuer le clustering d’une table de destination spécifique. Définissez ceci dans le |
Exigences
- Le clustering liquide automatique (
enable_auto_clustering) nécessite Databricks Runtime 15.4 LTS ou une version ultérieure, car la sélection intelligente des clés repose sur des métadonnées introduites dans cette version. Les tables avec clustering liquide activé peuvent être lues ou écrites à partir de n’importe quelle version de Databricks Runtime prenant en charge le clustering liquide (Databricks Runtime 13.3 LTS et versions ultérieures). Pour plus de détails sur la sélection automatique des clés et le comportement des versions, consultez Clustering liquide automatique.
Activer le clustering liquide à l’aide de l’API
Vous pouvez activer le clustering liquide lors de la création ou de la modification de pipelines d'ingestion gérés à l'aide de Declarative Automation Bundles, de notebooks ou de la CLI Databricks.
L'exemple suivant active le liquid clustering automatique au niveau du pipeline (enable_auto_clustering) et spécifie des clustering_columns explicites pour la table de destination users_1 :
- Declarative Automation Bundles
- Databricks notebook
- Databricks CLI
resources:
pipelines:
pipeline_cdc:
name: <pipeline-name>
catalog: <destination-catalog>
schema: <destination-schema>
ingestion_definition:
ingestion_gateway_id: <gateway-pipeline-id>
table_configuration:
enable_auto_clustering: true
objects:
- table:
source_schema: <source-schema>
source_table: users_1
destination_catalog: <destination-catalog>
destination_schema: <destination-schema>
table_configuration:
clustering_columns:
- user_id
- country
- table:
source_schema: <source-schema>
source_table: calendar_test
destination_catalog: <destination-catalog>
destination_schema: <destination-schema>
pipeline_spec = """
{
"ingestion_definition": {
"ingestion_gateway_id": "<gateway-pipeline-id>",
"table_configuration": {
"enable_auto_clustering": true
},
"objects": [
{
"table": {
"source_schema": "<source-schema>",
"source_table": "users_1",
"destination_catalog": "<destination-catalog>",
"destination_schema": "<destination-schema>",
"table_configuration": {
"clustering_columns": ["user_id", "country"]
}
}
},
{
"table": {
"source_schema": "<source-schema>",
"source_table": "calendar_test",
"destination_catalog": "<destination-catalog>",
"destination_schema": "<destination-schema>"
}
}
]
}
}
"""
{
"ingestion_definition": {
"ingestion_gateway_id": "<gateway-pipeline-id>",
"table_configuration": {
"enable_auto_clustering": true
},
"objects": [
{
"table": {
"source_schema": "<source-schema>",
"source_table": "users_1",
"destination_catalog": "<destination-catalog>",
"destination_schema": "<destination-schema>",
"table_configuration": {
"clustering_columns": ["user_id", "country"]
}
}
},
{
"table": {
"source_schema": "<source-schema>",
"source_table": "calendar_test",
"destination_catalog": "<destination-catalog>",
"destination_schema": "<destination-schema>"
}
}
]
}
}
Limitations
- Le clustering liquide pour les pipelines d’ingestion gérés n’est pris en charge que pour les connecteurs de base de données qui utilisent la capture de données modifiées (CDC). Les connecteurs SaaS et les connecteurs basés sur des query ne sont pas encore pris en charge.
- Vous ne pouvez pas exécuter
ALTER TABLE ... CLUSTER BYdirectement sur une table de destination. Configurez le clustering via letable_configurationdu pipeline.