Hbase读操作

Hbase读操作

1、性能优化

在进行读数据时为了提高效率可以设置一次获取多少行,多少列,默认是一行一列。

通过

setCatch设置一次读取多少行

setBatch(batch);获取多少列

假设一个表中有5行 10列,默认情况下是每次读取只会拿到一行一列,所以在进行读取5行5列的数据时会进行多次RPC调用。

如果我们设置了批量获取行数和列数会减少RPC的调用次数,setCatch(5) setBatch(5) 则只会进行2两次RPC调用。

2、获取全部版本

在Hbase中通过get或者scan的方式只能是获取最新的版本,如果要获取所有的版本需要设置获取的版本大小即:

sc.setMaxVersions();或者开始sc.setMaxVersions(4)

假设一个数据表里面有5个版本,那么使用不带参数的方式设置的话会获取所有的版本数据,带有参数方式  设置了如果为4则会获取最新的4个版本。

在为scan或者是get设置好获取版本的信息后,读取所有版本的方式有两个:

List<KeyValue> li=result.list();
       for(KeyValue kv : li){
            System.out.println("--row:"+Bytes.toString(kv.getRow())+"--FamileL:"+Bytes.toString(kv.getFamily())+"--Qu:"+Bytes.toString(kv.getQualifier())+"--vALUE:"+Bytes.toString(kv.getValue()));
     }

或者是:

List<KeyValue> li =rs.getColumn("fml".getBytes(), "contest".getBytes());//在所有行中只获取该列
				for(KeyValue kv:li){
					System.out.println(new String(kv.getKeyString())+"--->"+new String(kv.getValue()));
					System.out.println(new String(kv.getFamily())+"--->"+new String(kv.getQualifier()));
				}

通过rs.size() 或者是rs.rawCells().length可以获取该cell中有几个版本。

3、获取列的信息

在Hbase读取时,获取列的信息数据需要先拿到Result:

rs.rawCells() //获取各个列集合

new String(CellUtil.cloneQualifier(c))//获取某列的列名

new String(CellUtil.cloneValue(c))//某列的数据值










  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值