Otimização preditiva para Delta Lake

Visualização

Esse recurso está em visualização pública.

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

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

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

Execução de otimização preditiva das seguintes operações automaticamente para tabelas Delta habilitadas:

Operação

Descrição

OPTIMIZE

Melhora o desempenho query otimizando tamanhos de arquivo. Consulte Arquivos de dados compactos com otimização no Delta Lake.

VACUUM

Reduz os custos de armazenamento ao excluir arquivos de dados que não são mais referenciados pela tabela. Consulte Remover arquivos de dados não utilizados com vácuo.

Observação

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

Aviso

A janela de retenção do comando VACUUM é determinada pela propriedade da tabela delta.deletedFileRetentionDuration, cujo default é 7 dias. Isso significa que VACUUM remove arquivos de dados que não são mais referenciados por uma versão da tabela Delta nos últimos 7 dias. Se desejar reter dados por mais tempo (como para dar suporte à viagem do tempo por uma duração mais longa), você deverá definir essa propriedade de tabela adequadamente antes de ativar a otimização preditiva, como no exemplo a seguir:

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

Onde ocorre a execução da otimização preditiva?

A otimização preditiva identifica tabelas que se beneficiariam das operações OPTIMIZE e VACUUM e as coloca na fila para execução usando Job compute. Sua account é cobrada pela compute associada a essas cargas de trabalho usando um SKU específico para gerenciada pelo serviço Databricks. Consulte preços para Databricks serviço gerenciado. Databricks fornece tabelas de sistema para observação de operações, custos e impacto de otimização preditiva. Consulte Usar tabelas do sistema para rastrear a otimização preditiva.

Observação

A otimização preditiva não executa o comando OPTIMIZE em tabelas que usam clusters líquidos.

Pré-requisitos para otimização preditiva

Você deve atender aos seguintes requisitos para ativar a otimização preditiva:

  • O seu workspace Databricks deve estar no plano Premium ou acima numa região que suporte a otimização preditiva. Consulte clouds e regiões do Databricks.

  • Você deve usar SQL warehouse ou o Databricks Runtime 12.2 LTS ou acima ao habilitar a otimização preditiva.

  • Somente tabelas de gerenciamento do Catálogo Unity são suportadas.

Habilite a otimização preditiva

O senhor deve ativar a otimização preditiva no nível account.

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

Objeto Unity Catalog

Privilégio

Conta

Administrador da conta

Catálogo

Proprietário do catálogo

Esquema

Proprietário do esquema

Observação

Quando você habilita a otimização preditiva pela primeira vez, o Databricks cria automaticamente uma entidade de serviço na sua account do Databricks. A Databricks utiliza esta entidade de serviço para realizar as operações de manutenção solicitadas. Consulte gerenciamento de entidade de serviço.

Ative a otimização preditiva para sua conta

Um administrador account deve concluir os seguintes passos para ativar a otimização preditiva para todos os meta-lojas em uma account:

  1. Acesse o console account .

  2. Navegue até Configurações e, em seguida, habilitação de recursos.

  3. Selecione Ativado ao lado de Otimização preditiva.

Observação

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

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 em 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.

Observação

O senhor pode desativar a otimização preditiva no nível do catálogo ou do esquema antes de ativá-la no nível do site account. Se a otimização preditiva for ativada posteriormente no site account, ela será bloqueada para tabelas nesses objetos.

Use a seguinte sintaxe para ativar ou desativar a otimização preditiva:

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

Verifique se a otimização preditiva está habilitada

O campo Predictive Optimization é uma propriedade do Unity Catalog 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 seguinte sintaxe para ver se a otimização preditiva está habilitada:

DESCRIBE (CATALOG | SCHEMA | TABLE) EXTENDED name

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

Databricks fornece uma tabela de sistema para rastrear a história das 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 clouds e regiões do Databricks.

A otimização preditiva não executa o comando OPTIMIZE em tabelas que usam clusters líquidos ou Z-order

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