HBase在Java中复制一行(重命名行键)

leo*_*eon 4 hbase

我知道在HBase中,行的键不能更改。

但我确实需要一个行键重命名功能。如何使用 JAVA 将 HBase 中的一行复制到另一行?

例如,我有一个带有键“key1”的现有行,并且我想创建一个带有从“key1”行复制的键“key2”的行。

太感谢了!

T V*_*pta 5

不确定你是否已经弄清楚了。但这是非常简单的事情。只需使用新行键创建一个新 Put 并从旧键复制内容即可。

        // lets say your already got the result from table.get(Bytes.toBytes("key1"))
        Put put = new Put(Bytes.toBytes("key2"));

        NavigableMap<byte[], NavigableMap<byte[], byte[]>> familyQualifierMap = result.getNoVersionMap();
        for (byte[] familyBytes : familyQualifierMap.keySet()) {
            NavigableMap<byte[], byte[]> qualifierMap = familyQualifierMap.get(familyBytes);

            for (byte[] qualifier : qualifierMap.keySet()) {
                put.add(familyBytes, qualifier, qualifierMap.get(qualifier));
            }            
        }            
        table.put(put);
        table.flushCommits();
        table.close();
Run Code Online (Sandbox Code Playgroud)