HBase - Leer Datos



El get comando get y el get() mtodo de HTable clase se utilizan para leer los datos de una tabla en HBase. Usando get, usted puede obtener una fila de datos a la vez. Su sintaxis es la siguiente:

get <table name>,row1

El siguiente ejemplo muestra cmo utilizar el comando get. Nos captura la primera fila de la emp tabla.

hbase(main):012:0> get 'emp', '1'

   COLUMN                     CELL
   
personal : city timestamp=1417521848375, value=hyderabad

personal : name timestamp=1417521785385, value=ramu

professional: designation timestamp=1417521885277, value=manager

professional: salary timestamp=1417521903862, value=50000

4 row(s) in 0.0270 seconds

Leer una columna especfica

A continuacin se muestra la sintaxis para leer una columna especfica mediante el get mtodo.

hbase>get 'table name', rowid, {COLUMN => column family:column name }

A continuacin se muestra el ejemplo, para leer una columna especfica de HBase tabla.

hbase(main):015:0> get 'emp', 'row1', {COLUMN=>'personal:name'}

  COLUMN                CELL
  
personal:name timestamp=1418035791555, value=raju

1 row(s) in 0.0080 seconds

Lectura de datos utilizando la API de Java

Para leer los datos de una tabla HBase, utilice el get() mtodo, de la clase HTable. Este mtodo requiere una instancia de la get clase. Siga los pasos que se indican a continuacin para recuperar los datos de la tabla HBase.

Paso 1: Crear una instancia de la clase de configuracin

HBase Configurationclase 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: Crear una instancia de la clase HTable

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: Obtener una instancia de la clase

Se pueden recuperar datos de la HBase tabla utilizando el get() mtodo, de la HTable clase. Este mtodo extrae una celda de una fila determinada. Se requiere un Get objeto de clase como parmetro. Crear tal y como se muestra a continuacin.

Get get = new Get(toBytes("row1"));

Paso 4: leer los datos

Al recuperar los datos, se puede obtener una sola fila de id, o conseguir un conjunto de filas de un conjunto de identificadores de fila, o escanear una tabla entera o un subconjunto de filas.

Puede recuperar una HBase datos de la tabla utilizando el mtodo add variantes en Get clase.

Para obtener una columna especfica de una determinada columna familia, utilice el mtodo siguiente.

get.addFamily(personal) 

Para obtener todas las columnas de una columna especfica familia, utilice el mtodo siguiente.

get.addColumn(personal, name) 

Paso 5: Obtener el Resultado

Obtener el resultado de una Get instancia de la clase al mtodo get de la HTable clase . Este mtodo devuelve el resultado objeto de la clase, que tiene el resultado. A continuacin se muestra el uso del get() mtodo.

Result result = table.get(g);  

Paso 6: Lectura de valores del resultado Ejemplo

LaResult clase proporciona el getValue() para leer los valores de la instancia. Usar como se muestra a continuacin para leer los valores de los resultados.

byte [] value =
result.getValue(Bytes.toBytes("personal"),Bytes.toBytes("name"));
byte [] value1 =
result.getValue(Bytes.toBytes("personal"),Bytes.toBytes("city"));

A continuacin se incluye el programa completo para leer los valores de una tabla HBase

import java.io.IOException;

import org.apache.hadoop.conf.Configuration;

import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.client.Get;
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.util.Bytes;

public class RetriveData
{

   public static void main(String[] args) throws IOException, Exception
   {
   
      // Instantiating Configuration class
      Configuration config = HBaseConfiguration.create();

      // Instantiating HTable class
      HTable table = new HTable(config, "emp");

      // Instantiating Get class
      Get g = new Get(Bytes.toBytes("row1"));

      // Reading the data
      Result result = table.get(g);

      // Reading values from Result class object
      byte [] value = result.getValue(Bytes.toBytes("personal"),Bytes.toBytes("name"));

      byte [] value1 = result.getValue(Bytes.toBytes("personal"),Bytes.toBytes("city"));

      // Printing the values
      String name = Bytes.toString(value);
      String city = Bytes.toString(value1);
      
      System.out.println("name: " + name + " city: " + city);
   }
}

Compilar y ejecutar el programa como se muestra a continuacin.

$javac RetriveData.java
$java RetriveData

Lo siguiente debe ser el producto:

name: Raju city: Delhi
Advertisements