HBase - Aggiorna dati
Aggiornamento dei dati utilizzando HBase Shell
È possibile aggiornare un valore di cella esistente utilizzando il putcomando. Per fare ciò, segui la stessa sintassi e menziona il tuo nuovo valore come mostrato di seguito.
put ‘table name’,’row ’,'Column family:column name',’new value’
Il valore appena fornito sostituisce il valore esistente, aggiornando la riga.
Esempio
Supponiamo che ci sia una tabella in HBase chiamata emp con i seguenti dati.
hbase(main):003:0> scan 'emp'
ROW COLUMN + CELL
row1 column = personal:name, timestamp = 1418051555, value = raju
row1 column = personal:city, timestamp = 1418275907, value = Hyderabad
row1 column = professional:designation, timestamp = 14180555,value = manager
row1 column = professional:salary, timestamp = 1418035791555,value = 50000
1 row(s) in 0.0100 seconds
Il seguente comando aggiornerà il valore della città del dipendente denominato "Raju" a Delhi.
hbase(main):002:0> put 'emp','row1','personal:city','Delhi'
0 row(s) in 0.0400 seconds
La tabella aggiornata appare come segue dove puoi osservare la città di Raju è stata cambiata in "Delhi".
hbase(main):003:0> scan 'emp'
ROW COLUMN + CELL
row1 column = personal:name, timestamp = 1418035791555, value = raju
row1 column = personal:city, timestamp = 1418274645907, value = Delhi
row1 column = professional:designation, timestamp = 141857555,value = manager
row1 column = professional:salary, timestamp = 1418039555, value = 50000
1 row(s) in 0.0100 seconds
Aggiornamento dei dati utilizzando l'API Java
È possibile aggiornare i dati in una cella particolare utilizzando il put()metodo. Seguire i passaggi indicati di seguito per aggiornare un valore di cella esistente di una tabella.
Passaggio 1: creare un'istanza della classe di configurazione
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 la creazione di un'istanza di questa classe, accetta l'oggetto di configurazione e il nome della tabella come parametri. È possibile creare un'istanza della classe HTable come mostrato di seguito.
HTable hTable = new HTable(conf, tableName);
Passaggio 3: istanzia la classe put
Per inserire dati nella tabella HBase, il file add()vengono utilizzati il metodo e le sue varianti. Questo metodo appartiene aPut, quindi crea un'istanza di putclasse. 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: aggiorna una cella esistente
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. Inserisci i dati nella tabella HBase usando iladd() metodo come mostrato di seguito.
p.add(Bytes.toBytes("coloumn family "), Bytes.toBytes("column
name"),Bytes.toBytes("value"));
p.add(Bytes.toBytes("personal"),
Bytes.toBytes("city"),Bytes.toBytes("Delih"));
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 metodo close () come mostrato di seguito.
hTable.close();
Di seguito è riportato il programma completo per aggiornare i dati in una determinata tabella.
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 UpdateData{
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"));
// Updating a cell value
p.add(Bytes.toBytes("personal"),
Bytes.toBytes("city"),Bytes.toBytes("Delih"));
// Saving the put Instance to the HTable.
hTable.put(p);
System.out.println("data Updated");
// closing HTable
hTable.close();
}
}
Compilare ed eseguire il programma sopra come mostrato di seguito.
$javac UpdateData.java
$java UpdateData
Il seguente dovrebbe essere l'output:
data Updated