hbase本身是資料庫,本身就是為了儲存資料,因此了解其儲存原理對我們是很有必要的,這樣我們才能更好的使用hbase。
首先才能儲存模式開始,hbase的儲存模式與傳統型的儲存模式有什麼區別。
列式儲存(columnar or column-based)是相對於傳統關係型資料庫的行式儲存(row-basedstorage)來說的。簡單來說兩者的區別就是如何組織表
·行式儲存以一系列的行來儲存乙個表,一行一行的進行儲存
·列式儲存以一系列的列來儲存乙個表, 乙個列乙個列的進行儲存
如果需要關係查詢,那麼行式儲存很好
行式儲存最大的優點是關係之間的解決方案,表與表之間很大的關聯關係並且資料量不大,那麼行式儲存就是很好的選擇。記住因為它的線性擴充套件性不高,需要保證資料量不能特別大,控制在千萬級與以下。
如果資料量非常大,使用列式儲存
在大資料,利於壓縮和擴充套件的肯定要選擇列式儲存,如果事務使用率不高,那麼也最好使用列式儲存,隨機更新更些行的頻率不高,也可以使用列式儲存
列族就是多個資料列的組合,列族式可以說是表的schema的一部分,而列不是。hbase可以說是列簇資料庫,在建立表的時候要指定列族,而不需要指定具體的列。
hbase table組成:
table = rowkey + family + column + timestamp + value
資料儲存模式:
(table, rowkey , family , column , timestamp) - value
hbase列資料預設可以儲存3個版本,不過可以設定該屬於儲存幾個版本。
hbase是乙個稀疏的、分布式、持久、多維、排序的對映,它以行鍵(row key),列鍵(column key)和時間戳(timestamp)為索引。
hbase在儲存資料的時候,有兩個sortedmap,首先按照rowkey進行字典排序,然後再對column進行字典排序。
這張圖可以看到其儲存排序是先由rowkey排序,然後按列的名稱進行排序
hbase作為nosql資料庫和傳統型資料庫有相似的地方,但也有很大的差別,hbase更多的是為了擴充套件性和效能考慮,弱化了事務,一起帶著全新的思維來學習hbase吧
分享大資料技術Hbase和Hive詳解
今天給大家介紹一下關於零基礎學習大資料之hbase和hive是多麼重要的技術,那麼兩者有什麼區別呢?下面我們一起來看一下吧。apachehive是乙個構建在hadoop基礎設施之上的資料倉儲。通過hive可以使用hql語言查詢存放在hdfs上的資料。hql是一種類sql語言,這種語言最終被轉化為ma...
HBase分享會議筆記
今天參加了乙個關於hbase的分享,有一些內容是之前的知識的補充。之前關於hadoop家族,包括hbase的內容,可以參考 hbase是三維儲存和索引 hbase所謂的三維有序儲存的三維是指 rowkey 行主鍵 column key columnfamily qualifier timestamp...
Hbase儲存相關
hbase 的儲存機制 region 區域 表上的一塊資料 store 邏輯上的列簇 memstore列簇緩衝區 儲存熱資料 最近瀏覽,更新等操作的資料 region server的工作職責 管理region 和 響應io請求 資料可靠性的體現 1 如果乙個region server掛了 寫日誌 h...