Hbase:从每个区域获取一行密钥

时间:2013-08-03 01:34:47

标签: hbase

有没有办法从每个区域获取一行密钥?我现在一直在做的方法是依次扫描每个区域的第一个rowkey,但这是超级慢的。想知道是否还有其他更好的方法。

PS:请不要问为什么我需要每个区域的一个随机行键:)

1 个答案:

答案 0 :(得分:0)

如果您希望获取特定区域的起始行密钥,请尝试class HRegion提供的 public byte [] getStartKey()

如果您想获取每个地区的起始行密钥,您可以使用class HTable中提供的公共字节[] [] getStartKeys()目前公开的表格。

编辑:

尝试HRegionInfo提供的public byte[] getStartKey()(亲自测试)。

我有一个名为TestTable的表,有4个区域,第二个区域的起始键是0001617355.参见下图:

enter image description here

如果我这样做:

  

System.out.println(“Key as String:”+   Bytes.toString(HRegionInfo.getStartKey(Bytes.toBytes( “TestTable的,0001617355,1375740446704.68797fdaa6410c7f21d09444d649758c。”))));

在这个地区它给了我:

Key as String: 0001617355

这是你需要的吗?

(我认为应该有一些方法可以通过HTable和HRegion来实现它。将尝试并让你知道)。

HTH