1. 程式人生 > 其它 >HBase 初學習之資料模型

HBase 初學習之資料模型

Hadoop,HBase,大資料,hbase 學習,列式資料庫 全稱 Hadoop Database HBase 共有資料模型 RK: RowKey 行鍵
  • 用來檢索記錄的主鍵,是一行資料的唯一標識
  • 最長64KB,一般為10-100bytes。
CF:Column Family 列簇
  • 在物理上包含了許多的列與值,每個列簇都有一些儲存的屬性可配置
  • 一般一個表中的列簇數不超過3個,列屬於列簇,列簇屬於表 。例如下表中的 basic data 和 property data。
CQ:Column Quallifier
  • 列簇的限定詞,理解為列的唯一標識。但是列標識是可以必變的,因此第一行可能有不同的列標識
  • 使用的時候必須列簇:列 ,eg basic_data:name,不同於mysql 直接取 name
  • 列可以根據需求動態新增或者刪除,同一個表中不同行的資料列都可以不同
Cell:
  • 由 rk , cf,cq,version 組成
  • Cell 中的資料是沒有型別的,全部是位元組碼形式儲存,因為HDFS上的資料都是位元組組成。
TS:Time Stamp
  • 每個Cell 都儲存著同一份資料的多個版本,版本通過時間戳來索引
  • 時間戳的型別是64位整型,預設時間戳是精確到毫秒的當前系統時間,時間戳也可由客戶顯式賦值。如果應用程式要避免資料版本衝突,就必須自己生成具有唯一性的時間戳
  • 每個cell 中,不同版本的資料按照時間倒序排序 ,即最新的資料排在最前面。查詢資料的時候,如果不指定版本數,預設顯示版本號最新(高)的資料
  • 為了避免資料存在過多版本中造成管理(包括儲存和索引)負擔,HBase 提供了兩種資料版本回收方式:一是儲存資料的最後n個版本; 二是儲存最近一段時間內的版本(比如最近七天)
總結: HBase 是一個稀疏的、分散式、持久、多維、排序的對映,它以行鍵(row key),列鍵(column key) 和時間戳(timestamp)為索引。 HBase 在儲存資料的時候,有兩個 SortedMap ,首先按照 rowkey進行字典排序 ,然後再對Column 進行字典排序。