HBase - Leer datos
Leer datos usando HBase Shell
los get comando y el get() método de HTableclass se utilizan para leer datos de una tabla en HBase. Utilizandogetcomando, puede obtener una sola fila de datos a la vez. Su sintaxis es la siguiente:
get ’<table name>’,’row1’
Ejemplo
El siguiente ejemplo muestra cómo utilizar el comando get. Examinemos la primera fila delemp mesa.
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 usando el get método.
hbase> get 'table name', ‘rowid’, {COLUMN ⇒ ‘column family:column name ’}
Ejemplo
A continuación se muestra el ejemplo para leer una columna específica en la tabla HBase.
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
Leer datos con la API de Java
Para leer datos de una tabla HBase, use el get()método de la clase HTable. Este método requiere una instancia delGetclase. Siga los pasos que se indican a continuación para recuperar datos de la tabla HBase.
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 Get
Puede recuperar datos de la tabla HBase usando el get() método del HTableclase. Este método extrae una celda de una fila determinada. Requiere unGetobjeto de clase como parámetro. Créelo como se muestra a continuación.
Get get = new Get(toBytes("row1"));
Paso 4: lea los datos
Mientras recupera datos, puede obtener una sola fila por id, u obtener un conjunto de filas por un conjunto de identificadores de fila, o escanear una tabla completa o un subconjunto de filas.
Puede recuperar los datos de una tabla HBase utilizando las variantes del método de adición en Get clase.
Para obtener una columna específica de una familia de columnas específica, use el siguiente método.
get.addFamily(personal)
Para obtener todas las columnas de una familia de columnas específica, use el siguiente método.
get.addColumn(personal, name)
Paso 5: obtenga el resultado
Obtenga el resultado pasando su Get instancia de clase al método get del HTableclase. Este método devuelve elResultobjeto de clase, que contiene el resultado solicitado. A continuación se muestra el uso deget() método.
Result result = table.get(g);
Paso 6: lectura de valores de la instancia de resultado
los Result clase proporciona el getValue()método para leer los valores de su instancia. Úselo como se muestra a continuación para leer los valores delResult ejemplo.
byte [] value = result.getValue(Bytes.toBytes("personal"),Bytes.toBytes("name"));
byte [] value1 = result.getValue(Bytes.toBytes("personal"),Bytes.toBytes("city"));
A continuación se muestra el programa completo para leer 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);
}
}
Compile y ejecute el programa anterior como se muestra a continuación.
$javac RetriveData.java
$java RetriveData
El siguiente debería ser el resultado:
name: Raju city: Delhi