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

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 exibições materializadas criadas no Databricks SQL ou usando 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) Aciona clustering incremental para tabelas habilitadas. Veja Utilizar clustering líquido para tabelas Delta.

Melhora o desempenho da consulta otimizando o tamanho dos arquivos. Consulte Otimizar layout de arquivo de dados.
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.
ANALYZE(2) Aciona 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) Otimização preditiva com ANALYZE está em Visualização Pública. Ele inclui coleta de estastisticas inteligentes durante as gravações. Use este formulário para se inscrever no Visualização Pública. Durante a Pré-visualização Pública inicial, ANALYZE os comandos podem ser executados em tabelas com 500 colunas ou menos.

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 ANALYZE, OPTIMIZEe VACUUM operações e enfileirou-as para execução usando computação sem servidor para 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.

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.

Nota

Se a sua conta tiver sido criada após 11 de novembro de 2024, a otimização preditiva está ativada 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.

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.

Importante

Você deve habilitar a otimização preditiva no nível da conta para exibir esse 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.

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

A otimização preditiva não executa VACUUM operações 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: