Hive表已排序但插入没有排序

时间:2016-04-08 02:27:20

标签: hadoop hive tez

如果发生了什么 sudo pip install https://pypi.python.org/packages/2.7/b/blessed/blessed-1.9.5-py2.py3-none-any.whl

但插入时没有排序 create table X (...) clustered by(date) sorted by (time)

在插入之前从raw获取数据后会对数据进行排序吗?

如果插入了未分类的数据 “排序依据”在create table语句中做了什么。 它只是提示以后选择查询?

2 个答案:

答案 0 :(得分:3)

documentation解释说:

  

CLUSTERED BY和SORTED BY创建命令不会影响方式   将数据插入表中 - 仅显示它的读取方式。这意味着   用户必须小心通过指定来正确插入数据   减速器的数量等于桶的数量,并使用   在查询中使用CLUSTER BY和SORT BY命令。

我认为很明显,如果您使用该选项,则需要插入已排序的数据。

答案 1 :(得分:1)

不,数据不会被排序。

正如另一个答案所解释的那样,SORTED BY和CLUSTERED BY选项不会改变从查询返回数据的方式。虽然文档在技术上是准确的,但CLUSTER BY的目的是将基础数据写入HDFS,以便在某些情况下使后续查询更快。群集(bucketing)类似于分区,因为它允许查询处理器跳过读取行...如果明智地选择群集。桶的常见用法是对数据进行采样,其中您明确地仅包含某些存储桶,从而避免对那些被排除的存储区进行读取。