【发布时间】:2019-03-13 08:39:59
【问题描述】:
我是 Hive 的新手。我有一个主表 t1 和临时表 t2。临时表每天都会被传入的数据上传。传入的数据可以是更新的记录,也可以是新的记录。
table t2(temp): table t1(main)
id name id name
1 vinni 1 vikki
3 anna 2 amita
我希望我的主表有旧记录、临时表中的更新记录和临时表中的新记录。
我的主表应该有如下记录:
id name
1 vinni
2 amita
3 anna
我尝试通过完全外连接来实现,但这不是最佳解决方案。那么如何通过使用左外连接来实现这一点。最后,我不希望我的临时表记录,并且该表可以在其数据加载到主表后被删除。
【问题讨论】:
-
只有 FULL JOIN 或 UNION ALL+row_number 是可能的解决方案,如此答案:stackoverflow.com/a/37744071/2700344。 FULL JOIN,因为您不需要像数据示例 id=2 和 id=3 那样连接两个表中的行。 UNION ALL+row_number 选项可能更快:stackoverflow.com/a/44755825/2700344