Hbase基础命令
1. Namespace
1.1 查看Namespace
list_namespace
1.2 创建一个Namespace
create_namespace 'heima'
create_namespace 'itcast'
1.3 删除Namespace
drop_namespace 'itcast'
drop_namespace 'heima'
2. 表操作
2.1 创建表格
#如果需要更改列族的属性,使用这种写法
create 't1',{NAME=>'cf1'},{NAME=>'cf2',VERSIONS => 3}
#如果不需要更改列族属性
create 'itcast:t2','cf1','cf2','cf3'
create 't1',{NAME=>'cf1'},{NAME=>'cf2'},{NAME=>'cf3'}
备注:命名空间为itcast,表格名字为t1,t2。列族为cf1,cf2,cf3。
2.2 查看表格的详情
desc 't1'
2.3 删除表
需要先禁用表,然后再删除。
disable 't1'
drop 't1'
2.4 判断表是否存在
exists 't1'
3. 数据操作
3.1 插入数据
建表
create 'itcast:t2','cf1',{NAME=>'cf3',VERSIONS => 3}
put插入数据
put 'itcast:t2','20210201_001','cf1:name','laoda'
put 'itcast:t2','20210201_001','cf1:age',18
put 'itcast:t2','20210201_001','cf3:phone','110'
put 'itcast:t2','20210201_001','cf3:addr','shanghai'
put 'itcast:t2','20210101_000','cf1:name','laoer'
put 'itcast:t2','20210101_000','cf3:addr','bejing'
查看结果
scan 'itcast:t2',{VERSIONS=>10}
3.2 获取数据
使用get关键字获取数据,基础语法:
get 'ns:tbname','rowkey',[cf:col]
示例
get 'itcast:t2','20210201_001'
get 'itcast:t2','20210201_001','cf1'
get 'itcast:t2','20210201_001','cf1:name'
3.3 删除数据
#删除某列的数据
delete tbname,rowkey,cf:col
#删除某个rowkey数据
deleteall tbname,rowkey
#清空所有数据:生产环境不建议使用,有问题,建议删表重建
truncate tbname
示例
#删除某列的数据
delete tbname,rowkey,cf:col
#删除某个rowkey数据
deleteall tbname,rowkey
#清空所有数据:生产环境不建议使用,有问题,建议删表重建
truncate tbname
3.4 scan过滤查询
#读取整张表的所有数据
scan 'tbname'//一般不用
#根据条件查询:工作中主要使用的场景
scan 'tbname',{Filter} //用到最多
插入模拟数据
put 'itcast:t2','20210201_001','cf1:name','laoda'
put 'itcast:t2','20210201_001','cf1:age',18
put 'itcast:t2','20210201_001','cf3:phone','110'
put 'itcast:t2','20210201_001','cf3:addr','shanghai'
put 'itcast:t2','20210201_001','cf1:id','001'
put 'itcast:t2','20210101_000','cf1:name','laoer'
put 'itcast:t2','20210101_000','cf3:addr','bejing'
put 'itcast:t2','20210901_007','cf1:name','laosan'
put 'itcast:t2','20210901_007','cf3:addr','bejing'
put 'itcast:t2','20200101_004','cf1:name','laosi'
put 'itcast:t2','20200101_004','cf3:addr','bejing'
put 'itcast:t2','20201201_005','cf1:name','laowu'
put 'itcast:t2','20201201_005','cf3:addr','bejing'
过滤查询
scan 'itcast:t2'
#rowkey前缀过滤器
scan 'itcast:t2', {ROWPREFIXFILTER => '2021'}
scan 'itcast:t2', {ROWPREFIXFILTER => '202101'}
#rowkey范围过滤器
#STARTROW:从某个rowkey开始,包含,闭区间
#STOPROW:到某个rowkey结束,不包含,开区间
scan 'itcast:t2',{STARTROW=>'20210101_000'}
scan 'itcast:t2',{STARTROW=>'20210201_001'}
scan 'itcast:t2',{STARTROW=>'20210101_000',STOPROW=>'20210201_001'}
scan 'itcast:t2',{STARTROW=>'20210201_001',STOPROW=>'20210301_007'}
3.5 incr
实施
-
incr:自动计数命令
-
功能:一般用于自动计数的,不用记住上一次的值,直接做自增
-
需求:一般用于做数据的计数
-
与Put区别
-
put:需要记住上一次的值是什么
-
incr:不需要知道上一次的值是什么,自动计数
-
-
语法
incr '表名','rowkey','列族:列'
get_counter '表名','rowkey','列族:列'
示例
create 'NEWS_VISIT_CNT', 'C1'
incr 'NEWS_VISIT_CNT','20210101_001','C1:CNT',12
get_counter 'NEWS_VISIT_CNT','20210101_001','C1:CNT'
incr 'NEWS_VISIT_CNT','20210101_001','C1:CNT'
3.6 计数 count
count '表名'
示例
count 'itcast:t2'