Hbase的數據結構
基本要素:命名空間、表、行、列、單元格,region,時間戳。
1.命名空間:NameSpaces的做用
Table:表,全部的表都是命名空間的成員,即表必屬於某個命名空間,若是沒有指定,則在default默認的命名空間中。
RegionServer group:一個命名空間包含了默認的RegionServer Group。
Permission:權限,命名空間可以定義訪問控制列表ACL(Access Control List)。例如,建立表,讀取表,刪除,更新等等操做。
Quota:限額,能夠強制一個命名空間可包含的region的數量。
2.表:概念上能夠理解爲關係型數據庫的表。
3.行:行鍵rowkey是行的惟一標識元素,表中的數據存儲根據行鍵進行排序,數據的訪問也是經過行鍵進行。
4.列:(列族:列名)表中的每一個列,都歸屬於某個列族,列族是表的schema的一部分(列不是),必須在使用表以前定義,列名都以列族做爲前綴;例如info:name,info:age,info:class都屬於info這個列族。
5.單元格: 單元格cell中存放的是不可分割的字節數組,每一個單元格擁有版本信息,插入數據時若沒有設置版本,則爲默認版本。
6.region:region將表水平劃分,是Hbase集羣分佈數據的最小單位,在線的全部區域就構成了表的內容。
7.時間戳:Hbase 中每一個 cell都保存着同一份數據的多個版本,版本經過時間戳來索引,插入數據時能夠設置時間戳的值,若未設置則生成默認時間戳。
Hbase的Shell操做
在任意節點主機上使用hbase shell便可鏈接到已經啓動的Hbase實例:
shell
1 # hbase shell
1 > help
1 > status
1 > version
1 > create 'testtable','infofamily'
1 > list
1 > describe 'testtable'
1 > alter 'testtable',NAME=>'basic'
使用describe命令查看添加列族後的表信息:
使用alter命令刪除列族:
數據庫
1 > alter 'testtable',NAME=>'basic','METHOD'=>'delete'
使用disable命令能夠禁用表,在作刪除表或其餘的操做時,須要在表禁用的狀況下才能進行操做,使用enable命令能夠將禁用的表格從新啓用:
數組
1 > disable 'testtable'
1 > enable 'testtable'
1 > disable 'testtable' 2 > drop 'testtable'
1 > create 'testtableone','info'
1 > put '表名','行鍵','列族:列名','VALUE'
1 > put 'testtableone','row1','info:name','Jack'
1 > get 'testtableone','row1'
1 > scan 'testtableone'
1 > delete '表名','行鍵','列族:列名',時間戳
1 > delete 'testtableone','row1','info:class',1566182654321
1 > delete '表名','行鍵'
1 > deleteall 'testtableone','row1'
1 > count 'testtableone'