2011-11-17 14 views
6

Ho un file XML gerarchico ricevuto dal client, ho bisogno di memorizzarlo nel database Hbase, dato che sono nuovo di Hbase non riesco a capire come avvicinarmi, puoi per favore guidare come devo procedere per questa archiviazione gerarchica dei dati su Hbase.Il modo migliore per memorizzare i dati gerarchici in hbase

Grazie in anticipo

risposta

7

HBase memorizza i dati in formato colonna saggia. Ogni record deve avere una chiave univoca. Le colonne secondarie possono essere create al volo ma non le colonne principali.

Ad esempio, condividi questo 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> 

In questo caso, la famiglia di colonne principale sarebbe X3 e X7. L'ID riga può essere preso da X2. è possibile costruire una voce equivalente HBase a questo utilizzando Java API come,

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

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

in cui il primo argomento è la famiglia colonna e il secondo è chiamato il qualificatore di colonna (sub colonna).

È inoltre possibile utilizzare 2 costruttore argomento simile,

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

poi table.put(p). Questo è tutto!!!

+0

Grazie mille .. proverò a darvi il feedbak :) – Infinity

Problemi correlati