RowKey
與nosql數據庫們壹樣,RowKey是用來檢索記錄的主鍵。訪問HBASE table中的行,只有三種方式:
通過單個RowKey訪問(get)
通過RowKey的range(正則)(like)
全表掃描(scan)
RowKey行鍵 (RowKey)可以是任意字符串(最大長度是64KB,實際應用中長度壹般為 10-100bytes),在HBASE內部,RowKey保存為字節數組。存儲時,數據按照RowKey的字典序(byte order)排序存儲。設計RowKey時,要充分排序存儲這個特性,將經常壹起讀取的行存儲放到壹起。(位置相關性)
Column Family
列族:HBASE表中的每個列,都歸屬於某個列族。列族是表的schema的壹部 分(而列不是),必須在使用表之前定義。列名都以列族作為前綴。例如 courses:history,courses:math都屬於courses 這個列族。
Cell
由{rowkey, column Family:columu, version} 唯壹確定的單元。cell中的數據是沒有類型的,全部是字節碼形式存貯。
關鍵字:無類型、字節碼
Time Stamp
HBASE 中通過rowkey和columns確定的為壹個存貯單元稱為cell。每個 cell都保存 著同壹份數據的多個版本。版本通過時間戳來索引。時間戳的類型是 64位整型。時間戳可以由HBASE(在數據寫入時自動 )賦值,此時時間戳是精確到毫秒 的當前系統時間。時間戳也可以由客戶顯式賦值。如果應用程序要避免數據版 本沖突,就必須自己生成具有唯壹性的時間戳。每個 cell中,不同版本的數據按照時間倒序排序,即最新的數據排在最前面。
為了避免數據存在過多版本造成的的管理 (包括存貯和索引)負擔,HBASE提供 了兩種數據版本回收方式。壹是保存數據的最後n個版本,二是保存最近壹段 時間內的版本(比如最近七天)。用戶可以針對每個列族進行設置。
命名空間
命名空間的結構:
請點擊輸入圖片描述
Table:表,所有的表都是命名空間的成員,即表必屬於某個命名空間,如果沒有指定,則在default默認的命名空間中。
RegionServer group:壹個命名空間包含了默認的RegionServer Group。
Permission:權限,命名空間能夠讓我們來定義訪問控制列表ACL(Access Control List)。例如,創建表,讀取表,刪除,更新等等操作。
Quota:限額,可以強制壹個命名空間可包含的region的數量。