有没有办法从每个区域获取一个行键?我现在一直在做的方式是顺序扫描每个区域的第一个 rowkey,但这非常慢。想知道有没有其他更好的方法。
PS:请不要问我为什么需要每个地区的一个随机行键:)
有没有办法从每个区域获取一个行键?我现在一直在做的方式是顺序扫描每个区域的第一个 rowkey,但这非常慢。想知道有没有其他更好的方法。
PS:请不要问我为什么需要每个地区的一个随机行键:)
如果您希望获取特定区域的起始行键,请尝试HRegion 类提供的public byte[] getStartKey() 。
或者,如果您想获取当前打开表中每个区域的起始行键,则可以使用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 来实现它。会尝试一下并让你知道)。
高温高压