我有大约2000-2500万条记录的表,我必须根据某些条件放入另一个表中,并进行排序。例子
Create table X AS select * from Y where item <> 'ABC' Order By id;
我知道order by使用单个减速机来保证输出的总顺序。我需要优化的方式做上述查询排序。
kknvjkwl1#
这太长了,不能发表评论。sql表表示无序集。在数据分布在多个处理器之间的并行数据库中尤其如此。也就是说,hive支持聚集索引(本质上定义分区)和分区内的排序。不过,文档非常具体,不支持这一点 CREATE TABLE AS :CTA有以下限制:目标表不能是分区表。您可以通过导出数据并重新导入来执行所需操作。但是,我建议您在不要求在数据库中对数据进行排序的情况下,找出真正需要的内容。
CREATE TABLE AS
1条答案
按热度按时间kknvjkwl1#
这太长了,不能发表评论。
sql表表示无序集。在数据分布在多个处理器之间的并行数据库中尤其如此。
也就是说,hive支持聚集索引(本质上定义分区)和分区内的排序。不过,文档非常具体,不支持这一点
CREATE TABLE AS
:CTA有以下限制:
目标表不能是分区表。
您可以通过导出数据并重新导入来执行所需操作。
但是,我建议您在不要求在数据库中对数据进行排序的情况下,找出真正需要的内容。