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 identifica automaticamente as tabelas que se beneficiariam das operações de manutenção e as executa em o usuário. As operações de manutenção são executadas apenas quando necessário, eliminando tanto as execuções desnecessárias de operações de manutenção quanto 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 |
---|---|
OPTIMIZE Caracterí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 (2) |
Dispara 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) A otimização preditiva está ANALYZE
em visualização pública. Inclui coleta de estatística inteligente durante as gravações. Use este formulário para se inscrever na Visualização Pública. Durante a Visualização Pública inicial, ANALYZE
os comandos podem ser executados em tabelas com até 1 TB de dados e 500 colunas ou menos.
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ê deve habilitar a otimização preditiva no nível da conta.
Observação
Se sua conta foi criada após 11 de novembro de 2024, a otimização preditiva está ativada 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 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 em uma conta:
- Acesse o console de contas.
- Navegue até Configurações e, em seguida, Habilitação de Recursos.
- Selecione 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 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 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 seguinte sintaxe 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;
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.
Importante
Você deve habilitar a otimização preditiva no nível da conta para exibir este 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.
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. 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:
- Tabelas carregadas para um espaço de trabalho como destinatários do Compartilhamento Delta.
- Tabelas externas.
- Exibições materializadas. Confira Usar exibições materializadas no Databricks SQL.
- Tabelas de Streaming. Confira Carregar dados usando tabelas de streaming no Databricks SQL.