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
, OPTIMIZE
e 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:
- Aceda à consola de contas.
- Navegue até Configurações e, em seguida , Ativação de recursos.
- 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.
Mensagem de erro de link privado
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:
- Tabelas carregadas em um espaço de trabalho como destinatários do Compartilhamento Delta.
- Tabelas externas.
- Visões materializadas. Consulte Usar exibições materializadas no Databricks SQL.
- Tabelas de streaming. Consulte Carregar dados usando tabelas de streaming no Databricks SQL.