上次我們講過了《HBase簡介》,點擊閱讀有助於更好地理解本文。本文講述的是HBase數據模型。 1、ROW KEY 決定一行數據按照字典順序排序的。Row key只能存儲64k的位元組數據2、Column Family列族 & qualifier列 HBase表中的每個列都歸屬於某個列族,列族必須作 ...
上次我們講過了《HBase簡介》,點擊閱讀有助於更好地理解本文。本文講述的是HBase數據模型。
1、ROW KEY
決定一行數據
按照字典順序排序的。
Row key只能存儲64k的位元組數據
2、Column Family列族 & qualifier列
HBase表中的每個列都歸屬於某個列族,列族必須作為表模式(schema)定義的一部分預先給出。
列名以列族作為首碼,每個“列族”都可以有多個列成員(column);如 course:math, course:english, 新的列可以隨後按需、動態加入;許可權控制、存儲以及調優都是在列族層面進行的;
HBase把同一列族裡面的數據存儲在同一目錄下,由幾個文件保存。
3、Cell單元格
由行和列的坐標交叉決定; 單元格是有版本的;
單元格的內容是未解析的位元組數組;
由{row key, column( =<family> +<qualifier>), version} 唯一確定的單元。cell中的數據是沒有類型的,全部是位元組碼形式存貯。
4、Timestamp時間戳
在HBase每個cell存儲單元對同一份數據有多個版本,根據唯一的時間戳來區分每個版本之間的差異,不同版本的數據按照時間倒序排序,最新的數據版本排在最前面。
時間戳的類型是 64位整型。
時間戳可以由HBase(在數據寫入時自動)賦值,此時時間戳是精確到毫秒的當前系統時間。 時間戳也可以由客戶顯式賦值,如果應用程式要避免數據版本衝突,就必須自己生成具有唯一性的時間戳。
存儲實例:
這就是HBase的數據模型,接下來一篇文章將介紹HBase的架構體系和HBase集群安裝,請多關註。