Share via


Otimização preditiva para Delta Lake

Importante

Esta funcionalidade está em Pré-visualização Pública.

A otimização preditiva elimina a necessidade de gerenciar manualmente as operações de manutenção de tabelas Delta no Azure Databricks.

Com a otimização preditiva habilitada, o Azure Databricks identifica automaticamente as tabelas que se beneficiariam das operações de manutenção e as executa para o usuário. As operações de manutenção são executadas apenas conforme necessário, eliminando execuções desnecessárias para operações de manutenção e a carga associada ao rastreamento e ao desempenho de solução de problemas.

Quais operações a otimização preditiva executa?

A otimização preditiva executa as seguintes operações automaticamente para tabelas Delta habilitadas:

Operation Description
OPTIMIZE Melhora o desempenho da consulta otimizando o tamanho dos arquivos. Veja Compactar ficheiros de dados com otimização no Delta Lake.
VACUUM Reduz os custos de armazenamento excluindo arquivos de dados que não são mais referenciados pela tabela. Consulte Remover ficheiros de dados não utilizados com vácuo.

Nota

OPTIMIZE não é executado ZORDER quando executado com otimização preditiva.

Aviso

A janela de retenção para o VACUUM comando é determinada pela delta.deletedFileRetentionDuration propriedade table, cujo padrão é de 7 dias. Isso significa VACUUM que remove arquivos de dados que não são mais referenciados por uma versão de tabela Delta nos últimos 7 dias. Se você quiser reter dados por mais tempo (como para dar suporte a viagens no tempo por durações maiores), defina essa propriedade de tabela adequadamente antes de habilitar a otimização preditiva, como no exemplo a seguir:

ALTER TABLE table_name SET TBLPROPERTIES ('delta.deletedFileRetentionDuration' = '30 days');

Onde funciona a otimização preditiva?

A otimização preditiva identifica tabelas que se beneficiariam de operações e VACUUM as enfileira para serem executadas usando a computação de OPTIMIZE trabalhos. Sua conta é cobrada pela computação associada a essas cargas de trabalho usando uma SKU específica para o Databricks Managed Services. Consulte os preços dos serviços gerenciados do Databricks. O Azure Databricks fornece tabelas do sistema para observabilidade em operações, custos e impacto de otimização preditiva. Consulte Usar tabelas do sistema para acompanhar a otimização preditiva.

Nota

A otimização preditiva não executa OPTIMIZE comandos em tabelas que usam clustering líquido.

Pré-requisitos para otimização preditiva

Você deve cumprir os seguintes requisitos para habilitar a otimização preditiva:

  • Seu espaço de trabalho do Azure Databricks deve estar no plano Premium em uma região que ofereça suporte à otimização preditiva. Consulte Regiões do Azure Databricks.

  • Você deve usar armazéns SQL ou Databricks Runtime 12.2 LTS ou superior ao habilitar a otimização preditiva.

  • Somente tabelas gerenciadas do Unity Catalog são suportadas.

  • Se você precisar de conectividade privada para suas contas de armazenamento, deverá configurar a conectividade privada sem servidor. Consulte Configurar conectividade privada a partir de computação sem servidor.

Habilite a otimização preditiva

Você deve habilitar a otimização preditiva no nível da conta.

Você deve ter os seguintes privilégios para habilitar ou desabilitar a otimização preditiva no nível especificado:

Objeto Unity Catalog Privilege
Account Administrador de Conta
Catálogo Proprietário do catálogo
Esquema Proprietário do esquema

Nota

Quando você habilita a otimização preditiva pela primeira vez, o Azure Databricks cria automaticamente uma entidade de serviço em sua conta do Azure Databricks. O Azure Databricks usa essa entidade de serviço para executar as operações de manutenção solicitadas. Veja Gerir principais de serviço.

Habilite a otimização preditiva para sua conta

Um administrador de conta deve concluir as seguintes etapas para habilitar a otimização preditiva para todos os metastores de uma conta:

  1. Aceda à consola de contas.
  2. Navegue até Configurações e, em seguida , Ativação de recursos.
  3. Selecione Ativado ao lado de Otimização preditiva.

Nota

Metastores em regiões que não suportam otimização preditiva não estão habilitados.

Habilitar ou desabilitar a otimização preditiva para um catálogo ou esquema

A otimização preditiva usa um modelo de herança. Quando habilitados para um catálogo, os esquemas herdam a propriedade. As tabelas dentro de um esquema habilitado herdam a otimização preditiva. Para substituir esse comportamento de herança, você pode desabilitar explicitamente a otimização preditiva para um catálogo ou esquema.

Nota

Você pode desabilitar a otimização preditiva no nível do catálogo ou do esquema antes de ativá-la no nível da conta. Se a otimização preditiva for habilitada posteriormente na conta, ela será bloqueada para tabelas nesses objetos.

Use a sintaxe a seguir para habilitar ou desabilitar a otimização preditiva:

ALTER CATALOG [catalog_name] {ENABLE | DISABLE} PREDICTIVE OPTIMIZATION;
ALTER {SCHEMA | DATABASE} schema_name {ENABLE | DISABLE} PREDICTIVE OPTIMIZATION;

Verificar se a otimização preditiva está ativada

O Predictive Optimization campo é uma propriedade do Catálogo Unity que detalha se a otimização preditiva está habilitada. Se a otimização preditiva for herdada de um objeto pai, isso será indicado no valor do campo.

Use a sintaxe a seguir para ver se a otimização preditiva está habilitada:

DESCRIBE (CATALOG | SCHEMA | TABLE) EXTENDED name

Use tabelas do sistema para acompanhar a otimização preditiva

O Azure Databricks fornece uma tabela do sistema para controlar o histórico de operações de otimização preditiva. Consulte Referência da tabela do sistema de otimização preditiva.

Limitações

A otimização preditiva não está disponível em todas as regiões. Consulte Regiões do Azure Databricks.

A otimização preditiva não executa OPTIMIZE comandos em tabelas que usam clustering líquido ou ordem Z.

A otimização preditiva não executa operações de manutenção nas tabelas a seguir: