在hbase中存储分层数据的最佳方法

Inf*_*ity 6 xsd hbase xml-serialization

我有一个从客户端收到的分层XML文件,我需要将它存储在Hbase数据库中,因为我是Hbase的新手,我无法理解如何处理,请你指导我如何进行这种分层数据存储到HBase的.

提前致谢

sri*_*ram 8

Hbase以列方式格式存储数据.每条记录必须有一个唯一的密钥.子列可以在运行中创建,但不能在主列中创建.

例如condider这个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>
Run Code Online (Sandbox Code Playgroud)

在这种情况下,主列族将是X3和X7.行ID可以从X2中获取.你可以使用java api来构造一个与之相当的Hbase条目,

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

p.add("X3".getBytes(), "X4".getBytes(), value1.getBytes());
Run Code Online (Sandbox Code Playgroud)

其中第一个参数是列族,第二个参数称为列限定符(子列).

你也可以使用2参数构造函数,

p.add("X3:X6:X7".getBytes(),value3);
Run Code Online (Sandbox Code Playgroud)

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