[英]Best approach for incremental data load in apache hive where sqoop is not loading the data into HDFS
[英]Incremental approach in hive
我有一個像下面的源表Source表:Day1:表
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
請注意,源表每天都會刷新。
請幫助我獲得上面提到的目標表。
您應該在定稿和采取行動之前考慮以下幾點,例如...
記錄數非常大,請使用Hbase來存儲數據,因為允許進行更新,並構建引用相同的hive外部表。我懷疑這是否會影響使用帶有大型ORC hive表的hive-hbase表的聯接的查詢。記錄使用HDP建議的增量負載, https: //hortonworks.com/blog/four-step-strategy-incremental-updates-hive/
如果出了問題怎么辦? : HDP方法的第4步將刪除基表並使用新數據重新創建。 考慮幾天后您發現數據有問題,如何刪除base_table? 如果您有答案,請選擇HDP方法 。
方法3:之所以選擇第1點,是因為Hbase支持更新,但是hive不支持更新(我想這是您的理解)。 是的,您的理解對於舊的配置單元版本是正確的。 但是更新可從Hive 0.14開始
https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DML#LanguageManualDML-更新
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.