我正在学习数据库,我有一些关于z-order和partitionBy的问题。当我阅读这两个函数时,听起来非常相似。这两个函数都以某种方式对数据进行分组,从而加快了读取操作。而且,看起来partitionBy很适合join操作,但是当我只想读取数据时,我并不真正理解应该使用什么函数。你能告诉我应该如何看待这两个函数才能正确地使用它吗?
发布于 2022-01-27 18:11:33
分区在物理上将数据划分为只有一个特定值的不同文件/目录,而ZOrder则在文件中提供相关数据的群集,这些文件可能包含给定列的多个可能值。
例如,当您有一个低基数列时--当没有那么多不同的可能值时,分区非常有用--您可以很容易地按年份和月份(也许是白天)进行分区,但是如果按小时进行分区,那么就会有太多的分区和太多的文件,这会导致很大的性能问题。
ZOrder允许创建比许多小文件更高效的更大的文件。
但是,您可以将这两种分区与ZOrder (例如按年/月划分,按日划分)组合在一起,这将允许将同一天的数据配置在彼此之间,并且可以更快地访问它们(因为读取的文件较少)。
除了ZOrder之外,您还可以使用数据跳过高效地筛选出不包含查询所需数据的文件。
您可以在ZOrder中阅读数据跳过& 以下博客文章。
https://stackoverflow.com/questions/70881505
复制相似问题