簡體   English   中英

更新配置單元表中的增量記錄

[英]Update delta records in hive table

我有一個表,其中的歷史數據大於TB大小,我將每天接收增量(更新的信息)記錄,這些記錄將以GB大小存儲在增量表中。 現在,我想將增量記錄與歷史記錄進行比較,並使用增量表中的最新數據更新歷史記錄表。

在Hive中執行此操作的最佳方法是什么,因為我將要處理數百萬行。 我在網上搜索后發現以下方法。

http://hortonworks.com/blog/four-step-strategy-incremental-updates-hive

但是我認為這不是性能方面的最佳方法。

在最新配置單元(0.14)中,您可以進行更新。 您需要通過搜索鍵將表保持為ORC格式和存儲桶。

哦,我需要添加此鏈接以獲取更多信息: Hive Transactions

另外:您是否擁有良好的分區鍵,以便更新僅在最新的分區上有效? 最好執行以下操作:

  1. 從所需分區中獲取數據到臨時表(T1)

  2. 假設T2是帶有更新記錄的新表。 需要以與T1相同的方式進行分區

  3. 用密鑰將T1和T2連接起來,並獲取僅存在於T1中而不存在於T2中的密鑰。 假設這張桌子是T3
  4. 聯合T2和T3創建表T4
  5. 從T1刪除先前獲取的分區
  6. 將T4插入T1

請記住,這些操作可能不是原子操作,並且在發生第5步和第6步期間,在T1上運行的任何查詢都可以得到中間結果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM