HBase - Elimina dati
Eliminazione di una cella specifica in una tabella
Usando il deletecomando, puoi eliminare una cella specifica in una tabella. La sintassi didelete il comando è il seguente:
delete ‘<table name>’, ‘<row>’, ‘<column name >’, ‘<time stamp>’
Esempio
Ecco un esempio per eliminare una cella specifica. Qui stiamo cancellando lo stipendio.
hbase(main):006:0> delete 'emp', '1', 'personal data:city',
1417521848375
0 row(s) in 0.0060 seconds
Eliminazione di tutte le celle in una tabella
Utilizzando il comando "deleteall", puoi eliminare tutte le celle di una riga. Di seguito è riportata la sintassi del comando deleteall.
deleteall ‘<table name>’, ‘<row>’,
Esempio
Ecco un esempio del comando "deleteall", in cui stiamo eliminando tutte le celle della riga1 della tabella emp.
hbase(main):007:0> deleteall 'emp','1'
0 row(s) in 0.0240 seconds
Verifica la tabella utilizzando il file scancomando. Di seguito viene fornita un'istantanea della tabella dopo l'eliminazione della tabella.
hbase(main):022:0> scan 'emp'
ROW COLUMN + CELL
2 column = personal data:city, timestamp = 1417524574905, value = chennai
2 column = personal data:name, timestamp = 1417524556125, value = ravi
2 column = professional data:designation, timestamp = 1417524204, 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 = 1417523187, value = jr:engg
3 column = professional data:salary, timestamp = 1417524702514, value = 25000
Eliminazione dei dati utilizzando l'API Java
È possibile eliminare i dati da una tabella HBase utilizzando il delete() metodo del HTableclasse. Seguire i passaggi indicati di seguito per eliminare i dati da 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: creare un'istanza della classe di eliminazione
Istanziare il file Deleteclass passando il rowid della riga da eliminare, in formato array di byte. Puoi anche passare timestamp e Rowlock a questo costruttore.
Delete delete = new Delete(toBytes("row1"));
Passaggio 4: selezionare i dati da eliminare
È possibile eliminare i dati utilizzando i metodi di eliminazione di Deleteclasse. Questa classe ha vari metodi di eliminazione. Scegli le colonne o le famiglie di colonne da eliminare utilizzando questi metodi. Dai un'occhiata ai seguenti esempi che mostrano l'utilizzo dei metodi della classe Delete.
delete.deleteColumn(Bytes.toBytes("personal"), Bytes.toBytes("name"));
delete.deleteFamily(Bytes.toBytes("professional"));
Passaggio 5: eliminare i dati
Elimina i dati selezionati passando il file delete istanza al delete() metodo del HTable classe come mostrato di seguito.
table.delete(delete);
Passaggio 6: chiudere HTableInstance
Dopo aver eliminato i dati, chiudere il file HTable Esempio.
table.close();
Di seguito è riportato il programma completo per eliminare i dati dalla tabella HBase.
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.client.Delete;
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.util.Bytes;
public class DeleteData {
public static void main(String[] args) throws IOException {
// Instantiating Configuration class
Configuration conf = HBaseConfiguration.create();
// Instantiating HTable class
HTable table = new HTable(conf, "employee");
// Instantiating Delete class
Delete delete = new Delete(Bytes.toBytes("row1"));
delete.deleteColumn(Bytes.toBytes("personal"), Bytes.toBytes("name"));
delete.deleteFamily(Bytes.toBytes("professional"));
// deleting the data
table.delete(delete);
// closing the HTable object
table.close();
System.out.println("data deleted.....");
}
}
Compilare ed eseguire il programma sopra come mostrato di seguito.
$javac Deletedata.java
$java DeleteData
Il seguente dovrebbe essere l'output:
data deleted