Recomendações de otimização no Databricks
Databricks fornece muitas otimizações que suportam uma variedade de cargas de trabalho no lakehouse, variando de processamento ETL em grande escala a query interativas ad-hoc. Muitas dessas otimizações ocorrem automaticamente. Você obtém seus benefícios simplesmente usando o Databricks. Além disso, a maioria dos recursos do Databricks Runtime requer Delta Lake, a camada de armazenamento default usada para criar tabelas no Databricks.
Databricks configura valores default que otimizam a maioria das cargas de trabalho. Mas, em alguns casos, alterar as definições de configuração melhora 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 default no Databricks Runtime 10.4 LTSe acima.
O cache de disco acelera leituras repetidas em arquivos de dados Parquet, carregando dados em volumes de disco anexados a clusters compute .
A remoção dinâmica de arquivos melhora o desempenho query ignorando os diretórios que não contêm arquivos de dados que correspondem aos predicados query .
A mesclagem aleatória baixa reduz o número de arquivos de dados reescritos por operações
MERGE
e reduz a necessidade de recalcular clustersZORDER
.O Apache Spark 3.0 introduziu a execução query adaptável, que fornece desempenho aprimorado para muitas operações.
Recomendações do Databricks para desempenho aprimorado
Você pode clonar tabelas no Databricks para fazer cópias profundas ou rasas do dataset de origem.
O otimizador baseado em custo acelera o desempenho query aproveitando as estatísticas da tabela.
Você pode usar o Spark SQL para interagir com dados JSON semiestruturados sem analisar strings.
As funções de ordem superior fornecem desempenho integrado e otimizado para muitas operações que não possuem operadores Spark comuns. As funções de ordem superior fornecem um benefício de desempenho em relação às funções definidas pelo usuário.
Databricks fornece vários operadores integrados e sintaxe especial para trabalhar com tipos de dados complexos, incluindo matrizes, structs e strings JSON.
Você pode ajustar manualmente as configurações para junções que incluem intervalos ou contêm dados com distorção substancial.
Comportamentos de aceitação
Databricks fornece uma garantia de isolamento serializável de gravação por default; 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 serialização de leitura for necessária.
Você pode usar índices de filtro bloom para reduzir a probabilidade de varrer arquivos de dados que não contenham registros correspondentes a uma determinada condição.