2017-07-03 37 views
0

我正在嘗試創建將MYSQL數據庫轉換爲NOSQL Hbase數據庫的Java應用程序。
到目前爲止,它從MySQL讀取數據,並將其插入到hbase correctely
但現在我試圖處理MYSQL表, 之間的關係,我明白如果有關係,你應該添加一個表作爲超級列家族。
SuperColumn 我查看了apatch網站文檔,但找不到任何東西。
任何想法?Hbase - 如何添加超級列家族?

回答

1

列家族與關係無關。相比之下,你必須通過行密鑰設計正確地創建反向索引,這可能允許有效地O(1)通過從另一個表知道密鑰來從一個表中檢索數據。或者爲了避免連接嘗試將所有數據存儲在一行中。任何爲HBase提供SQL接口的工具都會產生需要時間來啓動和執行的作業。如果您執行Get操作或掃描連續行,HBase會很快。 希望這是有用的。

更新

關於更多關於列族細節檢查出偉大的書 Architecting HBase Applications

A柱的家人,你不會在其他RDBMS 應用找到一個特定的HBase的概念。對於同一個區域,不同的列族將數據存儲到不同的文件中,並且可以進行不同的配置。具有相同訪問模式 和相同格式的數據應該分組到相同的列族中。作爲格式的示例 ,如果您需要爲 客戶配置文件以及每個客戶的配置文件照片的圖像文件存儲大量文本元數據信息,則 可能希望將它們存儲到兩個不同的列系列中:一個壓縮(其中 將存儲所有文本信息),另一個未壓縮(其中將存儲圖像 文件)。作爲一個關於訪問模式的例子,如果大部分信息都被讀取並且幾乎從未寫入過,而其中一些信息大部分是寫入的,並且幾乎從未讀取過 ,您可能希望將它們分成兩個不同的列族。如果要存儲的不同列具有相似的格式和訪問模式,請在同一列族中重新組合 。 給定RegionServer的寫入緩存區域由爲給定主機託管的所有區域配置的所有列 共享。濫用列系列將對memstore施加壓力,這會產生很多小文件,而這些文件反過來會產生很多可能影響性能的壓縮。 對於可以爲 表配置的列族數量沒有技術限制。但是,在過去三年中,我們有機會致力於 的大部分用例只需要一個列系列。有些需要兩個色譜柱系列,即 ,但每當我們看到兩個以上的色譜柱系列時,建議使用 以減少數量以提高效率。如果您的設計包括多於三個柱子系列的 ,您可能需要深入瞭解它並查看是否真的需要所有這些系列;最有可能的是,他們可以重新組合。如果您沒有 在兩列家族之間存在任何一致性約束,並且數據將在不同的時間到達它們,而不是爲單個表創建兩個列族,那麼您還可以創建兩個表,每個表具有一個列族。這個策略在決定區域大小的時候非常有用。實際上,雖然 更好地保持兩列家庭幾乎相同的大小,但通過將兩個家庭分成兩個不同的表格,現在更容易讓我獨立成長。

此外,這answer可能是有用的。

+0

謝謝@gorros,....我有問題,你可以使用超級列家族與hbase,....如果是的如何? –

+0

@AmineMostefaoui我已經更新了答案。如果這是你需要的,請標記爲正確。 – gorros

+0

謝謝@gorros –