有没有办法在hbase中进行整数排序?

Is there any way to integer sort in hbase?

据我所知,HBase 仅支持用于写入目的的字节数组。

有什么方法可以接收整数排序而不是字典顺序

的扫描结果

例如

1

2

10

不如

1

10

2

有人说我们可以像这样存储

00001

00002

00010

还有其他方法吗?

来自org.apache.hadoop.hbase.util.Bytes:

  /**
   * Convert an int value to a byte array.  Big-endian.  Same as what DataOutputStream.writeInt
   * does.
   *
   * @param val value
   * @return the byte array
   */
  public static byte[] toBytes(int val) {
    byte [] b = new byte[4];
    for(int i = 3; i > 0; i--) {
      b[i] = (byte) val;
      val >>>= 8;
    }
    b[0] = (byte) val;
    return b;
  }

因此您可以清楚地看到,您可以使用此实用程序 class 在保存之前转换您的密钥。获取时,它们将按整数值排序。 这有效地处理了您在评论中提到的填充。