我有大约2000 - 2500万条记录,我必须根据一些条件放入另一个表,并进行排序。示例
Create table X AS
select * from Y
where item <> 'ABC'
Order By id;
我知道Order by使用单个减速器来保证总产量。我需要优化的方式做排序以上查询。
SQL表表示无序集合。在数据分布在多个处理器之间的并行数据库中,尤其如此。
也就是说,Hive确实支持集群索引(本质上定义分区)和分区内排序。但是,文档非常明确地指出,CREATE TABLE AS
:
CTAS有以下限制:
- 目标表不能是分区表。
你可以通过导出数据并重新导入它来做你想做的事情。
但是,我建议您弄清楚您真正需要的是什么,而不需要在
数据库中对数据进行排序。