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