HBase Shell查询基于RowKey后缀

时间:2014-01-23 23:08:45

标签: hbase

如果我在HBase中有以下行键:

abc_DFS_20
sjd_eir_21
skd_err_22
...
..
sdf_rie_100

现在我想使用HBase Shell查询* _ * _number从30到40的所有rowkeys,所以像

scan 'table', {STARTROW => '*_*_30', ENDROW => '*_*_40'}

实际上,上述查询不起作用。任何人都可以给我一个想法来实现这个目标吗?

1 个答案:

答案 0 :(得分:2)

这里多次谈到它,不支持通配符,只有前缀可以用作开始和放大器。停止行。你有几个选择,每个选项都有自己的专业知识。缺点(按复杂性/开销减少排序):

  1. 将值存储在列上,并使用 SingleColumnValue 过滤器执行表扫描(无前缀)(需要进行服务器端全表扫描)。
  2. FuzzyRowFilter + SingleColumnValue 过滤器或自定义过滤器,因此可以跳过与您的模式不匹配的行(需要服务器端全表扫描)但它会快速前进。)
  3. 自动二级索引通过协处理器(非本机支持)。
  4. 手动维护或双/写二级索引表(实时快速),其中rowkey是您的前缀(即:20_DFS_abc,21_sjd_eir ...)
  5. 您可以找到更多信息here