【问题标题】:HBase copy one row (rename row key) in JavaHBase在Java中复制一行(重命名行键)
【发布时间】:2011-08-01 16:52:05
【问题描述】:

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

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

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

谢谢一百万!

【问题讨论】:

    标签: hbase


    【解决方案1】:

    不确定你是否已经弄清楚了。但这是非常简单的事情。只需使用新的行键创建一个新的 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();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-09
      • 2012-08-19
      • 2012-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多