我有一个如下所示的源表 来源表: 第1天:表
Id值start_date 100 v1 2017-01-01 101 v2 2017-02-01
Day1数据应如下所示加载 目标表 Id值start_date end_date 100 v1 2017-01-01 2099-12-31 101 v2 2017-02-01 2099-12-31
在第2天,应根据条件source.value<> target.value
插入新记录新记录end_date应为2099-12-31,前一行end_date应更新为当前日期,如下所示 目标表
Id值start_date end_date 100 v1 2017-01-01 2017-09-19 100 v2。 2017-01-01 2099-12-31 101 v2 2017-02-01 2017-09-19 101 V3 2017-02-01 2099-12-31
请注意,源表每天都会刷新。
请帮助我了解上面提到的目标表的输出。
答案 0 :(得分:0)
在最终确定和接近之前,您应该考虑以下几点,例如......
记录数量非常庞大,使用Hbase存储数据,因为允许更新并构建hive外部表引用相同我怀疑这是否会影响查询使用hive-hbase表的连接大ORC蜂巢表 对于较少数量的记录,请使用HDP建议的增量加载https://hortonworks.com/blog/four-step-strategy-incremental-updates-hive/
如果出现问题,如何处理问题? :HDP approach中的第4步删除基表并使用新数据重新创建。考虑到几天后您已经注意到数据存在问题,您如何删除base_table?如果您有答案,请转到HDP approach。
方法3:您选择的是第1点,因为Hbase支持更新但是配置单元不支持更新(我想这是您的理解)。是的,你的理解是正确的旧蜂巢版本。但更新可用于启动Hive 0.14
https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DML#LanguageManualDML-Update