HBase scan setBatch和setCaching的区别

芜湖不芜
浏览 879回答 1
1回答

森林海

HBase的查询实现只提供两种方式:1、按指定RowKey获取唯一一条记录,get方法(org.apache.hadoop.hbase.client.Get)2、按指定的条件获取一批记录,scan方法(org.apache.hadoop.hbase.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的次数。
打开App,查看更多内容
随时随地看视频慕课网APP