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 clusters ZORDER .

  • 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.