PARTITIONED BY,CLUSTERED BY和SORTED BY与BUCKETS之间的Hive区别,并使用PARTITIONED和CLUSTER BY插入覆盖?

时间:2014-01-30 01:18:53

标签: hive

我已经看到了创建一个包含CLUSTERED BY和SORTED BY分区的表的一些很好的解释。这与使用分区创建表,然后使用CLUSTER BY填充表(例如使用INSERT OVERWRITE)相比如何? CLUSTER BY是表中的持久排序吗?

1 个答案:

答案 0 :(得分:1)

即使INSERT OVERWRITE + CLUSTER BY会产生具有持久排序数据的表,也无法告诉hive数据已经排序,而不是创建CLUSTERED BY表。只有当Hive知道它并因此可以优化查询时,您才能从排序数据(例如,sort-merge-join)中受益。除非您指定该表是群集(已排序),否则数据不一定按照生成或传递给编写器的顺序写入磁盘。通常(堆)表在理论上没有排序。 Writer进程不会以与输入相同的顺序写入数据,因为它是缓冲(延迟写入)和并行。