0

如果会发生什么 create table X (...) clustered by(date) sorted by (time)

但没有排序插入 insert into x select * from raw

在插入之前从原始获取数据后是否会排序?

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

4

2 回答 2

3

文档解释说:

CLUSTERED BY 和 SORTED BY 创建命令不影响数据插入表的方式,只影响读取方式。这意味着用户必须小心地正确插入数据,方法是指定 reducer 的数量等于桶的数量,并在查询中使用 CLUSTER BY 和 SORT BY 命令。

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

于 2016-04-08T02:32:24.737 回答
1

不,数据不会被排序。

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

于 2016-04-16T03:46:26.150 回答