为什么Hbase会过滤并导致巨大的性能下降?

为什么Hbase会过滤并导致巨大的性能下降?,hbase,Hbase,为什么Hbase外壳会过滤并导致性能大幅下降 扫描“表”{FILTER=>“PrefixFilter('192.168.120.1')” 0.8840秒内完成160行 扫描'table',{FILTER=>“PrefixFilter('192.168.120.1')和columnProfixfilter('SSL')”} 196.0920秒内第101排 扫描在整个桌子上进行。过滤器对扫描的数据起作用。所以你做了两次扫描。使用多个过滤器可以增加响应时间。应仔细执行行键设计,以获得在整个表上频繁扫

为什么Hbase外壳会过滤并导致性能大幅下降

  • 扫描“表”{FILTER=>“PrefixFilter('192.168.120.1')”
  • 0.8840秒内完成160行
  • 扫描'table',{FILTER=>“PrefixFilter('192.168.120.1')和columnProfixfilter('SSL')”}
  • 196.0920秒内第101排

扫描在整个桌子上进行。过滤器对扫描的数据起作用。所以你做了两次扫描。使用多个过滤器可以增加响应时间。应仔细执行行键设计,以获得在整个表上频繁扫描的数据。过滤器对扫描的数据起作用。所以你做了两次扫描。使用多个过滤器可以增加响应时间。应仔细执行行键设计,以获得频繁的数据

scan ‘table’, {FILTER => “PrefixFilter(‘192.168.120.1′)”}
-这里您使用的是PrefixFilter。在这种情况下,比较将只在表的行键上进行,这比其他过滤器更有效。 这意味着它将比较“192.168.120.1”和表中相对有效的所有行键

scan ‘table’, {FILTER => “PrefixFilter(‘192.168.120.1′) AND ColumnPrefixFilter(‘SSL’)”}
-这里使用两个过滤器PrefixFilterColumnPrefixFilter。对于在记录的行键上进行的PrefixFilter比较,但对于ColumnPrefixFilter,最终会将每一列与给定参数进行比较,这会导致更多的比较,这就是为什么它会增加响应时间

-这里您使用的是PrefixFilter。在这种情况下,比较将只在表的行键上进行,这比其他过滤器更有效。 这意味着它将比较“192.168.120.1”和表中相对有效的所有行键

scan ‘table’, {FILTER => “PrefixFilter(‘192.168.120.1′) AND ColumnPrefixFilter(‘SSL’)”}

-这里使用两个过滤器PrefixFilterColumnPrefixFilter。对于在记录的行键上进行的PrefixFilter比较,但对于ColumnPrefixFilter,最终会将每一列与给定参数进行比较,这会导致更多的比较,这就是为什么它会增加响应时间

使用PrefixFilter('192.168.120.1')进行扫描不会在整个表上发生。我的问题是:为什么两个筛选器比单个筛选器提供更多的延迟?是的,因为它的前缀是行键,所以只能查询少数区域服务器。但是ColumnprefixFilter应该扫描表中的每一行和每一列。所以这确实需要时间。尝试使用两个前缀筛选器并查看延迟,然后与前缀和列前缀进行比较。如果有几个区域已通过PrefixFilter进行了筛选,那么使用ColumnPrefixFilter扫描所有区域的原因是什么?我不确定,扫描是否知道这一点。使用PrefixFilter进行扫描('192.168.120.1'))不会在整个表上发生。我的问题是:为什么两个筛选器比单个筛选器提供更多的延迟?是的,因为它的前缀是行键,所以只能查询几个区域服务器。但是ColumnprefixFilter应该扫描表中的每一行和每一列。所以这确实需要时间。尝试使用两个前缀过滤器,查看延迟,然后与前缀和列前缀进行比较。如果有几个区域已被PrefixFilter过滤,那么使用ColumnPrefixFilter扫描所有区域的原因是什么?我不确定,扫描是否知道这一点。