Pular para o conteúdo principal

Definir propriedades da tabela Delta

Aplica-se a : Ícone de X vermelho Conectores SaaS Ícone de marca de verificação verde Conectores de banco de dados Ícone de X vermelho Conectores baseados em query

Você pode definir propriedades de tabela do Delta Lake 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, você define as propriedades da tabela por meio do ingestion_definition do pipeline, em vez de executar o ALTER TABLE ... SET TBLPROPERTIES diretamente. Especificar table_properties na especificação do pipeline tem o mesmo efeito que o comando ALTER TABLE ... SET TBLPROPERTIES.

Você pode definir as propriedades da tabela em dois níveis:

Nível

Comportamento

Pipeline

Defina table_properties no table_configuration em nível de pipeline para aplicar as propriedades a todas as tabelas e esquemas no pipeline.

Tabela ou esquema

Defina table_properties no table_configuration de uma tabela ou esquema individual para substituir a configuração em nível de pipeline para esse objeto.

Nível

Comportamento

Pipeline

Defina table_properties no table_configuration em nível de pipeline para aplicar as propriedades a todas as tabelas e esquemas no pipeline.

Tabela ou esquema

Defina table_properties no table_configuration de uma tabela ou esquema individual para substituir a configuração em nível de pipeline para esse objeto.

atenção

Antes de ativar uma propriedade de tabela, verifique os requisitos de versão do leitor e do gravador para esse recurso. Para requisitos específicos de propriedade, consulte Referência de propriedades da tabela e a documentação do recurso que você está habilitando, como Type widening.

Definir propriedades da tabela usando a API

Você pode definir propriedades de tabela ao criar ou editar pipelines de ingestão gerenciados usando Pacotes de Automação Declarativa, notebooks ou a CLI do Databricks.

O exemplo a seguir ativa a ampliação de tipo no nível do pipeline e, em seguida, substitui-a por false para a tabela de destino users_1. A tabela calendar_test herda a configuração de nível de pipeline.

YAML
resources:
pipelines:
pipeline_cdc:
name: <pipeline-name>
catalog: <destination-catalog>
schema: <destination-schema>
ingestion_definition:
ingestion_gateway_id: <gateway-pipeline-id>
table_configuration:
table_properties:
delta.enableTypeWidening: 'true'
delta.enableDeletionVectors: 'true'
objects:
- table:
source_schema: <source-schema>
source_table: users_1
destination_catalog: <destination-catalog>
destination_schema: <destination-schema>
table_configuration:
table_properties:
delta.enableTypeWidening: 'false'
- table:
source_schema: <source-schema>
source_table: calendar_test
destination_catalog: <destination-catalog>
destination_schema: <destination-schema>

Você pode especificar várias propriedades de tabela em um único bloco table_properties.

Herança e substituições

As propriedades da tabela seguem um modelo de herança, onde as configurações aplicadas a uma tabela ou esquema individual têm precedência sobre os default de nível de pipeline.

  • As propriedades da tabela definidas no nível do pipeline são herdadas por todas as tabelas e esquemas no pipeline.
  • Uma table_configuration definida no nível da tabela ou do esquema substitui a configuração em nível de pipeline. Ao substituir no nível da tabela ou do esquema, outras configurações de tabela em nível de pipeline não são herdadas. Para manter uma configuração em nível de pipeline, repita-a na substituição.

Limitações

As seguintes limitações se aplicam ao definir propriedades de tabela em pipelines de ingestão gerenciados.

  • A definição de propriedades de tabela para pipelines de ingestão gerenciados só é suportada para conectores de banco de dados que usam captura de dados de alterações (CDC). Conectores SaaS e conectores baseados em query não são suportados.
  • Remover uma propriedade de tabela da especificação do pipeline não reverte automaticamente o recurso de tabela subjacente. Por exemplo, se você ativar delta.enableTypeWidening e posteriormente descobrir que sua versão do Databricks Runtime de leitura não oferece suporte à expansão de tipo, remover a propriedade da especificação não desfaz a alteração. Nesse caso, você deve realizar uma refresh completa das tabelas afetadas. Antes de alterar uma propriedade de tabela, confirme se reverter a propriedade resolve o problema ou se um refresh completo é necessário. Consulte refresh das tabelas de destino.

Recursos adicionais