为什么使用AND的Hbase过滤器会导致巨大的性能下降



为什么使用AND的Hbase shell过滤器会导致巨大的性能下降?

  • 扫描表,{过滤器=>"PrefixFilter(192.168.120.1)"}
  • 在0.8840秒内160行
  • scan ' table ', {FILTER => " PrefixFilter(' 192.168.120.1 ') AND ColumnPrefixFilter(' 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,每个列最终与给定的参数进行比较,这导致更多的比较次数,这就是为什么它会增加响应时间。

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

最新更新