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 faz o seguinte automaticamente:

  • Identifica tabelas que se beneficiariam de operações de manutenção e enfileira essas operações para serem executadas.
  • Coleta estatísticas quando os dados são gravados em uma tabela gerenciada.

As operações de manutenção são executadas conforme necessário, eliminando as execuções desnecessárias para operações de manutenção e 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 Dispara a atualização incremental de estatísticas para melhorar o desempenho da consulta. Confira ANALYZE TABLE.

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

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ê pode habilitar a otimização preditiva para uma conta, um catálogo ou um esquema. Todas as tabelas gerenciadas do Unity Catalog herdam por padrão o valor da conta. Você pode alterar a configuração padrão da conta para um determinado catálogo ou esquema a fim de habilitar ou desabilitar a otimização preditiva nesse nível.

Observação

Se sua conta tiver sido criada após 11 de novembro de 2024, a otimização preditiva será habilitada para sua conta 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 ou desabilitar a otimização preditiva para sua conta

Um administrador de conta pode concluir as etapas a seguir para habilitar a otimização preditiva para todos os metastores em uma conta. Os objetos na conta herdarão essa configuração por padrão (mas a configuração pode ser substituída no nível de catálogo ou esquema):

  1. Acesse o console de contas.
  2. Navegue até Configurações e, em seguida, Habilitação de Recursos.
  3. Selecione a opção a ser usada (por exemplo, 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 a otimização preditiva no nível da conta não a desabilita para catálogos ou esquemas que a habilitaram especificamente.

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 habilitar ou 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 sintaxe a seguir para habilitar ou desabilitar a otimização preditiva ou retornar ao padrão de herdar do objeto pai:

ALTER CATALOG [catalog_name] { ENABLE | DISABLE | INHERIT } PREDICTIVE OPTIMIZATION;
ALTER { SCHEMA | DATABASE } schema_name { ENABLE | DISABLE | INHERIT } 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.

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: