Compartilhar via


Recomendações de otimização no Azure Databricks

Azure Databricks fornece muitas otimizações que dão suporte a uma variedade de cargas de trabalho no lakehouse, desde o processamento de ETL em larga escala até consultas interativas ad hoc. Muitas dessas otimizações ocorrem automaticamente. Você obtém seus benefícios simplesmente usando Azure Databricks. Além disso, a maioria dos recursos do Databricks Runtime exige Delta Lake, o formato padrão usado para criar tabelas no Azure Databricks.

Azure Databricks configura valores padrão que otimizam a maioria das cargas de trabalho. Mas, em alguns casos, a alteração das configurações aprimora o desempenho.

Aprimoramentos de desempenho do Databricks Runtime

Observação

Use o Databricks Runtime mais recente para aproveitar os aprimoramentos de desempenho mais recentes. Todos os comportamentos documentados aqui são habilitados por padrão no Databricks Runtime 10.4 LTS e superior.

  • O armazenamento em cache de disco acelera leituras repetidas em arquivos de dados Parquet carregando dados em volumes de disco anexados a clusters de computação.
  • A remoção de arquivos dinâmicos aprimora o desempenho da consulta ignorando diretórios que não contêm arquivos de dados que correspondem a predicados de consulta.
  • A mesclagem com baixo shuffle reduz o número de arquivos de dados reescritos por MERGE operações e diminui a necessidade de rodar novamente OPTIMIZE após as mesclagens.
  • O Apache Spark 3.0 introduziu a execução de consulta adaptável, que fornece desempenho aprimorado para muitas operações.

Recomendações do Databricks para aprimorar o desempenho

  • Você pode clonar tabelas no Azure Databricks para fazer cópias completas ou parciais de conjuntos de dados de origem.
  • O otimizador baseado em custo acelera o desempenho da consulta aproveitando as estatísticas da tabela.
  • Você pode usar o SQL do Spark para interagir com dados JSON sem analisar cadeias de caracteres.
  • As funções de ordem mais alta fornecem desempenho interno e otimizado para muitas operações que não têm operadores Spark comuns. As funções de ordem mais altas fornecem um benefício de desempenho em relação às funções definidas pelo usuário.
  • Azure Databricks fornece vários operadores internos e sintaxe especial para trabalhar com tipos de dados complex, incluindo matrizes, structs e cadeias de caracteres JSON.
  • Você pode ajustar manualmente as configurações para junções de intervalo. Consulte Otimização de junção de intervalo.

Comportamentos de adesão

  • Azure Databricks fornece uma garantia de isolamento serializável de gravação por padrão; alterar o nível de isolamento para serializável pode reduzir a taxa de transferência para operações concorrentes, mas pode ser necessário quando a serializabilidade de leitura é necessária.
  • Azure Databricks descontinuou índices de filtro Bloom. Em vez disso, use I/O preditiva ou clustering líquido.