HBase - Actualizar Datos


Advertisements

Usted puede actualizar un valor de la celda utilizando el update comando put. Para ello, sólo tienes que seguir la misma sintaxis y mencionar el nuevo valor como se muestra a continuación.

put ‘table name’,’row ’,'Column family:column name',’new value’

El nuevo valor dado sustituye el valor existente, la actualización de la fila.

Ejemplo

Supongamos que hay una tabla en HBase llamado emp con los siguientes datos

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

El siguiente comando se actualizará el valor de ciudad del empleado de nombre "Raju" a Delhi.

hbase(main):002:0> put 'emp','row1','personal:city','Delhi'
0 row(s) in 0.0400 seconds

La actualización de la tabla se ve de la siguiente manera desde donde se puede observar la ciudad de Raju ha sido cambiado a "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

Actualización de datos utilizando la API de Java

Puede actualizar los datos en una celda en concreto utilizando el put() método. Siga los pasos que se indican a continuación para actualizar un valor de la celda de una tabla.

Paso 1: Crear una instancia de la clase de configuración

Clase de Configuración HBase añade archivos de configuración de su objeto. Puede crear un objeto de configuración mediante el create() método de la HbaseConfiguration clase como se muestra a continuación.

Configuration conf = HbaseConfiguration.create();

Paso 2: Instantiatethe HTable Clase

Tiene una clase llamada HTable, una implementación de tabla en HBase. Esta clase se utiliza para comunicarse con un solo HBase tabla. Al crear una instancia esta clase, acepta el objeto de configuración y el nombre de la tabla como parámetros. Puede crear instancias de la clase HTable como se muestra a continuación.

HTable hTable = new HTable(conf, tableName);

Paso 3: Poner Clase Instantiatethe

Para insertar datos en tabla HBase, el add() método y sus variantes. Este método pertenece a poner, por lo tanto crear una instancia de la poner clase que. Esta clase requiere el nombre de la fila que desea insertar los datos en formato de cadena. Puede crear instancias de la clase que tal como se muestra a continuación.

Put p = new Put(Bytes.toBytes("row1"));

Paso 4: Updatean celulares existentes

El add() método de Put clase se utiliza para insertar datos. Se requiere de 3 matrices de bytes representa la columna familia, la columna calificativo (nombre de columna), y el valor que se va a insertar, respectivamente. Insertar datos en HBase tabla mediante el add() método como se muestra a continuación.

p.add(Bytes.toBytes("coloumn family "), Bytes.toBytes("column
name"),Bytes.toBytes("value"));
p.add(Bytes.toBytes("personal"),
Bytes.toBytes("city"),Bytes.toBytes("Delih"));

Paso 5: Guardar los datos de la tabla

Después de insertar las filas necesarias, guardar los cambios mediante la adición a la instancia el put() método , de la clase HTable como se muestra a continuación.

hTable.put(p); 

Paso 6: Cierre HTable Ejemplo

Después de crear los datos de tabla HBase, cierre la HTable ejemplo usando el método close() como se muestra a continuación.

hTable.close();

A continuación se incluye el programa completo para actualizar los datos en una tabla en particular.

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();
   }
}

Compilar y ejecutar el programa como se muestra a continuación.

$javac UpdateData.java
$java UpdateData

Lo siguiente debe ser el producto:

data Updated
Advertisements