2 HBase数据模型
生活随笔
收集整理的這篇文章主要介紹了
2 HBase数据模型
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
HBase數(shù)據(jù)模型
- 數(shù)據(jù)模型解析
- 專業(yè)術(shù)語
- NameSpace:
- Table:
- RowKey:
- Column Family:
- Column Qualifier:
- Cell:
- Timestamp:
- 小結(jié)
數(shù)據(jù)模型解析
數(shù)據(jù)類型:int,char… HBase不存在數(shù)據(jù)類型,字節(jié)存儲
數(shù)據(jù)模型:行,列 HBase不僅有行列,HBase還有:RK,CF,TS,Q,cell
專業(yè)術(shù)語
NameSpace:
-
命名空間是類似于關(guān)系數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)庫的概念,他其實是表的邏輯分組。這種抽象為多租戶相關(guān)功能奠定了基礎(chǔ)。
命名空間是可以管理維護的,可以創(chuàng)建,刪除或更改命名空間。 -
HBase有兩個特殊預(yù)定義的命名空間:
- default-沒有明確指定名稱空間的表將自動落入此名稱空間
- hbase-系統(tǒng)命名空間,用于包含HBase內(nèi)部表
Table:
-
Hbase的table由多個行組成
-
Row KeyTime StampColumn Family1Column Family2Column Family3 111 t6 CF2:q1=val1 CF3:q3=val3 112 t3 CF1:q2=val3 t2 CF1:q8=val2
RowKey:
- RowKey是用來檢索記錄的主鍵,是一行數(shù)據(jù)的唯一標識
- RowKey行鍵(RowKey)可以是任意字符串(最大長度是64KB,實際應(yīng)用中長度一般為10-100bytes),RowKey以字節(jié)數(shù)組保存。
- 存儲時,數(shù)據(jù)按照RowKey的字典序(byte order)排序存儲。設(shè)計RowKey時,要充分排序存儲這個特性,將經(jīng)常一起讀取的行存儲放到一起。
Column Family:
- 列簇在物理上包含了許多的列與列的值,每個列簇都有一些存儲的屬性可配置。
- 例如是否使用緩存,壓縮類型,存儲版本數(shù)等。在表中,每一行都有相同的列簇,盡管有些列簇什么東西也沒有存。
- 將功能屬性相近的列放在同一個列族,而且同一個列族中的列會存放在同一個Store中。列族一般需要在創(chuàng)建表的時候就進行聲明,而且一般一個表中的列族數(shù)不要超過3個
- 這個和后期的優(yōu)化相關(guān)
- 列隸屬于列族,列族隸屬于表
Column Qualifier:
- 列簇的限定詞,理解為列的唯一標識。但是列標識是可以改變的,因此每一行可能有不同的列標識
- 使用的時候必須列族:列
- 列可以根據(jù)需求動態(tài)添加或者刪除,同一個表中不同行的數(shù)據(jù)列都可以不同
Cell:
- cell是由row,column family,column qualifier,version 組成的
- cell中的數(shù)據(jù)是沒有類型的,全部是字節(jié)碼形式存貯。
- 因為HDFS上的數(shù)據(jù)都是字節(jié)數(shù)組
Timestamp:
- HBase中通過rowkey和column family,column qualifier確定的一個存貯單元稱為cell。每個 cell都保存著同一份數(shù)據(jù)的多個版本。
- 版本通過時間戳來索引。
- 時間戳的類型是64位整型
- 默認時間戳是精確到毫秒的當前系統(tǒng)時間。時間戳也可以由客戶顯式賦值。
- 如果應(yīng)用程序要避免數(shù)據(jù)版本沖突,就必須自己生成具有唯一性的時間戳。
- 每個cell中,不同版本的數(shù)據(jù)按照時間倒序排序,即最新的數(shù)據(jù)排在最前面。
- 查詢數(shù)據(jù)的時候,如果不指定版本數(shù),默認顯示版本號最新(高)的數(shù)據(jù)
- 為了避免數(shù)據(jù)存在過多版本中造成管理(包括存貯和索引)負擔,HBASE提供了兩種數(shù)據(jù)版本回收方式。
- —是保存數(shù)據(jù)的最后n個版本
- 二是保存最近一段時間內(nèi)的版本(比如最近七天)
小結(jié)
HBase是一個稀疏的、分布式、持久、多維、排序的映射,它以行鍵(row key),列鍵(column key–>cfq)和時間戳(timestamp)為索引。
Hbase在存儲數(shù)據(jù)的時候,有兩個SortedMap,首先按照rowkey進行字典排序,然后再對Column進行字典排序。
照rowkey進行字典排序,然后再對Column進行字典排序。
總結(jié)
以上是生活随笔為你收集整理的2 HBase数据模型的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1 HBase 介绍
- 下一篇: 3 HBase架构