hive - 插入覆盖蜂巢表
问题描述
我在 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 表中。
想知道这种方法是正确的还是我错了?谢谢
解决方案
试过这个并且工作:
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
推荐阅读
- discord - 如何使用节点使用 discord.js 进行随机聊天生成,
- spring - 在使用 @WebFluxTests 测试的控制器中使用 WebClient 会引发 java.lang.IllegalArgumentException:URI 不是绝对的
- terraform - terraform 中的动态地图创建
- django - Django Pagination - 对象列表不在模板中循环
- php - WP Fullcalendar 中未显示选定日期 ACF 多日期字段
- ios - 在 Swift 中从看起来像对象数组的字符串中分离键值
- java - 如何使用不同的参数类型保持相同的函数
- reactjs - 如何在 video.js 中的新创建元素中使用“This.props”在反应中
- semantic-ui - 像侧边栏一样使用语义 UI 菜单
- c - 在 PCIe 中写入持久内存