Compartilhar via


Otimização preditiva para tabelas gerenciadas do Catálogo do Unity

Observação

Para todas as contas criadas após 11 de novembro de 2024, o Databricks habilita a otimização preditiva por padrão.

A otimização preditiva elimina a necessidade de gerenciar manualmente as operações de manutenção de tabelas gernciadas do Catálogo do Unity 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 em o usuário. As operações de manutenção são executadas apenas quando necessário, eliminando tanto as execuções desnecessárias de operações de manutenção quanto a carga associada ao acompanhamento e à solução de problemas de desempenho.

Importante

A otimização preditiva só é executada em tabelas gerenciadas do Catálogo do Unity.

A otimização preditiva não é executada em tabelas de streaming ou exibições materializadas criadas no Databricks SQL ou usando pipelines do Delta Live Tables.

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

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

Operação Descrição
OPTIMIZECaracterísticas (1) Dispara o clustering incremental nas tabelas habilitadas. Confira Usar clustering líquido para tabelas Delta.

Melhora o desempenho da consulta ao otimizar os tamanhos dos arquivos. Confira Otimizar o layout do arquivo de dados.
VACUUM Reduz os custos de armazenamento ao excluir arquivos de dados que não são mais referenciados pela tabela. Confira Remover arquivos de dados não utilizados com o vacuum.
ANALYZE(2) Dispara a atualização incremental de estatísticas para melhorar o desempenho da consulta.

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

(2) A otimização preditiva está ANALYZE em visualização pública. Inclui coleta de estatística inteligente durante as gravações. Use este formulário para se inscrever na Visualização Pública. Durante a Visualização Pública inicial, ANALYZE os comandos podem ser executados em tabelas com 500 colunas ou menos.

Aviso

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

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

Em que local a otimização preditiva é executada?

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

Pré-requisitos da otimização preditiva

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

  • Seu Workspace do Azure Databricks deve estar no plano Premium em uma região que dê suporte à otimização preditiva. Confira Regiões do Azure Databricks.

  • Você deve usar SQL warehouses ou o Azure Databricks Runtime 12.2 LTS ou superior ao ativar a otimização preditiva.

  • Há suporte apenas para as tabelas gerenciadas pelo Catálogo do Unity.

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

Habilite a otimização preditiva

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

Observação

Se sua conta foi criada após 11 de novembro de 2024, a otimização preditiva está ativada por padrão.

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

Objeto do Catálogo do Unity Privilege
Conta Administrador de contas
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 Azure Databricks cria automaticamente uma entidade de serviço na sua conta do Azure Databricks. O Azure Databricks utiliza essa entidade de serviço para executar as operações de manutenção solicitadas. Confira Gerenciar entidades de serviço.

Habilitar 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 em uma conta:

  1. Acesse o console de contas.
  2. Navegue até Configurações e, em seguida, Habilitação de Recursos.
  3. Selecione Habilitado ao lado de Otimização preditiva.

Observação

Os repositórios em regiões que não dão suporte à otimização preditiva não estão habilitados.

Desabilitar ou habilitar a otimização preditiva para um catálogo ou esquema

A otimização preditiva utiliza um modelo de herança. Quando habilitado 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

Você pode desabilitar a otimização preditiva no nível do catálogo ou do esquema antes de habilitá-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 seguinte sintaxe 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;

Verifique se a otimização preditiva está habilitada

O campo Predictive Optimization é uma propriedade do Catálogo do 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.

Importante

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

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

DESCRIBE (CATALOG | SCHEMA | TABLE) EXTENDED name

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

O Azure Databricks fornece uma tabela de sistema para acompanhar o histórico das operações de otimização preditiva. Confira Tabelas do sistema de referência de otimização preditiva.

Se a tabela do sistema marcar as operações como com falha com FAILED: PRIVATE_LINK_SETUP_ERROR, talvez você não tenha configurado corretamente o link privado para computação sem servidor. Confira Configurar a conectividade privada por meio da computação sem servidor.

Limitações

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

A otimização preditiva não executa comandos OPTIMIZE em tabelas que usam ordem de empilhamento.

A otimização preditiva não executa operações de VACUUM em tabelas com uma janela de retenção de arquivo configurada abaixo do padrão de 7 dias. Consulte Configurar retenção de dados para consultas de viagem no tempo

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