2012-08-11 122 views
0

我最近開始試驗Hbase和hadoop堆棧。我正試圖從頭構建一個應用程序。我正在爲我的應用程序設計我的模式,它將使用谷歌正常語法數據集。Hbase架構設計 - 建議需要

我意識到可以將數據集製作成具有ngram作爲行鍵和具有許多限定符(年份,頁數,match_count)的一個列族的模型,或者該模型可以具有n-gram作爲行鍵以及Year,page_count,match_count有多個列族。

我意識到模型取決於我想使用這些數據的方式,但我想了解這兩種方法的優缺點。

乾杯, Dwarak

回答

0

考慮閱讀從HBase的書本章內容:6.2. On the number of column families

「HBase的目前不與上述兩個或三個列族事情做好,以便保持柱家庭的數量你Schema low。目前,沖洗和壓縮是在每個Region的基礎上完成的,所以如果一個Column家族承載大量數據帶來沖刷,那麼相鄰的家族也會被刷新,儘管他們攜帶的數據量很小。列家族的沖刷和壓實交互可以造成一堆不必要的I/O加載(由chang來解決沖洗和壓實以每列家庭爲基礎)「。

「如果可以在您的模式中嘗試使用一個列族,只在數據訪問通常是列作用域的情況下引入第二和第三列族;即,您查詢一個列族或另一列族不是同一時間「

現在請記住,在物理上,所有列家族成員都一起存儲在文件系統中。由於調音和存儲規範是在列族級完成的,因此建議所有列族成員具有相同的一般訪問模式和大小特徵。如果您的所有數據都將同時處理,那麼您可能需要考慮只有一個列族的表。除非幾乎所有時間都單獨使用,否則最好不要使用多個家庭。