欢迎投稿

今日深度:

Hbase 学习(四) hbase客户端设置缓存优化查询,

Hbase 学习(四) hbase客户端设置缓存优化查询,


我们在用hbase的api对hbase进行scan操作的时候,可以设置caching和batch来提交查询效率,那它们之间的关系是啥样的呢,我们又应该如何去设置? 首先是我们的客户端代码2d3a443972231ae376daf74be6ee96a3d77bbfad
当caching和batch都为1的时候,我们要返回10行具有20列的记录,就要进行201次RPC,因为每一列都作为一个单独的Result来返回,这样是我们不可以接受的。
93f4d01165593ba7039f1ca70e73e8ce84ae56b3
下面展示的是当batch=3,caching=6时候的图,是一次RPCs的传递的数据。
5aedab7618fd5d321c8c933d6218d87632abe6cb
接着我们继续看下图
c3f569abc4fd273ba12382e3405c14ab6a07dd3a
一次查询20条记录的话,只需要3次RPCs,列数在10列以内的数据,取20条,20/10即可,为什么是3呢,因为还有一次RPC是用来确认的。
有个公式RPCs = (Rows * Cols per Row) / Min(Cols per Row, Batch Size)/ Scanner Caching 。 这就好说啦,这样我们就可以用来优化我们的scan查询了,在查询的时候,按照查询的列数动态设置batch,如果全查,则根据自己所有的表的大小设置一个折中的数值,caching就和分页的值一样就行。

www.htsjk.Com true http://www.htsjk.com/hbase/42117.html NewsArticle Hbase 学习(四) hbase客户端设置缓存优化查询, 我们在用hbase的api对hbase进行scan操作的时候,可以设置caching和batch来提交查询效率,那它们之间的关系是啥样的呢,我们又应该如何去设...
评论暂时关闭