Ativar liquid clustering
Aplica-se a : Conectores SaaS
Conectores de banco de dados
Conectores baseados em query
O liquid clustering otimiza a disposição dos dados de uma tabela com base em suas colunas de clustering, o que melhora o desempenho da query. Esta página descreve como ativar o liquid clustering nas tabelas de transmissão de destino que um pipeline de ingestão gerenciado cria.
Como as tabelas de destino são tabelas de transmissão gerenciadas pelo pipeline, não é possível fazer a execução de ALTER TABLE ... CLUSTER BY diretamente nelas. Em vez disso, configure o clustering no ingestion_definition do pipeline usando o campo table_configuration.
Você pode ativar o liquid clustering de duas maneiras:
Propriedade | Nível | Descrição |
|---|---|---|
| Pipeline | Quando definido como |
| Tabela | Especifique uma lista explícita de colunas para realizar o clustering de uma tabela de destino específica. Defina isso no |
Requisitos
- O clustering líquido automático (
enable_auto_clustering) requer o Databricks Runtime 15.4 LTS ou acima, pois a seleção inteligente de key depende de metadados introduzidos nessa versão. Tabelas com clustering líquido habilitado podem ser lidas ou gravadas a partir de qualquer versão do Databricks Runtime que suporte clustering líquido (Databricks Runtime 13.3 LTS e acima). Para obter detalhes sobre a seleção automática de key e o comportamento da versão, consulte Clustering líquido automático.
Ativar o clustering líquido usando a API
Você pode ativar o liquid clustering ao criar ou editar pipelines de ingestão gerenciados usando Declarative Automation Bundles, notebooks ou a CLI do Databricks.
O exemplo a seguir ativa o clustering líquido automático no nível do pipeline (enable_auto_clustering) e especifica clustering_columns explícitos para a tabela de destino 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>"
}
}
]
}
}
Limitações
- O clustering líquido para pipelines de ingestão gerenciados só é suportado para conectores de banco de dados que usam captura de dados de alterações (CDC). Conectores SaaS e conectores baseados em query ainda não são suportados.
- Não é possível executar
ALTER TABLE ... CLUSTER BYdiretamente em uma tabela de destino. Configure o clustering por meio dotable_configurationdo pipeline.