2011-11-17 99 views
6

我有一个从客户端接收到的分层XML文件,我需要将它存储在Hbase数据库中,因为我是Hbase的新手,我无法理解如何处理,请引导我应该如何处理这个分层数据存储到Hbase。在hbase中存储分层数据的最佳方式

在此先感谢

回答

7

Hbase以列明智格式存储数据。每个记录必须具有唯一的密钥。子列可以在飞行中创建,但不能在主列上创建。

例如condider this xml。

<X1> 
    <X2 name = "uniqueid">1</X2> 
    <X3> 
     <X4>value1</X4> 
     <X5>value2</X5> 
     <X6> 
      <X7>value3</X7> 
      <X8>value4</X8> 
     </X6> 
    </X3> 
    <X7>value5</X7> 
</X1> 

在这种情况下,主列族将是X3和X7。行ID可以从X2中获取。 您可以构建一个HBase的进入相当于此使用的Java API一样,

Put p = new Put("/*put the unique row id */ ".getBytes()); 

p.add("X3".getBytes(), "X4".getBytes(), value1.getBytes()); 

其中第一个参数是列家族,第二个叫做列资格赛(分列)。

您也可以使用2个参数的构造函数一样,

p.add("X3:X6:X7".getBytes(),value3); 

然后table.put(p)。而已!!!

+0

非常感谢。我会尽力给你feedbak :) – Infinity

相关问题