我正在处理一个大蜂巢桌(超过5000亿条记录)。 处理速度太慢,我想让它更快。 我认为通过添加分区,这个过程可能更有效率。
有人能告诉我怎么做吗? 请注意,我的表已经存在。
我的表:
create table T(
nom string,
prenom string,
...
date string)
对日期字段进行分区。
THX
答案 0 :(得分:2)
SET hive.exec.dynamic.partition = true;
SET hive.exec.dynamic.partition.mode = nonstrict;
INSERT OVERWRITE TABLE table_name PARTITION(Date) select date from table_name;
注意: 在分区表的insert语句中,确保在select子句中的最后一行指定分区列。
答案 1 :(得分:1)
你必须重组表格。以下是步骤:
替代4,5,6和7
show create table
并使用原始表名LOAD DATA INPATH
命令将分区下的文件移动到新表的新分区这两种方法都将通过一次插入/地图缩减工作实现重组。