3.1 Row Key
與nosql資料庫們一樣,row key是用來檢索記錄的主鍵。通路HBASE table中的行,隻有三種方式:
1.通過單個row key通路
2.通過row key的range(正則)
3.全表掃描
Row key行鍵 (Row key)可以是任意字元串(最大長度 是 64KB,實際應用中長度一般為 10-100bytes),在HBASE内部,row key儲存為位元組數組。存儲時,資料按照Row key的字典序(byte order)排序存儲。設計key時,要充分排序存儲這個特性,将經常一起讀取的行存儲放到一起。(位置相關性)
3.2 Columns Family
列族:HBASE表中的每個列,都歸屬于某個列族。列族是表的schema的一部 分(而列不是),必須在使用表之前定義。列名都以列族作為字首。例如 courses:history,courses:math都屬于courses 這個列族。
3.3 Cell
由{row key, columnFamily, version} 唯一确定的單元。cell中 的資料是沒有類型的,全部是位元組碼形式存貯。
關鍵字:無類型、位元組碼
3.4 Time Stamp
HBASE 中通過rowkey和columns确定的為一個存貯單元稱為cell。每個 cell都儲存 着同一份資料的多個版本。版本通過時間戳來索引。時間戳的類型是 64位整型。時間戳可以由HBASE(在資料寫入時自動 )指派,此時時間戳是精确到毫秒 的目前系統時間。時間戳也可以由客戶顯式指派。如果應用程式要避免資料版 本沖突,就必須自己生成具有唯一性的時間戳。每個 cell中,不同版本的資料按照時間倒序排序,即最新的資料排在最前面。
為了避免資料存在過多版本造成的的管理 (包括存貯和索引)負擔,HBASE提供 了兩種資料版本回收方式。一是儲存資料的最後n個版本,二是儲存最近一段 時間内的版本(比如最近七天)。使用者可以針對每個列族進行設定。
本教程由尚矽谷教育大資料研究院出品,如需轉載請注明來源。