databricks - Delta Lake - 使用 z 顺序和布隆过滤器索引跳过数据

标签 databricks delta-lake z-order bloom-filter

我正在尝试使用 Delta Lake 的数据跳过来优化 Databricks 中的 etl 管道中的转换。我尝试了 z 顺序和布隆过滤器索引。但是,我无法看到影响是什么。我在哪里可以看到它是否确实有助于读取期间跳过的 Parquet 文件? 下面的屏幕截图来自读取增量表,其中一列上有布隆过滤器索引,一列上也有 Z 顺序。在屏幕截图中,它显示了修剪的文件数量,这是否显示了读取时跳过的 parquet 文件数量?

所以我的问题是,什么通常可以带来最佳的性能改进? Z 排序、布隆过滤器索引,还是两者的组合?我如何检查哪种列组合(Z 排序或具有布隆过滤器索引)可以提供最佳的性能改进?

enter image description here

最佳答案

Z 顺序和布隆过滤器索引可以彼此独立运行。一般来说:

  • Z 顺序最好包含 3-5 列左右,您可以在其中优先考虑常用过滤列,然后连接键。
  • 布隆过滤器允许更快的点(大海捞针)查询,因此对于名称和/或哈希等字符串列非常方便。

请从这里开始,如果您想更深入地了解,请查看 Tech Talk: Top Tuning Tips for Spark 3.0 and Delta Lake on Databricks (无耻地插在这里,因为我是演讲者之一)

关于databricks - Delta Lake - 使用 z 顺序和布隆过滤器索引跳过数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74721211/

相关文章:

databricks - 如何在现有数据库之上创建具有只读访问权限的 databricks 数据库

pyspark - 如何在 Databricks 中使用 OPTIMIZE ZORDER BY

Delphi面板和自定义组件Z顺序问题

apache-spark-sql - 优化用于进行使用 GROUP BY 的查询的增量表

apache-spark - 如何在本地模式下运行 Spark SQL Thrift Server 并使用 JDBC 连接到 Delta

c# - 底层表单消失但仅当对话框显示时

javascript - 如何将点击事件映射到多层中的元素?

apache-spark - 如何为 Databricks 笔记本设置自动完成

Python:从 ADLS 文件夹中查找重命名并移动 JSON 文件

apache-spark - 如何获取 Azure Databricks 笔记本运行详细信息