基于RowKey后缀的HBase Shell查询

基于RowKey后缀的HBase Shell查询,hbase,Hbase,如果我在HBase中有以下行键: abc_DFS_20 sjd_eir_21 skd_err_22 ... .. sdf_rie_100 现在,我想使用HBase Shell来查询所有的行键,这些行键的编号是30-40,比如 scan 'table', {STARTROW => '*_*_30', ENDROW => '*_*_40'} 实际上,上述查询不起作用。有谁能给我一个实现这一点的主意吗?在这里多次谈到它,不支持通配符,只有前缀可以用作开始行和停止行。您有几个选项,每个选

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

abc_DFS_20
sjd_eir_21
skd_err_22
...
..
sdf_rie_100
现在,我想使用HBase Shell来查询所有的行键,这些行键的编号是30-40,比如

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

实际上,上述查询不起作用。有谁能给我一个实现这一点的主意吗?

在这里多次谈到它,不支持通配符,只有前缀可以用作开始行和停止行。您有几个选项,每个选项都有自己的优缺点(按较低的复杂性/开销排序):

  • 将值存储在列上,并使用SingleColumnValue筛选器执行表扫描(无前缀)(需要服务器端完整表扫描)
  • +SingleColumnValue过滤器或自定义过滤器,因此可以跳过与您的模式不匹配的行(需要服务器端完整表扫描,但它会更快地向前移动)
  • 通过协处理器(本机不支持)自动二级索引
  • 手动维护或双重/写入二级索引表(实时快速),其中rowkey是前缀(即:20_DFS_abc,21_sjd_eir…)
  • 你可以找到更多信息