Recomendações de otimização no Azure Databricks
O Azure Databricks fornece muitas otimizações que suportam uma variedade de cargas de trabalho no lakehouse, desde o processamento etl em larga escala até consultas interativas e ad-hoc. Muitas destas otimizações ocorrem automaticamente. Obtém os benefícios deles simplesmente com o Azure Databricks. Além disso, a maioria das funcionalidades do Databricks Runtime requer o Delta Lake, a camada de armazenamento predefinida utilizada para criar tabelas no Azure Databricks.
O Azure Databricks configura valores predefinidos que otimizam a maioria das cargas de trabalho. Contudo, em alguns casos, a alteração das definições de configuração melhora o desempenho.
Melhorias no desempenho do Databricks Runtime
Nota
Utilize o Databricks Runtime mais recente para tirar partido dos melhoramentos de desempenho mais recentes. Todos os comportamentos documentados aqui estão ativados por predefinição no Databricks Runtime 10.4 LTS e superior.
- A colocação em cache do disco acelera as leituras repetidas nos ficheiros de dados parquet ao carregar dados para volumes de disco anexados a clusters de computação.
- A poda de ficheiros dinâmicos melhora o desempenho das consultas ao ignorar diretórios que não contêm ficheiros de dados que correspondam aos predicados de consulta.
- A intercalação aleatória baixa reduz o número de ficheiros de dados reescritos pelas
MERGE
operações e reduz a necessidade de recacularZORDER
clusters. - O Apache Spark 3.0 introduziu a execução de consultas adaptáveis, o que proporciona um desempenho melhorado para muitas operações.
Recomendações do Databricks para um desempenho melhorado
- Pode clonar tabelas no Azure Databricks para fazer cópias profundas ou rasas de conjuntos de dados de origem.
- O otimizador baseado em custos acelera o desempenho das consultas ao tirar partido das estatísticas da tabela.
- Pode utilizar o SQL do Spark para interagir com dados JSON semiestruturados sem analisar cadeias de carateres.
- As funções de ordem superior proporcionam um desempenho incorporado e otimizado para muitas operações que não têm operadores spark comuns. As funções de ordem superior proporcionam um benefício de desempenho sobre as funções definidas pelo utilizador.
- O Azure Databricks fornece vários operadores incorporados e sintaxe especial para trabalhar com tipos de dados complexos, incluindo matrizes, estruturas e cadeias JSON.
- Pode otimizar manualmente as definições para associações que incluem intervalos ou contêm dados com distorção inferior ao padrão.
Comportamentos de opt-in
- Por predefinição, o Azure Databricks fornece uma garantia de isolamento serializável de escrita; alterar o nível de isolamento para serializável pode reduzir o débito para operações simultâneas, mas pode ser necessário quando é necessária serializabilidade de leitura.
- Pode utilizar índices de filtro bloom para reduzir a probabilidade de digitalizar ficheiros de dados que não contenham registos que correspondam a uma determinada condição.