Partilhar via


Otimização preditiva para tabelas gerenciadas do Unity Catalog

Nota

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

A otimização preditiva elimina a necessidade de gerenciar manualmente as operações de manutenção para tabelas gerenciadas do Unity Catalog no Azure Databricks.

Com a otimização preditiva habilitada, o Azure Databricks faz o seguinte automaticamente:

  • Identifica tabelas que poderiam beneficiar-se das operações de manutenção e coloca essas operações em fila 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 tanto execuções desnecessárias para operações de manutenção quanto a carga associada ao rastreamento e à solução de problemas de desempenho.

Importante

A otimização preditiva só é executada em tabelas gerenciadas pelo Unity Catalog.

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

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

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

Operation Description
OPTIMIZE (1) Desencadeia a clusterização incremental para tabelas habilitadas. Consulte Utilize agrupamento líquido para tabelas Delta.

Melhora o desempenho da consulta otimizando o tamanho dos arquivos. Consulte Otimizar layout do ficheiro de dados.
VACUUM Reduz os custos de armazenamento excluindo arquivos de dados que não são mais referenciados pela tabela. Consulte Remover arquivos de dados não utilizados com vácuo.
ANALYZE Aciona a atualização incremental de estatísticas para melhorar o desempenho da consulta. Consulte ANALYZE TABLE.

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

Aviso

A janela de retenção para o comando VACUUM é determinada pela propriedade delta.deletedFileRetentionDuration table, cujo padrão é 7 dias. Isso significa que VACUUM 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 podem beneficiar-se das operações ANALYZE, OPTIMIZEe VACUUM e as enfileira para a execução de trabalhos utilizando computação serverless. 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. Ver Usar tabelas do sistema para acompanhar a otimização preditiva.

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

Nota

Se a sua conta tiver sido criada após 11 de novembro de 2024, a otimização preditiva está ativada para a sua conta por predefinição.

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.

Ativar ou desativar a otimização preditiva para a sua conta

Um administrador de conta pode concluir as etapas a seguir para habilitar a otimização preditiva para todos os metastores de 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 do catálogo ou do esquema):

  1. Aceda à consola de contas.
  2. Navegue até Configurações e, em seguida , Ativação de recursos.
  3. Selecione a opção a ser usada (por exemplo, Enabled) ao lado de Predictive optimization.

Nota

  • Metastores em regiões que não suportam otimização preditiva não estão habilitados.
  • A desativação da otimização preditiva no nível da conta não a desativa para catálogos ou esquemas que a habilitaram especificamente.

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 habilitar ou 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 ou para retornar ao padrão de herança do objeto pai:

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

Verificar se a otimização preditiva está ativada

O campo Predictive Optimization é 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 a referência da tabela do sistema de otimização preditiva em .

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

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 comandos OPTIMIZE em tabelas que usam Z-order.

A otimização preditiva não executa operações VACUUM em tabelas com uma janela de retenção de arquivos 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: