如果我在HBase Shell上使用前缀过滤器运行扫描,则无论我使用什么前缀,都可以在不到1秒的时间内得到响应。 (0对9或“ a”对“ z”的响应速度没有差别。)
但是,当我从Microsoft HBase库(在C#中)进行相同的查询时,最多可能需要90秒才能得到答案。有趣的是,如果我选择一个更接近于0的前缀,则它越快,离0越远,花费的时间就越长。 (作为前缀过滤器,“ a”比“ f”要快)。
不确定如何确定shell与静态查询的不同之处,或者如何使静态查询的性能更高。
一些细节:
对我应该寻找或试图改善其余api请求的任何想法吗?
答案 0 :(得分:0)
结果证明这不是问题。我没有像我想的那样在shell和其余API上运行相同的命令。
在其余的API上,我提供了两个过滤器,一个页面过滤器和一个前缀过滤器。
我正在运行的HBase shell上
scan 'beacon', {STARTROW => 'ff', FILTER => "PageFilter(25)"}
STARTROW与前缀过滤器不同。实际上,它做的更多事情是设置一个完整的开始行键,从而使扫描性能更高,因为它没有遍历整个表。
结果是,这也是我在其余API调用中应该做的事情。除了前缀过滤器和页面过滤器之外,当我设置开始行和结束行时,它可以按预期快速运行。