2011-11-17 24 views
6

クライアントから受け取った階層的なXMLファイルがあります。Hbaseデータベースに保存する必要があります.Hbaseを初めて使用しているため、アプローチ方法を理解できません。私はHbaseへのこの階層的なデータストレージをどのように進めるべきですか?hbaseに階層データを格納するための最良の方法

ありがとうございます。

答えて

7

Hbaseは、データを列形式で保存します。各レコードには一意のキーが必要です。サブ列はオンザフライで作成できますが、メイン列は作成できません。

たとえば、このxmlをcondiderします。

<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の最初の引数は、列の家族2つ目は、カラムの修飾子(サブ列)と呼ばれているような、

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

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

にHBaseのエントリー相当を構築することができます。

またtable.put(p)その後、

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

、のような2引数のコンストラクタを使用することができます。それでおしまい!!!

+0

ありがとうございました。私はあなたに試してみましょう、feedbak :) – Infinity

関連する問題