博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HBase scan setBatch和setCaching的区别
阅读量:6982 次
发布时间:2019-06-27

本文共 759 字,大约阅读时间需要 2 分钟。

hot3.png

HBase的查询实现只提供两种方式:

1、按指定RowKey获取唯一一条记录,get方法(org.apache.hadoop.hbase.client.Get)

2、按指定的条件获取一批记录,scan方法(org.apache...client.Scan)

 

实现条件查询功能使用的就是scan方式,scan在使用时有以下几点值得注意:

1、scan可以通过setCaching与setBatch方法提高速度(以空间换时间);
2、scan可以通过setStartRow与setEndRow来限定范围([start,end)start是闭区间,end是开区间)。范围越小,性能越高。
通过巧妙的RowKey设计使我们批量获取记录集合中的元素挨在一起(应该在同一个Region下),可以在遍历结果时获得很好的性能。
3、scan可以通过setFilter方法添加过滤器,这也是分页、多条件查询的基础。

 

scan中的setCaching与setBatch方法的区别是什么呢?

setCaching设置的值为每次rpc的请求记录数,默认是1;cache大可以优化性能,但是太大了会花费很长的时间进行一次传输。

setBatch设置每次取的column size;有些row特别大,所以需要分开传给client,就是一次传一个row的几个column。

batch和caching和hbase table column size共同决意了rpc的次数。

 

通过下表可以看出caching/batch/rpc次数的关系:

 

10 rows, 2 families, 10column per family,total:200 cell

 

 

转载于:https://my.oschina.net/sniperLi/blog/906044

你可能感兴趣的文章
枚举 + 进制转换 --- hdu 4937 Lucky Number
查看>>
从面试题看技术学�
查看>>
#pragma comment
查看>>
jQuery添加/改变/移除CSS类
查看>>
如何在.NET上处理二维码
查看>>
redis主键失效机制
查看>>
secondarynamenode异常
查看>>
操作系统引论
查看>>
flume 集群datanode节点失败导致hdfs写失败(转)
查看>>
[Java]读取文件方法大全
查看>>
Linux 调度器发展简述
查看>>
正则表达式入门精进
查看>>
protobuf使用说明
查看>>
[翻译] TWRPickerSlider
查看>>
href=#与href=javascriptvoid(0)的区别
查看>>
Linux下的简单好用的计算器bc
查看>>
Swift语言快速入门
查看>>
解剖SQLSERVER 第四篇 OrcaMDF里对dates类型数据的解析(译)
查看>>
J-LINK序列号修改
查看>>
【NOIP模拟题】“与”(位运算)
查看>>