HBase - Leer Datos


Advertisements

El get comando get y el get() método 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 cómo 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 específica

A continuación se muestra la sintaxis para leer una columna específica mediante el get método.

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

A continuación se muestra el ejemplo, para leer una columna específica 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() método, de la clase HTable. Este método requiere una instancia de la get clase. Siga los pasos que se indican a continuación para recuperar los datos de la tabla HBase.

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

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

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

Se pueden recuperar datos de la HBase tabla utilizando el get() método, de la HTable clase. Este método extrae una celda de una fila determinada. Se requiere un Get objeto de clase como parámetro. Crear tal y como se muestra a continuación.

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 método add variantes en Get clase.

Para obtener una columna específica de una determinada columna familia, utilice el método siguiente.

get.addFamily(personal) 

Para obtener todas las columnas de una columna específica familia, utilice el método siguiente.

get.addColumn(personal, name) 

Paso 5: Obtener el Resultado

Obtener el resultado de una Get instancia de la clase al método get de la HTable clase . Este método devuelve el resultado objeto de la clase, que tiene el resultado. A continuación se muestra el uso del get() método.

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 continuación 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 continuación 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 continuación.

$javac RetriveData.java
$java RetriveData

Lo siguiente debe ser el producto:

name: Raju city: Delhi
Advertisements