hbase之shell操作(DML)
一、简介
Group name: dml
Commands: append, count, delete, deleteall, get, get_counter, get_splits, incr, put, scan, truncate, truncate_preserve
二、添加数据
行键 列族:列 值
hbase> put 'namespace:表名', '行键', '列族:列', '列的值',[ts1(时间戳 不给默认系统时间戳)]
put "bdtest:test2","rk001","info1:name","zs"
put "bdtest:test2","rk001","info1:age","18"
put "bdtest:test2","rk001","info1:addr","hebei"
三、删除数据
hbase> delete 'namespace:表名', '行键', '列族:列', 时间戳
base_info:age timestamp=1558847233830, value=25
delete "user_info","zhangsan_20150701_0004","base_info:age",
四、清空表数据
truncate "namespace:表名"
is_disabled "user_info"
1、- Disabling table... 禁用表
2、- Truncating table... 清空表
3、启用表
五、扫描查询表数据(scan)
1、全表扫描
表下的所有列族的所有列全部显示
scan "namespace:表名"
scan "user_info"
2、指定列显示
scan "namespace:表名",{COLUMNS => '列族:列名'}
scan "namespace:表名",{COLUMNS => ['列族:列名',"列族:列名"]}
scan "user_info",{COLUMNS => "base_info:age"}
scan "user_info",{COLUMNS => ["base_info:name","base_info:age"]}
3、指定显示行数LIMIT
scan "namespace:表名",{COLUMNS => ['列族:列名',"列族:列名"],LIMIT => 需要显示的行数}
scan "user_info",{COLUMNS => "base_info:age",LIMIT => 5}
4、指定rowkey范围显示
STARTROW指定起始的行键,ENDROW指定结束的行键
scan "namespace:表名",{COLUMNS => ['列族:列名',"列族:列名"],LIMIT=> ,STARTROW => "",ENDROW => ""}
scan "user_info",{STARTROW => "baiyc_20150716_0008",ENDROW => "zhangsan_20150701_0004"}
这种显示方式 包含左边界 不包含右边界
只指定STARTROW 不指定 ENDROW 显示到结尾
scan "user_info",{COLUMNS => "base_info:age",STARTROW => "baiyc_20150716_0008",ENDROW => "zhangsan_20150701_0004"}
5、指定时间戳范围
scan "namespace:表名",{COLUMNS=>"",TIMERANGE=>,LIMIT=>}
scan "user_info",{COLUMNS => "base_info:name",TIMERANGE => [1558844852080,1558844855890]}
时间戳范围,含头,不含尾
查询数据 TIMERANGE => [起始时间戳,终止的时间戳]
6、总结
scan进行表数据查询的时候2种方式
(1)全表扫描
(2)指定rowkey范围进行查询
六、单条查询表数据(get)
1、查询指定行键
查询指定行键的 只能查询一条数据的
hbase> get 'namespace:表名',"行键"
get "user_info","zhangsan_20150701_0004"
2、查询指定一行数据的列
COLUMN => []
get "namespace:表名","行键",{COLUMN => ["列族:列",“列族:列”]}
get "user_info","zhangsan_20150701_0004",{COLUMN => ["base_info:name","base_info:age"]}
3、指定查询一行数据的时间戳
查看某一列指定版本的数据
get "user_info","zhangsan_20150701_0004",{TIMESTAMP => 1558844848954}
get "user_info","zhangsan_20150701_0004",{COLUMN => "base_info:age",TIMESTAMP => 1558847233830}
put "user_info","zhangsan_20150701_0004","base_info:age","25"
4、指定查询的数据时间戳范围
get "user_info","zhangsan_20150701_0004",{TIMERANGE => [1558844823464,1558847245992]}
时间戳,含头不含尾的