创建命名空间test,订单表,并向表中插入如下数据:
| 订单ID | 订单状态 | 支付金额 | 支付方式 | 用户ID |
| ID | status | pay_money | payway | user_id |
| 01 | 已提交 | 4070 | 1 | 19 |
前提工作:
1.创建命名空间test
create_namespace 'test'
2.创建订单表(至少要写一个列族名)
create 'test:orderinfo' ,'c1'
3.增加01行数据
put 'orderinfo','01',c1:status','已提交'
put 'orderinfo','01',c1:pay_money',''4070
put 'orderinfo','01',c1:payway','1'
put 'orderinfo','01',c1:user_id','4944191'
问题:
- 查询出01行数据
- 将订单ID为01的状态,更改为(已付款),注意每次put后,都会生成新的时间戳
- 扫描订单表
- 查询订单数据且只显示3行
- 查询订单状态、支付方式
- 将订单ID为01的状态列删除
- 将订单ID为01的信息全部删除
答案:
1.查询01行数据
get 'orderinfo','01',{FORMATTER=>’toString’}
在get的命令后添加一个属性{FORMATTER=>’toString’} ,显示中文(默认Hbase shell中显示出来的是十六进制编码)
2.将订单ID为01的状态,更改为(已付款)
put 'orderinfo','01','c1:status','已付款'
3.扫描订单表
scan 'orderinfo'
4.查询订单数据,且只显示3行
scan 'oderinfo',{LIMIT=>3}
这里只会显示01那一行的所有列,因为只有那一行数据,如果想要看得更明白,可以自行添加02、03行数据,即重复前提工作里第三步。
5. 查询订单状态、支付方式
scan 'orderinfo',{COLUMNS=>['C1:status','C1:payway']}
6.将订单ID为01的状态列删除
delete 'orderinfo','01','C1:status'
7.将订单ID为01的信息全部删除
deleteall 'orderinfo','01'



