【发布时间】:2013-08-06 06:43:48
【问题描述】:
有没有办法从每个区域获取一个行键?我现在一直在做的方式是顺序扫描每个区域的第一个 rowkey,但这非常慢。想知道有没有其他更好的方法。
PS:请不要问我为什么需要每个区域的一个随机行键:)
【问题讨论】:
标签: hbase
有没有办法从每个区域获取一个行键?我现在一直在做的方式是顺序扫描每个区域的第一个 rowkey,但这非常慢。想知道有没有其他更好的方法。
PS:请不要问我为什么需要每个区域的一个随机行键:)
【问题讨论】:
标签: hbase
如果您想获取特定区域的起始行键,请尝试class HRegion 提供的public byte[] getStartKey()。
如果您想获取当前每个区域的起始行键,您可以使用class HTable中提供的public byte[][] getStartKeys()打开表。
编辑:
试试HRegionInfo提供的public byte[] getStartKey()(亲测)。
我有一个名为 TestTable 的表,有 4 个区域,第二个区域的开始键是 0001617355。见下图:
如果我这样做了:
System.out.println("Key as String : " + Bytes.toString(HRegionInfo.getStartKey(Bytes.toBytes("TestTable,0001617355,1375740446704.68797fdaa6410c7f21d09444d649758c."))));
在这个地区它给了我:
作为字符串的键:0001617355
这是你需要的吗?
(我认为应该有一些方法可以通过 HTable 和 HRegion 来实现它。会尝试一下并告诉你)。
HTH
【讨论】: