我正在尝试使用 Delta Lake 的数据跳过来优化 Databricks 中的 etl 管道中的转换。我尝试了 z 顺序和布隆过滤器索引。但是,我无法看到影响是什么。我在哪里可以看到它是否确实有助于读取期间跳过的 Parquet 文件? 下面的屏幕截图来自读取增量表,其中一列上有布隆过滤器索引,一列上也有 Z 顺序。在屏幕截图中,它显示了修剪的文件数量,这是否显示了读取时跳过的 parquet 文件数量?
所以我的问题是,什么通常可以带来最佳的性能改进? Z 排序、布隆过滤器索引,还是两者的组合?我如何检查哪种列组合(Z 排序或具有布隆过滤器索引)可以提供最佳的性能改进?
最佳答案
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/