Azure Databricks提供了许多优化,支持 Lakehouse 上的各种工作负载,从大规模 ETL 处理到即席交互式查询。 其中许多优化是自动进行的。 只需使用Azure Databricks即可获得其优势。 此外,大多数 Databricks Runtime 功能都需要 Delta Lake,这是用于在Azure Databricks中创建表的默认格式。
Azure Databricks配置优化大多数工作负荷的默认值。 但在某些情况下,更改配置设置可以提高性能。
Databricks Runtime 的性能增强
注意
使用最新的 Databricks Runtime 来利用最新的性能增强。 在 Databricks Runtime 10.4 LTS 和更高版本中默认已启用此处所述的所有行为。
- 磁盘缓存通过将数据加载到附加至计算群集的磁盘卷来加速对 Parquet 数据文件的重复读取。
- 动态文件修剪可以提高查询性能,它会跳过不包含与查询谓词匹配的数据文件的目录。
-
低随机合并 可减少由
MERGE操作重写的数据文件数,并减少合并后重新运行OPTIMIZE的需求。 - Apache Spark 3.0 引入了自适应查询执行,为许多操作提供增强的性能。
Databricks 性能优化建议
- 在 Azure Databricks 上,您可以 克隆 表,以创建源数据集的深度或浅层副本。
- 基于成本的优化器利用表统计信息来提高查询性能。
- 你可以使用 Spark SQL 与 JSON 字符串进行交互,而无需分析字符串。
- 高阶函数为许多没有通用 Spark 运算符的操作提供内置的优化性能。 与用户定义的函数相比,高阶函数的性能优势更好。
- Azure Databricks提供了许多内置运算符和特殊语法,用于处理 complex 数据类型,包括数组、结构和 JSON 字符串。
- 可以手动调整区间连接的设置。 请参阅范围联接优化。
自愿参与行为
- 默认情况下,Azure Databricks 提供写入的可序列化隔离性保证,将 隔离级别更改为可序列化可以减少并发操作的吞吐量,但当需要读取的可序列化性时可能是必要的。
- Azure Databricks已弃用 bloom 筛选器索引。 请改用 预测 I/O 或 液体聚类分析 。