Otimização preditiva para tabelas gerenciadas do Unity Catalog
O Databricks permite a otimização preditiva por padrão para todas as contas criadas após 11 de novembro de 2024.
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.
A Databricks recomenda o uso de clustering líquido automático e otimização preditiva para todas as tabelas gerenciadas pelo Unity Catalog. Esses recursos fornecem otimização inteligente do layout de dados com base em seus padrões de uso de dados. Consulte Utilize agrupamento líquido para tabelas Delta.
Importante
A otimização preditiva só é executada em tabelas gerenciadas pelo Unity Catalog.
A otimização preditiva não é executada em tabelas de transmissão ou visualizações materializadas criadas no Databricks SQL ou usando pipelines DLT.
Quais operações a otimização preditiva executa?
A otimização preditiva executa as seguintes operações automaticamente para tabelas habilitadas:
Operação | Descrição |
---|---|
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.
Se o agrupamento de líquidos automático estiver ativado, a otimização preditiva poderá selecionar novas chaves de agrupamento antes de os dados serem agrupados. Consulte Utilize agrupamento líquido para tabelas Delta.
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
, OPTIMIZE
e VACUUM
e coloca-as em fila para serem executadas utilizando computação sem servidor. 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. 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 Recursos com disponibilidade regional limitada.
- 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. Pode alterar o padrão da conta para um catálogo ou esquema, a fim de 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 | Privilégio |
---|---|
Conta | 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 este princípio de serviço para executar as operações de manutenção solicitadas. Veja Gerir entidades 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):
- Aceda à consola de contas.
- Navegue até Configurações e, em seguida , Ativação de recursos.
- 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 a tabela do sistema system.storage.predictive_optimization_operations_history
para observabilidade em operações, custos e impacto 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 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 Recursos com disponibilidade regional limitada.
A otimização preditiva não executa comandos OPTIMIZE
em tabelas que usam Z-order.
Para tabelas com duração de retenção de arquivos excluídos (delta.deletedFileRetentionDuration
) configuradas abaixo do padrão de 7 dias, a otimização preditiva é executada VACUUM
com duração de retenção especificada como 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 num espaço de trabalho como destinatários do Delta Sharing.
- Tabelas externas.
- Visões materializadas. Veja Utilizar vistas materializadas no Databricks SQL.
- Tabelas de streaming. Veja carregar dados usando tabelas em fluxo contínuo no Databricks SQL.