HQL - 如何将几个分区中的数据从一个表复制/移动到另一个表

时间:2013-12-03 16:17:23

标签: hadoop hql hive

我有一个表(main_table),它被分区并存储记录的历史记录,并带有一个标志来指示记录是否被删除。我有另一个table9del_table),它与main_table具有相同的模式,但只存储一天的已删除记录(delete_falg ='Y')。

作为一个过程,我需要每天将del_table中可用的记录移动到main_table。我正在尝试编写一个LOAD DATA INPATH命令,该命令可以将del_table的各个分区中可用的数据移动到main_table的相应分区,但我的尝试似乎都没有。请告诉我是否可以通过使用LOAD DATA INPATH命令实现它,同时指定单独的分区?

我正在尝试以下步骤,但它在第二步失败: set nonstrict hive property:

LOAD DATA INPATH'..... / del_table /'进入表main_table分区(partition_col_name)

2 个答案:

答案 0 :(得分:0)

您是否必须在路径中使用贷款数据?

如果没有,您可以执行以下https://cwiki.apache.org/confluence/display/Hive/Tutorial#Tutorial-DynamicpartitionInsert

这会每天重新生成整个表格。

答案 1 :(得分:0)

首先尝试设置此属性:

set hive.exec.dynamic.partition.mode=nonstrict;

然后运行你的命令:

LOAD DATA INPATH '...../del_table/' into table main_table partition(partition_col_name)

有关详细信息,请参阅此链接:Partition