通过


有关Azure Databricks的优化建议

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液体聚类分析