1.hbase的使用
1)提供了shell 命令行:$ bin/hbase shell
2)注意在hbase shell命令如果要删除打错的命令,需要按ctrl+删除键才能够删除
3)每条命令都会向regionserver发送请求
2.hbase中的DDL操作
1)创建namespace:create_namespace 'nstest'
2)查看列出namespace:list_namespace
default
hbase
nstest
3)描述namespace:describe_namespace 'nstest' ,注意:要加上引号,否则无法识别
4)删除namespace:drop_namespace 'nstest'
5)表的操作:create 'ns1:t1' 唯一确定一张表
=>在hbase中表示等于号
create 'ns1:t1', {NAME => 'f1', VERSIONS => 5}
f代表列簇,family的意思,创建表至少要指定一个列簇,后面的version代表的是最大能存的版本数,值
create 't1', {NAME => 'f1'}, {NAME => 'f2'}, {NAME => 'f3'}
可以指定多个列簇,使用大括号区分,一个括号中定义一个name变量
创建表:
create 'nstest:tb1','info'
指定在某个namespace下面创建表,如果不指定的话就会在默认的default下面创建
列簇可以增加可以删除,但是名称不能改变
禁用一张表
disable 't1'
删除一张表
drop 't1'
注意:删除之前先要禁用要删除的那张表,否则无法删除的
3.hbase中的DML操作
1)添加数据:put 'ns1:t1', 'r1', 'c1', 'value'
ns1代表namespace
t1代表表table
r1代表rowkey
c1代表列簇+列合体,唯一决定一个列是列簇+列名
value代表需要插入的值
2)插入值
put 'nstest:tb1','20170326_10001','info:name','leo'
put 'nstest:tb1','20170326_10001','info:age','18'
put 'nstest:tb1','20170326_10001','info:sex','male'
3)timestamp,手动指定,如果不指定就是默认当前插入的时间(时间戳):put 't1', 'r1', 'c1', 'value', ts1
4.hbase几种查询的方式
1)快速的查询get 'ns1:t1', 'r1'
指定rowkey:get 'nstest:tb1','20170326_10001'
指定列簇:get 'nstest:tb1','20170326_10001','info'
指定某一列:get 'nstest:tb1','20170326_10001','info:name'
2)全表扫描scan方式,对应关系型数据库中的语句就是select *
scan 'nstest:tb1'
scan 'ns1:t1', {COLUMNS => ['c1', 'c2'], LIMIT => 10, STARTROW => 'xyz'}
STARTROW代表开始的行号
添加过滤条件查询:scan 'nstest:tb1',{STARTROW => '20170326_10002'}
注意:大括号中的所有变量名称都必须是大写的,给的值可以不是大写
scan 'nstest:tb1',{STARTROW => '20170326_10001',STOPROW => '20170326_10003'}
包含头,不包含尾
scan条件过滤中的rowkey是模糊匹配的(头的模糊匹配)
5.删除操作
一般删除都是删除某一列的值,或者加一个timestamp
delete 'nstest:tb1','20170326_10001','info:name'
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于