我们在用hbase的api对hbase进行scan操作的时候,可以设置caching和batch来提交查询效率,那它们之间的关系是啥样的呢,我们又应该如何去设置?
首先是我们的客户端代码。
当caching和batch都为1的时候,我们要返回10行具有20列的记录,就要进行201次RPC,因为每一列都作为一个单独的Result来返回,这样是我们不可以接受的。
下面展示的是当batch=3,caching=6时候的图,是一次RPCs的传递的数据。
接着我们继续看下图
一次查询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就和分页的值一样就行。




 hbase客户端设置缓存优化查询&spm=1001.2101.3001.5002&articleId=100717744&d=1&t=3&u=ade458e750fb4d32b08befb28e069fb7)
1215

被折叠的 条评论
为什么被折叠?



