开发者

HBase copy one row (rename row key) in Java

I know in HBase, the key of the row can not be changed.

But I really need a 开发者_如何学Crow key rename function. How can I copy one row to another row in HBase using JAVA?

e.g. I have existing row with key "key1", and I want to create a row with key "key2" copied from "key1" row.

Thanks a million!


Not sure if you already figured it out. But this is pretty straightforward stuff. Just create a new Put with the new row key and copy contents from old key.

        // 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();
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜