HBase - Actualizar Datos



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

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

El nuevo valor dado sustituye el valor existente, la actualizacin 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 actualizacin 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

Actualizacin de datos utilizando la API de Java

Puede actualizar los datos en una celda en concreto utilizando el put() mtodo. Siga los pasos que se indican a continuacin para actualizar un valor de la celda de una tabla.

Paso 1: Crear una instancia de la clase de configuracin

Clase de Configuracin HBase aade archivos de configuracin de su objeto. Puede crear un objeto de configuracin mediante el create() mtodo de la HbaseConfiguration clase como se muestra a continuacin.

Configuration conf = HbaseConfiguration.create();

Paso 2: Instantiatethe HTable Clase

Tiene una clase llamada HTable, una implementacin 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 configuracin y el nombre de la tabla como parmetros. Puede crear instancias de la clase HTable como se muestra a continuacin.

HTable hTable = new HTable(conf, tableName);

Paso 3: Poner Clase Instantiatethe

Para insertar datos en tabla HBase, el add() mtodo y sus variantes. Este mtodo 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 continuacin.

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

Paso 4: Updatean celulares existentes

El add() mtodo 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() mtodo como se muestra a continuacin.

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

Despus de insertar las filas necesarias, guardar los cambios mediante la adicin a la instancia el put() mtodo , de la clase HTable como se muestra a continuacin.

hTable.put(p); 

Paso 6: Cierre HTable Ejemplo

Despus de crear los datos de tabla HBase, cierre la HTable ejemplo usando el mtodo close() como se muestra a continuacin.

hTable.close();

A continuacin 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 continuacin.

$javac UpdateData.java
$java UpdateData

Lo siguiente debe ser el producto:

data Updated
Advertisements