关于数据库的优化建议

Databricks提供了许多优化,支持lakehouse上的各种工作负载,从大规模ETL处理到特别的交互式查询。其中许多优化都是自动进行的。你只要使用Databricks就能得到他们的好处。此外,大多数Databricks运行时特性需要Delta Lake,这是用于在Databricks中创建表的默认存储层。

Databricks配置默认值以优化大多数工作负载。但是,在某些情况下,更改配置设置可以提高性能。

Databricks运行时性能增强

请注意

使用最新的Databricks运行时,以利用最新的性能增强。这里记录的所有行为在Databricks Runtime 10.4 LTS及以上版本中默认启用。

  • 磁盘缓存通过将数据加载到附加到计算集群的磁盘卷,加速对Parquet数据文件的重复读取。

  • 动态文件修剪跳过不包含与查询谓词匹配的数据文件的目录,从而提高查询性能。

  • 低洗牌合并减少重写数据文件的数量合并操作和减少需要再计算ZORDER集群。

  • Apache Spark 3.0引入自适应查询执行,为许多操作提供了增强的性能。

提高性能的Databricks建议

  • 你可以克隆在Databricks上创建源数据集的深度或浅拷贝。

  • 基于成本的优化器利用表统计信息提高查询性能。

  • 你可以自动优化Delta表使用优化的写入和自动文件压缩;这对于长时间运行的结构化流作业特别有用。

  • 您可以使用Spark SQL与半结构化JSON数据不需要解析字符串。

  • 高阶函数为许多没有通用Spark操作符的操作提供内置的优化性能。高阶函数的性能优于用户自定义函数。

  • Databricks提供了许多内置操作符和特殊语法复杂数据类型,包括数组、结构体和JSON字符串。

  • 可以手动调优包含的连接的设置范围或含有数据与实质

选择行为

  • Databricks默认提供了可写序列化的隔离保证;改变了隔离级别可串行化可以降低并发操作的吞吐量,但在需要读可串行化时可能是必要的。

  • 你可以使用布卢姆滤波指数减少扫描不包含与给定条件匹配的记录的数据文件的可能性。