hbase 以表的形式儲存資料。表由行和列族組成。列劃分為若干個列族(row family),
其邏輯檢視如下:
幾個關鍵概念:
1) 行鍵(rowkey)
行鍵是位元組陣列, 任何字串都可以作為行鍵;
表中的行根據行鍵進行排序,資料按照 row key 的位元組序(byte order)排序
儲存; 所有對錶的訪問都要通過行鍵 (單個 rowkey 訪問,或 rowkey 範圍訪問,
或全表掃瞄)2) 列族(columnfamily)
cf 必須在表定義時給出
每個 cf 可以有乙個或多個列成員(columnqualifier),列成員不需要在表定
義時給出,新的列族成員可以隨後按需、動態加入
資料按 cf 分開儲存,hbase 所謂的列式儲存就是根據 cf 分開儲存(每個
cf 對應乙個 store),這種設計非常適合於資料分析的情形
3) 時間戳(timestamp)
每個 cell 可能又多個版本,它們之間用時間戳區分
4) 單元格(cell)
cell 由行鍵,列族:限定符,時間戳唯一決定
cell 中的資料是沒有型別的,全部以位元組碼形式儲存
5) 區域(region)
hbase 自動把錶水平(按 row)劃分成多個區域(region),每個 region 會保
存乙個表裡面某段連續的資料;
每個表一開始只有乙個 region,隨著資料不斷插入表,region 不斷增大,當
增大到乙個閥值的時候,region 就會等分會兩個新的 region;
當 table 中的行不斷增多,就會有越來越多的 region。這樣一張完整的表被
儲存在多個 region 上。
region 雖然是分布式儲存的最小單元,但並不是儲存的最小單元。region由乙個或者多個 store 組成,每個 store 儲存乙個 columns family;每個strore 又由乙個 memstore 和 0 至多個 storefile 組成,storefile 包含 hfile;memstore 儲存在記憶體中,storefile 儲存在 hdfs 上。
hbase資料模型
與nosql資料庫們一樣,rowkey是用來檢索記錄的主鍵。訪問hbase table中的行 訪問方式 a.通過單個row key訪問,b.通過row key的range 正則 c.全表掃瞄,rowkey是任意字串,最大長度 是 64kb,實際應用中長度一般為 10 100bytes,hbase內部...
hbase資料模型
與nosql資料庫一樣,row key是用來檢索記錄的主鍵。訪問hbase table中的行,只有三種方式 1.通過單個row key訪問 2.通過row key的range 正則 3.全表掃瞄 row key行鍵 row key 可以是任意字串 最大長度 是 64kb,實際應用中長度一般為 10 ...
HBase二 HBase資料模型
hbase是基於google bigtable模型開發的,典型的key value系統 1.hbase schema可以有多個table 2.每個table可由多個column family組成。3.hbase列族中的列可以隨意定義,因為hbase是無模式的。1.byte array 2.表中每條記...