ypsy

Hbase操作命令

 


1.创建新增表
建表语句 create \'表名\',\'列簇名\',\'列簇名\'

hbase shell> create \'mytable\',\'ct\',\'ct1\' 

语法:put <table>,<rowkey>,<family:column>,<value>,<timestamp>
新增或者覆盖数据 put \'表名\',\'键名\',\'列名(不是列簇名)\',\'值\'
指定的列名下单元格有值就覆盖..没有值就创建.所以HBase的添加数据和修改数据都是put语句..
最后的时间戳可以不写..默认为系统时间,如果要写..切记不可使用引号括起来

hbase shell> put \'mytable\',\'woshikey\',\'ct:msg\',\'99999999999999\'
hbase shell> put \'mytable\',\'woshikey\',\'ct:msg\',\'99999999999999\',1462241148

2.查询表
列出所有表

hbase shell> list 

查看表结构

hbase shell> describe \'mytable\'

扫描表
语法: scan <table>, {COLUMNS => [ <family:column>,.... ], LIMIT => num}

hbase shell> scan \'mytable\'

返回所属列簇

hbase shell> scan \'mytable\',{COLUMNS=>\'ct\'}

返回所属列簇里每个列的第一个值

hbase shell> scan \'mytable\',{COLUMNS=>\'ct\',LIMIT=>1} 

返回所属列簇里指定列的第一个值

hbase shell> scan \'mytable\',{COLUMNS=>\'ct:msg\',LIMIT=>1}

获取表数据
语法: get <table>,<key>[,<columns
主键过滤

hbase shell> get \'mytable\',\'rowkey1

主键+列簇过滤

hbase shell> get \'mytable\',\'rowkey1\',\'ct\'

主键+列簇+所属列过滤

hbase shell> get \'mytable\',\'rowkey1\',\'ct:msg\'

主键+列簇过滤

hbase shell> get \'mytable\',\'rowkey1\',{COLUMN=>\'ct\'}

主键+列簇+所属列过滤

hbase shell> get \'mytable\',\'rowkey1\',{COLUMN=>\'ct:msg\'}

获取表行数
语法:count <table>, {INTERVAL => intervalNum, CACHE => cacheNum}
INTERVAL设置多少行显示一次及对应的rowkey,默认1000;CACHE每次去取的缓存区大小,默认是10,调整该参数可提高查询速度
例如,查询表t1中的行数,每100条显示一次,缓存区为500

hbase shell> count \'mytable\', {INTERVAL => 100, CACHE => 500}

3.删除表
停用表

hbase shell> disable \'mytable\' 

删除表

hbase shell> drop \'table\' 

删除某个单元值的值会删除所有版本,必须指定列名
语法:delete <table>, <rowkey>, <family:column> , <timestamp>
测试后发现后边跟时间戳也没有用,依然会删除所有版本

hbase shell> delete \'mytable\',\'rowkey\',\'ct:msg\'

删除行或者整个列簇
可以不指定列名,删除整行数据
语法:deleteall <table>, <rowkey>, <family:column> , <timestamp>

hbase shell> deleteall \'mytable\',\'ct\'
hbase shell> deleteall \'mytable\'

清空表数据
语法: truncate <table>
等同于 disable -> drop -> create

hbase shell> truncate \'mytable\'

4.修改表
修改表数据 put ‘表明’,‘主键’,‘列族:列名’,‘新值’

put \'t_user\' ,\'1001\',\'st1:age\',\'19\'

修改表的结构..删除某列簇
删除表中的列簇 注: 要求先disable 表,,修改后enable表
请严格区分大小写

hbase shell> disable \'mytable\'
hbase shell> alter \'mytable\',{NAME=>\'ct\',METHOD=>\'delete\'}
hbase shell> enable \'mytable\'

修改表结构 新增一个列簇
请严格区分大小写

hbase shell> disable \'mytable\'
hbase shell> alter \'mytable\',{NAME=>\'columnsfamilyName\',VERSIONS=>1}
hbase shell> enable \'mytable\'

停用表

hbase shell> disable \'mytable\' 

为表创建快照..这时还没有复制数据
hbase shell> snapshot \'mytable\', \'tableSnapshot\'
根据某个快照而创建新表..此时复制数据

hbase shell> clone_snapshot \'tableSnapshot\', \'newTableName\' 

删除快照

hbase shell> delete_snapshot \'tableSnapshot\' 

删除原来的表

hbase shell> drop \'mytable\'

分类:

技术点:

相关文章:

  • 2021-12-10
  • 2021-12-10
  • 2021-12-10
  • 2021-12-25
  • 2022-01-06
  • 2022-02-05
  • 2021-12-10
  • 2021-12-10
猜你喜欢
  • 2021-11-30
  • 2021-11-30
  • 2021-10-14
  • 2021-12-10
  • 2021-12-10
  • 2021-11-04
相关资源
相似解决方案