2017-09-07 86 views
1

我正在開發一個用於從不同來源生成的數據的Hbase存儲。通常來自同一個源的列更可能同時被檢索到。預期的讀寫比率大致在1/10到1/100之間(取決於不同的來源)。Hbase多列家族vs多個表

所以有是我兩個選擇:

  • 多列族:只要創建一個表和多個列族,從相同的源數據的每個種類將形成列族。
  • 多個表格:爲每個來源創建一個表格(有一個列族)。

這裏有一些我的理解,請糾正我,如果有任何錯誤。

  • 多表解決方案適用於動態添加新來源。雖然多列家族解決方案可能會導致停機。
  • 如果不同來源的rowkey具有不同的分佈(例如,int user_id vs image GUID)或基數,也​​許最好是分成不同的表格?
  • 我們可能有一些要求來同時檢索來自不同來源的相同rowkey的列。這樣,多列家族可能會更快(不確定)?

任何建議或做我需要之前考慮任何其他因素做出決定?是否有任何典型案例多表/多列家族勝過其他?

感謝

回答

0

你點是正確的,只要按照簡單的規則:

如果來自不同來源的數據是相關的,具有相同的鍵或鍵可以轉換爲相同的密鑰,把它放在同一表在不同的列家庭。你會得到更好的掃描和更好的數據安排。

如果數據不能粘在一起,請將它放在單獨的表中。一張大桌子只會導致問題:您將有更長的掃描時間,大多數柱子系列將爲空。