HBase - Eliminar datos
Eliminar una celda específica en una tabla
Utilizando el deletecomando, puede eliminar una celda específica en una tabla. La sintaxis dedelete comando es el siguiente:
delete ‘<table name>’, ‘<row>’, ‘<column name >’, ‘<time stamp>’
Ejemplo
A continuación, se muestra un ejemplo para eliminar una celda específica. Aquí estamos eliminando el salario.
hbase(main):006:0> delete 'emp', '1', 'personal data:city',
1417521848375
0 row(s) in 0.0060 seconds
Eliminar todas las celdas de una tabla
Con el comando "deleteall", puede eliminar todas las celdas de una fila. A continuación se muestra la sintaxis del comando deleteall.
deleteall ‘<table name>’, ‘<row>’,
Ejemplo
Aquí hay un ejemplo del comando "deleteall", donde estamos eliminando todas las celdas de la fila1 de la tabla emp.
hbase(main):007:0> deleteall 'emp','1'
0 row(s) in 0.0240 seconds
Verifique la tabla usando el scanmando. A continuación, se muestra una instantánea de la tabla después de eliminarla.
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
Eliminar datos con la API de Java
Puede eliminar datos de una tabla HBase utilizando el delete() método del HTableclase. Siga los pasos que se indican a continuación para eliminar datos de una tabla.
Paso 1: crear una instancia de la clase de configuración
ConfigurationLa clase agrega archivos de configuración de HBase a su objeto. Puede crear un objeto de configuración utilizando elcreate() método del HbaseConfiguration clase como se muestra a continuación.
Configuration conf = HbaseConfiguration.create();
Paso 2: crear una instancia de la clase HTable
Tienes una clase llamada HTable, una implementación de Table en HBase. Esta clase se usa para comunicarse con una sola tabla HBase. Al crear una instancia de esta clase, acepta el objeto de configuración y el nombre de la tabla como parámetros. Puede crear una instancia de la clase HTable como se muestra a continuación.
HTable hTable = new HTable(conf, tableName);
Paso 3: crear una instancia de la clase de eliminación
Instancia del Deleteclass pasando el rowid de la fila que se va a eliminar, en formato de matriz de bytes. También puede pasar la marca de tiempo y Rowlock a este constructor.
Delete delete = new Delete(toBytes("row1"));
Paso 4: seleccione los datos que se eliminarán
Puede eliminar los datos utilizando los métodos de eliminación del Deleteclase. Esta clase tiene varios métodos de eliminación. Elija las columnas o familias de columnas que se eliminarán utilizando esos métodos. Eche un vistazo a los siguientes ejemplos que muestran el uso de los métodos de clase Delete.
delete.deleteColumn(Bytes.toBytes("personal"), Bytes.toBytes("name"));
delete.deleteFamily(Bytes.toBytes("professional"));
Paso 5: eliminar los datos
Elimine los datos seleccionados pasando el delete instancia a la delete() método del HTable clase como se muestra a continuación.
table.delete(delete);
Paso 6: cierre HTableInstance
Después de eliminar los datos, cierre el HTable Ejemplo.
table.close();
A continuación se muestra el programa completo para eliminar datos de la tabla 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.....");
}
}
Compile y ejecute el programa anterior como se muestra a continuación.
$javac Deletedata.java
$java DeleteData
El siguiente debería ser el resultado:
data deleted