ssyfj

补充:使用secure CRT操作hbase

(一)修改secureCRT配置环境

(二)使用hbase,查看所有命令

一:create建表(创建user表,包括base_info、extra_info两个列族)

create \'user\',{NAME=>\'base_info\',VERSIONS=>3},{NAME=>\'extra_info\'}

可以使用list命令查看所有数据表: 

可以使用describe命令,查看数据表结构:

二:数据表的删除drop 

 注意在删除表之前,需要先使得表状态为disable

三:向表中插入数据

向user表中插入信息,row key为rk0001,列族base_info中添加name列标示符,值为zhangsan

put \'user\', \'rk0001\', \'base_info:name\', \'zhangsan\'

向user表中插入信息,row key为rk0001,列族base_info中添加gender列标示符,值为female

put \'user\', \'rk0001\', \'base_info:gender\', \'female\'

向user表中插入信息,row key为rk0001,列族base_info中添加age列标示符,值为20

put \'user\', \'rk0001\', \'base_info:age\', 20

向user表中插入信息,row key为rk0001,列族extra_info中添加pic列标示符,值为picture

put \'user\', \'rk0001\', \'extra_info:pic\', \'picture\'

四:get获取表数据

(一)获取user表中row key为rk0001的所有信息

get \'user\', \'rk0001\'

(二)获取user表中row key为rk0001,base_info列族的所有信息

get \'user\', \'rk0001\', \'base_info\'

(三)获取user表中row key为rk0001,base_info列族的name、age列标示符的信息

get \'user\', \'rk0001\', \'base_info:name\', \'base_info:age\'

(四)获取user表中row key为rk0001,base_info、extra_info列族的信息

get \'user\', \'rk0001\', \'base_info\', \'extra_info\'
get \'user\', \'rk0001\', {COLUMN => [\'base_info\', \'extra_info\']}

get \'user\', \'rk0001\', {COLUMN => [\'base_info:name\', \'extra_info:pic\']}

(五)获取user表中row key为rk0001,列族为base_info,版本号最新5个的信息

get \'user\', \'rk0001\', {COLUMN => \'base_info\', VERSIONS => 2}
get \'user\', \'rk0001\', {COLUMN => \'base_info:name\', VERSIONS => 5}
get \'user\', \'rk0001\', {COLUMN => \'base_info:name\', VERSIONS => 5, TIMERANGE => [xxx时间戳, xxx时间戳]}

五:条件查询 

(一)ValueFilter值过滤---获取user表中row key为rk0001,cell的值包含zh的信息

get \'user\', \'rk0001\', {FILTER => "ValueFilter(=, \'substring:zh\')"}

(二)QualifierFilter键过滤---获取user表中row key为rk0001,列标示符中含有a的信息

get \'user\', \'rk0001\', {FILTER => "(QualifierFilter(=,\'substring:a\'))"}

(三)ValueFIlter值过滤,使用=进行值查询时:注意数据存储是按照二进制存储,所有使用binary 

put \'user\', \'rk0002\', \'base_info:name\', \'fanbingbing\'
put \'user\', \'rk0002\', \'base_info:gender\', \'female\'
put \'user\', \'rk0002\', \'base_info:nationality\', \'中国\'
get \'user\', \'rk0002\', {FILTER => "ValueFilter(=, \'binary:中国\')"}

六:Scan查询操作 

会一块查询HLog中的数据

(一)查询user表中的所有信息

scan \'user\'

(二)查询user表中列族为base_info的信息

scan \'user\', {COLUMNS => \'base_info\'}
scan \'user\', {COLUMNS => \'base_info\', RAW => true, VERSIONS => 5}

(三)查询user表中列族为base_info和extra_info的信息

scan \'user\', {COLUMNS => [\'base_info\', \'extra_info\']}
scan \'user\', {COLUMNS => [\'base_info:name\', \'extra_info:pic\']}

(四)查询user表中列族为base_info、列标示符为name的信息

scan \'user\', {COLUMNS => \'base_info:name\'}

(五)查询user表中列族为base_info、列标示符为name的信息,并且版本最新的5个

scan \'user\', {COLUMNS => \'base_info:name\', VERSIONS => 5}

 注意:scan查询版本时,有时可以比get多查询出一个。因为我们新写入的数据存放在HLog中,没有写入HFile中,所以scan将数据全部获取,get只获取3个最新版本

(六)查询user表中列族为base_info和extra_info且列标示符中含有a字符的信息

scan \'user\', {COLUMNS => [\'base_info\', \'extra_info\'], FILTER => "(QualifierFilter(=,\'substring:a\'))"}

(七)查询user表中列族为base_info,rk范围是[rk0001, rk0003)的数据

scan \'user\', {COLUMNS => \'base_info\', STARTROW => \'rk0001\', ENDROW => \'rk0003\'}

(八)查询user表中row key以rk字符开头的

scan \'user\',{FILTER=>"PrefixFilter(\'rk\')"}

(九)查询user表中指定范围的数据

scan \'user\', {TIMERANGE => [xxx时间戳, xxx时间戳]}

七:数据修改 

(一)delete删除数据

删除user表row key为rk0001,列标示符为base_info:name,timestamp为1583222243421的数据

delete \'user\', \'rk0001\', \'base_info:name\', 1583222243421

删除user表row key为rk0001,列标示符为base_info:name的数据

delete \'user\', \'rk0001\', \'base_info:name\'

(二)清空user表中的数据

truncate \'user\'

(三)修改表结构---添加列族

首先停用user表(新版本不用)

disable \'user\'

添加两个列族f1和f2

alter \'user\', NAME => \'f1\'
alter \'user\', NAME => \'f2\'

启用表

enable \'user\'

(四)修改表结构---删除列族

###disable \'user\'(新版本不用)

删除一个列族:

alter \'user\', NAME => \'f1\', METHOD => \'delete\' 或 alter \'user\', \'delete\' => \'f1\'

添加列族f1同时删除列族f2

alter \'user\', {NAME => \'f1\'}, {NAME => \'f2\', METHOD => \'delete\'}

将user表的f1列族版本号改为5

alter \'user\', NAME => \'info\', VERSIONS => 5

启用表

enable \'user\'

 

分类:

技术点:

相关文章:

  • 2021-11-30
  • 2021-05-17
  • 2021-12-24
  • 2021-10-08
  • 2021-09-28
  • 2021-12-01
  • 2019-07-03
猜你喜欢
  • 2021-11-30
  • 2021-06-03
  • 2021-07-16
  • 2021-09-27
  • 2021-10-26
  • 2021-12-01
  • 2022-01-10
相关资源
相似解决方案