Hbase使用整数作为行键和词典顺序

时间:2016-10-28 09:31:18

标签: java hbase lexicographic

我正在设计一个Hbase架构,其中行键应该是一个整数。我打算使用java中的scan API,其中startrow和endrow使用整数值。

我想我可以在'0'填充字符串中转换我的整数来遵守字典顺序,但是我的键会比使用整数的二进制表示要大得多。

如何在int中转换我的整数(让我们说byte[]),以便如果我对startrow和endrow使用相同的转换,扫描将返回预期值?< / p>

答案:

Nils给了anwser,我在这里找到了一个确认:

Java Comparator for byte array (lexicographic)

Hbase从int中提取byte[]并进行比较。

1 个答案:

答案 0 :(得分:1)

您可以使用hbase-client库中的org.apache.hadoop.hbase.util.Bytes来完成此操作。

从byte-array到int:

Bytes.toInt(byteArray)

从int到byte-array:

Bytes.toBytes(intvalue)

我实际上已经创建了一个在线工具来生成我需要在hbase shell right here中查询row-id所需的十六进制值。