问题描述
我在 Azure Databricks 中有以增量表格式存储的流数据。为了优化,我目前正在使用 Z 排序。与 Z-ordering 相比,使用 Hyperspace 索引子系统有什么好处吗?
解决方法
免责声明:我自己没有使用 Hyperspace,只是阅读了文档和代码示例。
按功能划分的超空间更接近于 Databricks Delta 实现的 Data Skipping 功能 - 它允许仅读取必要的数据。但是在 Databricks 上,数据的索引在写入时会自动发生,而在 Hyperspace 中,您需要构建索引并维护它们。
ZOrder 是一个不同的功能 - 它优化了数据的放置,因此经常一起使用的数据更有可能真正放在一起,因此您将读取更少的文件。 Hyperspace 没有——它只是索引数据,数据的位置由底层文件格式定义。
附言这是来自 Databricks 的关于数据跳过和 ZOreder 的好blog post。