如何扫描hbase中的数字范围

ver*_*fat 4 java hadoop hbase

我在 hbase 中的行键是不同长度的数字,例如 1,2,3.....32423480, 32423481..

当我使用

scan 'table' {STARTROW => '1', ENDROW => '3'}  
Run Code Online (Sandbox Code Playgroud)

要扫描表,我只想要行键为 1,2,3 的结果,但它返回所有以 1,2,3 开头的行,例如 1003423,200034..

是否可以使用 hbase shell 或 java api 以数字方式过滤行键范围?

谢谢

jef*_*eff 6

我更熟悉 Apache Accumulo(另一个 BigTable 实现),但我相信 HBase 的运行方式类似。

键按字典顺序排序,因此您已经观察到 '2' 之前的 '11' 排序。通常,您所做的是格式化键以强制排序在您的域中有意义。因此,例如,如果您的键最大值为 99999,您最多可以填充 5 个字符。

1  becomes 00001
2  becomes 00002
11 becomes 00011
etc
Run Code Online (Sandbox Code Playgroud)

这样 HBase 将根据预期的数字顺序对您的键进行排序,您可以扫描范围,如 (00001, 00003)。