Pular para o conteúdo principal

Otimização preditiva para Unity Catalog gerenciar tabelas

A execução preditiva realiza automaticamente OPTIMIZE, VACUUM e ANALYZE em tabelas gerenciadas pelo Unity Catalog (Delta Lake e Iceberg) no Databricks, eliminando a manutenção manual e o tempo gasto com o acompanhamento de problemas de desempenho.

nota

A otimização preditiva é ativada por padrão para contas criadas em ou após 11 de novembro de 2024. A Databricks está habilitando contas existentes com um lançamento gradual. Este lançamento deverá ser concluído até agosto de 2026. Para verificar se sua conta já está ativada, consulte Verificar se a otimização preditiva está ativada.

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

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

Isso elimina a execução desnecessária de manutenção e a carga de acompanhamento e resolução de problemas manualmente.

Databricks recomenda a otimização preditiva para todas as tabelas gerenciadas Unity Catalog . Por exemplo, clustering automático de líquidos utiliza a otimização inteligente de dados com base nos seus padrões de utilização de dados. Consulte Usar clustering líquido para tabelas.

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

Execução de otimização preditiva das seguintes operações nas tabelas de gerenciamento Unity Catalog :

Operação

Descrição

OPTIMIZE

Aciona clustering incremental para tabelas habilitadas. Consulte Usar clustering líquido para tabelas. Melhora o desempenho das consultas otimizando o tamanho dos arquivos. Consulte Otimizar a disposição do arquivo 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 o vacuum.

ANALYZE

Verifica a tabela e coleta estatísticas para melhorar o desempenho da consulta. Consulte ANALYZE TABLE … COMPUTE ESTATÍSTICAS.

nota

OPTIMIZE não executa ZORDER quando executado por otimização preditiva. Em tabelas que utilizam Z-order, a otimização preditiva ignora arquivos Z-ordered

Se o clustering líquido automático estiver ativado, a otimização preditiva poderá selecionar a nova chave clustering antes dos dados do clustering. Consulte Líquido automático clustering.

atenção

A janela de retenção para VACUUM é determinada pela propriedade da tabela delta.deletedFileRetentionDuration , que por padrão é de 7 dias. VACUUM remove arquivos de dados que não são mais referenciados por uma versão da tabela Delta dentro dessa janela. Para reter dados por um período mais longo (por exemplo, para suportar viagens de tempo prolongadas), defina esta propriedade antes de ativar a otimização preditiva:

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

computação e faturamento

Execução de otimização preditiva ANALYZE, OPTIMIZE e VACUUM operações usando compute serverless para Job. Sua account será cobrada por esse compute usando um SKU de tarefa serverless .

Consulte preços para Databricks serviço gerenciado. Consulte a otimização preditiva de rastreamento com tabelas do sistema.

Pré-requisitos

Os seguintes requisitos devem ser atendidos para usar a otimização preditiva:

  • Seu workspace Databricks deve estar no plano Premium ou superior em uma região compatível.
  • Você deve usar SQL Warehouse ou Databricks Runtime 12.2 LTS ou superior.
  • Somente as tabelas gerenciais do site Unity Catalog são compatíveis.

Permita a otimização preditiva

You can enable predictive optimization for an account, a catalog, a schema, or a table. All Unity Catalog managed tables inherit the account value by default. You can override the account default at the catalog, schema, or table level.

Você precisa ter os seguintes privilégios para ativar ou desativar a otimização preditiva:

Objeto do Unity Catalog

Privilégio

Conta

Administrador da conta

Catálogo

Proprietário do catálogo ou um usuário com privilégio MANAGE no catálogo

Esquema

Proprietário do esquema ou um usuário com privilégio MANAGE no esquema

Tabela

Proprietário da tabela ou um usuário com privilégio MANAGE na tabela

Ativar ou desativar a otimização preditiva para o seu account

Um administrador account pode ativar a otimização preditiva para todos os metastores em uma account. Catálogos e esquemas herdam essa configuração por default, mas você pode substituí-la em qualquer um dos níveis.

  1. Acesse o painel de controle da conta.
  2. Navegue até Settings (Configurações ) e, em seguida, habilite o recurso .
  3. Selecione a opção desejada (por exemplo, Ativado ) ao lado de Otimização preditiva .
nota
  • As metástores em regiões que não oferecem suporte à otimização preditiva não estão habilitadas.
  • Desativar a otimização preditiva no nível account não a desativa para catálogos ou esquemas que a tenham ativado especificamente.

Habilitar ou desabilitar a otimização preditiva para um catálogo, esquema ou tabela

A otimização preditiva usa um modelo de herança. Quando habilitados para um catálogo, os esquemas nesse catálogo herdam a configuração, e as tabelas em um esquema habilitado também a herdam. É possível habilitar ou desabilitar explicitamente a otimização preditiva para um catálogo, esquema ou tabela para substituir esse comportamento.

nota

É possível desativar a otimização preditiva no nível do catálogo, esquema ou tabela antes de habilitá-la no nível da account. Se a otimização preditiva for habilitada posteriormente no nível da account, ela permanecerá bloqueada para objetos que a desabilitaram especificamente.

Use a seguinte sintaxe para ativar, desativar ou redefinir a otimização preditiva para herdar do objeto pai:

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

See ALTER TABLE.

Verifique se a otimização preditiva está ativada.

O campo Predictive Optimization é uma propriedade Unity Catalog que indica se a otimização preditiva está ativada. Se a configuração for herdada de um objeto pai, o valor do campo indicará isso.

Utilize a seguinte sintaxe para verificar o status:

SQL
DESCRIBE (CATALOG | SCHEMA | TABLE) EXTENDED name

Acompanhe a otimização preditiva com tabelas do sistema.

A Databricks fornece a tabela do sistema system.storage.predictive_optimization_operations_history para observabilidade em operações de otimização preditiva, custos e impacto. Consulte a referência da tabela do sistema de otimização preditiva.

Limitações

A otimização preditiva não é executada nos seguintes tipos de tabela:

  • Tabelas carregadas em um workspace como destinatários de OpenSharing
  • Tabelas externas