HBase其實就是一個數據庫,無非就是存儲和增刪改查,那咱們先從數據模型提及把
shell
這裏有一張表,是用關係型數據庫的思惟畫出來的表,這樣比較易於理解:
數據庫
Table(表格)code
沒啥說的,和關係型數據庫同樣,由多行組成blog
Row(行)開發
包含一個key和一個或者多個列。行按照RowKey字典序存儲在表格中。get
Column Family(列族)string
能夠理解爲一組列的集合,HBase官方建議儘可能的減小ColumnFamily的數量。io
Column Qualifier(列)table
一個 Column Family 下面有多個Column Qualifier,im
Timestamp(時間戳)
時間戳是寫在值旁邊的一個用於區分值的版本的數據。能夠開發者本身指定,默認狀況下,時間戳表示的是當數據寫入時RegionSever的時間點。
Cell(單元)
單元是由行、列族、列、值和表明值版本的時間戳組成的。舉個例子:
A column=CF1:C1_1, timestamp=T1, value=nice
上面表的其中一行,在hbase shell 中顯示實際是這樣的。
hbase(main):006:0> scan 'table_name' ROW COLUMN+CELL A column=CF1:C1_1, timestamp=T1, value=nice A column=CF1:C1_2, timestamp=T1, value=handsome A column=CF1:C2_1, timestamp=T1, value=china A column=CF1:C2_2, timestamp=T1, value=guangdong
B column=CF1:C1_1, timestamp=T1, value=nice
注意後方高能,是一些經常使用的命令,看完能夠收藏一波。
建立表
create '表名稱', '列族名稱1','列族名稱2','列族名稱N'
添加記錄/更新記錄
put '表名稱', '行名稱', '列名稱:', '值'
查看記錄
get '表名稱', '行名稱'
查看錶中的記錄總數
count '表名稱'
刪除記錄
delete '表名' ,'行名稱' , '列名稱'
刪除一張表
先要屏蔽該表,才能對該表進行刪除,第一步 disable '表名稱' 第二步 drop '表名稱'
查看全部記錄
scan "表名稱"
查看某個表某個列中全部數據
scan "表名稱" , {COLUMNS=>'列族名稱:列名稱'}
經過rowkey過濾,匹配出rowkey中含uncle的數據。
> scan 'table_name', FILTER=>"RowFilter(=,'substring:uncle')"
經過rowkey過濾,匹配出rowkey等於uncle666的數據。
> scan 'table_name', FILTER=>"RowFilter(=,'binary:uncle666')"
經過rowkey過濾,匹配出rowkey小於等於uncle666的數據。
> scan 'table_name', FILTER=>"RowFilter(<=,'binary:uncle666')"
匹配從rowkey爲uncle666開始讀50行
> scan 'table_name',{COLUMNS=>['cf:column'],LIMIT => 50,STARTROW=>'uncle666'}
匹配時間範圍
> scan 'table_name',{COLUMNS=>['cf:column'],LIMIT => 50,TIMERANGE=>'1533530400000,1535930400000'}
經過rowkey前綴過濾,匹配出rowkey前綴爲666的數據。
> scan 'table_name', FILTER=>"PrefixFilter('666')"
經過value過濾,匹配出value含uncle的數據。
> scan 'table_name', FILTER=>"ValueFilter(=,'substring:uncle')"
經過列簇過濾,匹配出列簇含f的數據。
> scan 'table_name', FILTER=>"FamilyFilter(=,'substring:f')"