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