首页 > 解决方案 > 插入覆盖蜂巢表

问题描述

我在 teradata 中有表 A,它有 40k 条记录,在 hive 中有同一个表,只有 37k 条记录,所以我试图用 TD 中丢失的记录更新 hive 表。我在 hive 中创建了一个阶段表,以从 TD 获取所有 40k 记录,然后在 HIVE 中的最终表中执行 INSERT OVERWRITE 以更新丢失的记录。插入覆盖语法应该如何?

我所做的是。

INSERT OVERWRITE TABLE A PARTITION (column X)
select ( column A
         column B
          ,,





        column Z)
from stage table stg
left join final table f on stg.x= f.x and
where f.x is NULL

基本上,我希望将记录插入到最终的 HIVE 表中,这些记录存在于 Teradata 表中,而不是 HIVE 表中。

想知道这种方法是正确的还是我错了?谢谢

标签: hive

解决方案


试过这个并且工作:

INSERT OVERWRITE TABLE A PARTITION (column X)
select ( column A
         column B
          ,,





        column Z)
from final table f
union
select
 column 1
 column 2
from stage table stg
left join final table f on stg.x= f.x and
where f.x is NULL

推荐阅读