HBase 数据管理(二) | 「掘金日新计划 · 12 月更文挑战」

108 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第19天

一、本篇笔记重点内容:

  • HBase Shell
  • HBase的DDL命令、DML命令
  • 表数据的增删改查

二、 详细知识点介绍

HBase的数据管理

数据管理对应于HBase的DDL命令,它定义了对数据的添加、修改、删除、查询、统计等操作。下表给出了DML命令清单。

image.png

表数据的增删改查

1)添加数据

语法:put < table>,< rowkey>,< family:column>,< value>,< timestamp>

例如:给表t1的添加一行记录:rowkey是rowkey001,family name:f1,column name:col1,value:value01,timestamp:系统默认

hbase(main)> put 't1','rowkey001','f1:col1','value01'

用法比较单一。

 

2)查询数据

a)查询某行记录

语法:get < table>,< rowkey>,[ < family:column>,....]

例如:查询表t1,rowkey001中的f1下的col1的值

hbase(main)> get 't1','rowkey001', 'f1:col1'

或者:

hbase(main)> get 't1','rowkey001', {COLUMN=>'f1:col1'}

查询表t1,rowke002中的f1下的所有列值

hbase(main)> get 't1','rowkey001'

 

b)扫描表

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

另外,还可以添加STARTROW、TIMERANGE和FITLER等高级功能

例如:扫描表t1的前5条数据

hbase(main)> scan 't1',{LIMIT=>5}

 

c)查询表中的数据行数

语法:count < table>, {INTERVAL => intervalNum, CACHE => cacheNum}

INTERVAL设置多少行显示一次及对应的rowkey,默认1000;CACHE每次去取的缓存区大小,默认是10,调整该参数可提高查询速度

例如,查询表t1中的行数,每100条显示一次,缓存区为500

hbase(main)> count 't1', {INTERVAL => 100, CACHE => 500}

 

3)删除数据

a )删除行中的某个列值

语法:delete < table>, < rowkey>,   family:column , < timestamp>,必须指定列名

例如:删除表t1,rowkey001中的f1:col1的数据

hbase(main)> delete 't1','rowkey001','f1:col1'

注:将删除改行f1:col1列所有版本的数据

 

b )删除行

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

例如:删除表t1,rowk001的数据

hbase(main)> deleteall 't1','rowkey001'

 

c)删除表中的所有数据

语法: truncate

其具体过程是:disable table -> drop table -> create table

例如:删除表t1的所有数据

hbase(main)> truncate 't1'