【问题标题】:Sort field in hive蜂巢中的排序字段
【发布时间】:2016-09-04 12:00:00
【问题描述】:

我有大约 20-25 百万条记录的表,我必须根据某些条件放入另一个表并进行排序。示例

Create table X AS
select * from Y 
where item <> 'ABC'
Order By id;

我知道 Order by 使用单个 reducer 来保证输出的总顺序。 我需要优化方法来对上述查询进行排序。

【问题讨论】:

  • 我不明白。有什么问题?
  • 需要对大量数据进行排序的解决方案。
  • 而您当前的查询对您不起作用,因为...?

标签: sql hadoop mapreduce hive hiveql


【解决方案1】:

SQL 表代表无序 集合。 尤其是在数据分布在多个处理器之间的并行数据库中更是如此。

也就是说,Hive 确实支持聚集索引(本质上定义分区)和分区内的排序。不过,documentation 非常具体,CREATE TABLE AS 不支持

CTAS 有以下限制:

  • 目标表不能是分区表。

您可以通过导出数据并重新导入来做您想做的事情。

但是,我建议您弄清楚您真正需要什么,而不需要在数据库中对数据进行排序

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-20
    • 2020-12-18
    • 2013-08-08
    • 2016-12-19
    相关资源
    最近更新 更多