HBase - Crea dati

Inserimento di dati utilizzando HBase Shell

Questo capitolo mostra come creare dati in una tabella HBase. Per creare dati in una tabella HBase, vengono utilizzati i seguenti comandi e metodi:

  • put comando,

  • add() metodo di Put classe e

  • put() metodo di HTable classe.

Ad esempio, creeremo la seguente tabella in HBase.

Utilizzando putcomando, puoi inserire righe in una tabella. La sua sintassi è la seguente:

put ’<table name>’,’row1’,’<colfamily:colname>’,’<value>’

Inserimento della prima riga

Inseriamo i valori della prima riga nella tabella emp come mostrato di seguito.

hbase(main):005:0> put 'emp','1','personal data:name','raju'
0 row(s) in 0.6600 seconds
hbase(main):006:0> put 'emp','1','personal data:city','hyderabad'
0 row(s) in 0.0410 seconds
hbase(main):007:0> put 'emp','1','professional
data:designation','manager'
0 row(s) in 0.0240 seconds
hbase(main):007:0> put 'emp','1','professional data:salary','50000'
0 row(s) in 0.0240 seconds

Inserisci le righe rimanenti utilizzando il comando put allo stesso modo. Se inserisci l'intera tabella, otterrai il seguente output.

hbase(main):022:0> scan 'emp'

   ROW                        COLUMN+CELL
1 column=personal data:city, timestamp=1417524216501, value=hyderabad

1 column=personal data:name, timestamp=1417524185058, value=ramu

1 column=professional data:designation, timestamp=1417524232601,

 value=manager
 
1 column=professional data:salary, timestamp=1417524244109, value=50000

2 column=personal data:city, timestamp=1417524574905, value=chennai

2 column=personal data:name, timestamp=1417524556125, value=ravi

2 column=professional data:designation, timestamp=1417524592204,

 value=sr:engg
 
2 column=professional data:salary, timestamp=1417524604221, value=30000

3 column=personal data:city, timestamp=1417524681780, value=delhi

3 column=personal data:name, timestamp=1417524672067, value=rajesh

3 column=professional data:designation, timestamp=1417524693187,

value=jr:engg
3 column=professional data:salary, timestamp=1417524702514,

value=25000

Inserimento di dati utilizzando l'API Java

È possibile inserire dati in Hbase utilizzando il add() metodo del Putclasse. Puoi salvarlo usando il fileput() metodo del HTableclasse. Queste classi appartengono alorg.apache.hadoop.hbase.clientpacchetto. Di seguito sono riportati i passaggi per creare dati in una tabella di HBase.

Passaggio 1: creare un'istanza della classe di configurazione

Il Configurationclass aggiunge i file di configurazione HBase al proprio oggetto. È possibile creare un oggetto di configurazione utilizzando ilcreate() metodo del HbaseConfiguration classe come mostrato di seguito.

Configuration conf = HbaseConfiguration.create();

Passaggio 2: creare un'istanza della classe HTable

Hai una classe chiamata HTable, un'implementazione di Table in HBase. Questa classe viene utilizzata per comunicare con una singola tabella HBase. Durante l'istanza di questa classe, accetta come parametri l'oggetto di configurazione e il nome della tabella. Puoi istanziare la classe HTable come mostrato di seguito.

HTable hTable = new HTable(conf, tableName);

Passaggio 3: istanzia la PutClass

Per inserire dati in una tabella HBase, il file add()vengono utilizzati il ​​metodo e le sue varianti. Questo metodo appartiene aPut, quindi istanziare la classe put. Questa classe richiede il nome della riga in cui si desidera inserire i dati, in formato stringa. Puoi istanziare il filePut classe come mostrato di seguito.

Put p = new Put(Bytes.toBytes("row1"));

Passaggio 4: inserire i dati

Il add() metodo di Putclass viene utilizzata per inserire dati. Richiede array di 3 byte che rappresentano rispettivamente la famiglia di colonne, il qualificatore di colonna (nome di colonna) e il valore da inserire. Inserire i dati nella tabella HBase utilizzando il metodo add () come mostrato di seguito.

p.add(Bytes.toBytes("coloumn family "), Bytes.toBytes("column
name"),Bytes.toBytes("value"));

Passaggio 5: salvare i dati nella tabella

Dopo aver inserito le righe richieste, salva le modifiche aggiungendo l'istanza put al file put() metodo della classe HTable come mostrato di seguito.

hTable.put(p);

Passaggio 6: chiudere l'istanza HTable

Dopo aver creato i dati nella tabella HBase, chiudere il file HTable istanza utilizzando il close() metodo come mostrato di seguito.

hTable.close();

Di seguito è riportato il programma completo per creare dati nella tabella HBase.

import java.io.IOException;

import org.apache.hadoop.conf.Configuration;

import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.util.Bytes;

public class InsertData{

   public static void main(String[] args) throws IOException {

      // Instantiating Configuration class
      Configuration config = HBaseConfiguration.create();

      // Instantiating HTable class
      HTable hTable = new HTable(config, "emp");

      // Instantiating Put class
      // accepts a row name.
      Put p = new Put(Bytes.toBytes("row1")); 

      // adding values using add() method
      // accepts column family name, qualifier/row name ,value
      p.add(Bytes.toBytes("personal"),
      Bytes.toBytes("name"),Bytes.toBytes("raju"));

      p.add(Bytes.toBytes("personal"),
      Bytes.toBytes("city"),Bytes.toBytes("hyderabad"));

      p.add(Bytes.toBytes("professional"),Bytes.toBytes("designation"),
      Bytes.toBytes("manager"));

      p.add(Bytes.toBytes("professional"),Bytes.toBytes("salary"),
      Bytes.toBytes("50000"));
      
      // Saving the put Instance to the HTable.
      hTable.put(p);
      System.out.println("data inserted");
      
      // closing HTable
      hTable.close();
   }
}

Compilare ed eseguire il programma sopra come mostrato di seguito.

$javac InsertData.java
$java InsertData

Il seguente dovrebbe essere l'output:

data inserted