HBase 篇(二):資料模型與操作
HBase作為資料庫,搞清它的資料模型與操作是最基本的,這篇就講這些比較基礎的東西。文中會涉及到比較多的操作命令,建議收藏,用到時在拿出來檢視。
這裡有一張表,是用關係型資料庫的思維畫出來的表,這樣比較易於理解:
概念
Table(表格)
沒啥說的,和關係型資料庫一樣,由多行組成
Row(行)
包含一個key和一個或者多個列。行按照RowKey字典序儲存在表格中。
Column Family(列族)
可以理解為一組列的集合,HBase官方建議儘量的減少ColumnFamily的數量。
Column Qualifier(列)
一個 Column Family 下面有多個Column Qualifier,
Timestamp(時間戳)
時間戳是寫在值旁邊的一個用於區分值的版本的資料。可以開發者自己指定,預設情況下,時間戳表示的是當資料寫入時RegionSever的時間點。
Cell(單元)
單元是由行、列族、列、值和代表值版本的時間戳組成的。舉個例子:
實際模型
上面表的其中一行,在hbase shell 中顯示實際是這樣的。
可見
-
稀疏列儲存:如果RowKey=B;Column=C1_1 這一格是空的,不會造成儲存空間碎片,只會少存一行
-
新增列方便:只需指定列名列族名,column=CF1:C1_1
-
rowkey字典序排列
-
每個value都有一個時間戳
操作彙總
注意後方高能,是一些常用的命令,看完可以收藏一波。
增刪改查
建立表
新增記錄/更新記錄
檢視記錄
查看錶中的記錄總數
刪除記錄
刪除一張表
檢視所有記錄
檢視某個表某個列中所有資料
過濾器
RowFilter
通過rowkey過濾,匹配出rowkey中含uncle的資料。
通過rowkey過濾,匹配出rowkey等於uncle666的資料。
通過rowkey過濾,匹配出rowkey小於等於uncle666的資料。
匹配從rowkey為uncle666開始讀50行
匹配時間範圍
PrefixFilter
通過rowkey字首過濾,匹配出rowkey字首為666的資料。
ValueFilter
通過value過濾,匹配出value含uncle的資料。
FamilyFilter
通過列簇過濾,匹配出列簇含f的資料。
推薦閱讀
ofollow,noindex">HBase篇(1)-特性與應用場景
覺得有價值請關注 ▼