天天看點

HBase 資料結構 | 學習筆記

開發者學堂課程【分布式資料庫 HBase快速入門: HBase 資料結構】學習筆記,與課程緊密聯系,讓使用者快速學習知識。

課程位址:

https://developer.aliyun.com/learning/course/101/detail/1742

HBase 資料結構

内容介紹

一、RowKey

二、Column Family

三、Cell

四、Time Stamp

五、命名空間

與 nisql 資料庫們一樣,RowKey 是用來檢索記錄的主鍵。通路 HBASEtable 中的行,隻有三種方式:

1.通過單個 RowKey 通路

2.通過 RowKey 的 range(正則)

3.全表掃描

RowKey 行健(RowKey)可以是任意字元串(最大長度是64KB,實際應用中長度一般為10-100bytes),在 HBASE 内部,RowKey 儲存為位元組數組。存儲時,資料按照 RowKey 的字典序(byte order)排序存儲。

設計 RowKey 時,要充分排序存儲這個特性,将經常一起讀取的行存儲放到一起。(位置相關性)

二、 Column Family

列族:HBASE 表中的每個列,都歸屬于某個列族。列族是表的 schema 的一部分(而列不是),必須在使用表之前定義。列名都以列族作為字首。

例如:course:history,course:math 都屬于 course 這個列族。

由(rowkey,column Family:column,version)唯一确定的單元。cell 中的資料是沒有類型的,全部是位元組碼形式存貯。

關鍵字:無類型,位元組碼

HBASE 中通過 rowkey 和 column确 定的為一個存貯單元稱為 cell。每個 cell 都儲存着同一份資料中的多個版本。版本通過時間戳來索引。

命名空間結構:

圖一

1.Table 表,所有的表都是命名空間的成員,即表必須屬于某個命名空間,如果沒有指定,則在 default 預設的命名空間中。

2.RegionServer group:一個命名空間包含了預設的 RegionServer Group。

3.Permission:權限,命名空間能夠讓我們來定義通路控制清單ACL(Access Control list)。

4.Quota:限額,可以強制一個命名空間可包含的 region 數量。