我有一个从客户端收到的分层XML文件,我需要将它存储在Hbase数据库中,因为我是Hbase的新手,我无法理解如何处理,你能指导我如何进行这种分级数据存储到Hbase。
提前致谢
答案 0 :(得分:8)
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中获取。 您可以使用java api like
构建与此等效的Hbase条目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)
。多数民众赞成!