Hadoop Hbase适合存储哪类数据?(转)
最適合使用Hbase存儲的數據是非常稀疏的數據(非結構化或者半結構化的數據)。Hbase之所以擅長存儲這類數據,是因為Hbase是column-oriented列導向的存儲機制,而我們熟知的RDBMS都是row- oriented行導向的存儲機制(郁悶的是我看過N本關于關系數據庫的介紹從來沒有提到過row- oriented行導向存儲這個概念)。在列導向的存儲機制下對于Null值得存儲是不占用任何空間的。比如,如果某個表 UserTable有10列,但在存儲時只有一列有數據,那么其他空值的9列是不占用存儲空間的(普通的數據庫MySql是如何占用存儲空間的呢?)。
Hbase適合存儲非結構化的稀疏數據的另一原因是他對列集合 column families 處理機制。 打個比方,ruby和python這樣的動態語言和c++、java類的編譯語言有什么不同? 對于我來說,最顯然的不同就是你不需要為變量預先指定一個類型。Ok ,現在Hbase為未來的DBA也帶來了這個激動人心的特性,你只需要告訴你的數據存儲到Hbase的那個column families 就可以了,不需要指定它的具體類型:char,varchar,int,tinyint,text等等。
Hbase還有很多特性,比如不支持join查詢,但你存儲時可以用:parent-child tuple(不是很懂) 的方式來變相解決。
由于它是Google BigTable的 Java 實現,你可以參考一下:google bigtable 。
下面3副圖是Hbase的架構、數據模型和一個表格例子,你也可以從:Hadoop summit 上 獲取更多的信息。
?
?
?
?
?
轉載于:https://www.cnblogs.com/chenjingjing/archive/2010/01/26/1656869.html
總結
以上是生活随笔為你收集整理的Hadoop Hbase适合存储哪类数据?(转)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: dailybuild
- 下一篇: [转]实用体系结构:逻辑分层