Apache Phoenix(十一)新特性之SKIP扫描查询

2020-02-20  本文已影响0人  我知他风雨兼程途径日暮不赏

  总结:SKIP扫描速度优于范围扫描,但是SKIP扫描不是那么容易出现的。
  Phoenix用SKIP扫描(SKIP-SCAN)进行行的行内扫描,当根据给定的键集合时进行检索,这种扫描比范围扫描有更显著的性能改善。
  Skip扫描利用SEEK_NEXT_USING_HINT的Hbase过滤器。它是存储信息包含一个集合的键或者键范围在每个列中搜索。然后,拿到一个键(在过滤评估中传递给它),并确定它是否在某个组合或范围内。如果不是,它会找出下一个最高的键。
  SkipScanFilter的输入是一个List<List<KeyRange>>,其中顶级列表表示行键中的每一列(即每个主键部分),而内部列表表示共排的字节数组边界。
考虑以下查询:

SELECT * from T
WHERE ((KEY1 >='a' AND KEY1 <= 'b') OR (KEY1 > 'c' AND KEY1 <= 'e')) 
AND KEY2 IN (1, 2)

  < < KeyRange > >列表列表为SkipScanFilter上面的查询将是[[[a - b], [d - e]], [1、2]], [[a - b], [d - e]]是KEY1的范围和KEY2[1, 2]键。

上一篇下一篇

猜你喜欢

热点阅读