|
|
一、Admin API
1.建表(最简):必须指定好列族
create ‘table_name’,’family_name’
例如
|
|
非默认配置,例如多个版本
|
|
2.查看表描述
describe ‘table_name’
例如下,可以看到table一些详细信息,比如列,blocksize, 布隆过滤器等。
|
|
3. 删除表(表结构 + 数据)
删除表,首先需要先disable掉表,然后再删除
|
|
4. 删除表(数据): truncate
|
|
put ‘user_test’,’row-1’,’score:math’,’90’
put ‘user_test’,’row-1’,’score:english’,’66’
put ‘user_test’,’row-1’,’score:geo’,’82’
(1) 三条数据
|
|
(2) 从执行日志看truncate实际也会Disabled table
|
|
(3) 表数据已经没了,但是表结构依然在
|
|
二、数据操作
1. 增
put ‘table_name’,’rowkey’,’family_name:column_name’,’value’
put ‘table_name’,’rowkey’,’family_name:column_name’,’value’,timestamp
例如:
2. 查
|
|
get ‘table_name’,’rowkey’
get ‘table_name’,’rowkey’,’family’
get ‘table_name’,’rowkey’,’family:column’
get ‘table_name’,’rowkey’,{column => ‘f:c’, timestamp => [ts1,ts2], VERSIONS => 4}
例如:
3. 改
在HBase中改就是在cell里面添加一个新的版本,如果最大版本数是1,就会覆盖,其使用方法还是put。
例如,将english的分数改为20,发现timestamp= 1495604900005已经发生了变化,因为create table时没有指定版本数量,那么版本数量就是1。
|
|
下面修改一下最大版本数为3(这个操作如果是线上可能不太适合(考虑到数据量),具体有什么影响后面继续学习)
|
|
4.删
在HBase中并不会立刻删除row,而是做了一个标记,当做major compact时候才会真正删除,但是对于客户端来说是访问不到的,但是major compact是必须要的,否则硬盘不会变小
- delete ‘table_name’,’rowkey’, ‘family_name:column’
- delete ‘table_name’,’rowkey’
例如
|
|