Insérer & Récupérer des données dans HBase: exemples get (), put (), scan ()

Table des matières:

Anonim

Dans ce tutoriel, vous apprendrez:

  • Écrire des données dans la table HBase: Shell
  • Lire les données de la table HBase: Shell
  • Écrire des données dans la table HBase: API JAVA
  • Lire les données de la table HBase: API JAVA

Écrire des données dans la table HBase: Shell

La commande put est utilisée pour stocker des données dans une table

Syntax: put <'tablename'>,<'rowname'>,<'columnvalue'>,<'value'>

Cette commande est utilisée pour les choses suivantes

  • Il placera une cellule «valeur» dans une table, une ligne ou une colonne définie ou spécifiée.
  • Il coordonnera éventuellement l'horodatage.

Exemple:

  • Ici, nous plaçons des valeurs dans la table "guru99" sous la ligne r1 et la colonne c1
    hbase> put 'guru99', 'r1', 'c1', 'value', 10
  • Nous avons placé trois valeurs, 10, 15 et 30 dans le tableau "guru99" comme indiqué dans la capture d'écran ci-dessous

  • Supposons que la table "Guru99" ait une référence de table comme disons g. Nous pouvons également exécuter la commande sur la référence de table également comme

    hbase> g.put 'guru99', 'r1', 'c1', 'value', 10
  • La sortie sera comme indiqué dans la capture d'écran ci-dessus après avoir placé les valeurs dans "guru99".

Lire les données de la table HBase: Shell

Dans cette section, nous vérifierons les éléments suivants

  • Valeurs insérées dans la table HBase "guru99"
  • Noms de colonnes avec des valeurs présentes dans HBase Table guru99

À partir de la capture d'écran ci-dessus, nous pouvons déduire

  • Si nous exécutons la commande "scan" dans le shell HBase, les valeurs insérées dans "guru99" seront affichées comme suit
  • Dans le shell HBase, il affichera les valeurs insérées par notre code avec les noms de colonnes et de lignes
  • Ici, nous pouvons voir que les noms de colonne insérés sont "éducation" et "projets"
  • Les valeurs insérées sont "BigData" et "HBase Tutorials" dans les colonnes mentionnées

Vous pouvez également utiliser la commande Get pour lire les données d'une table

Syntax: get <'tablename'>, <'rowname'>, {< Additional parameters>}

Ici, les incluent TIMERANGE, TIMESTAMP, VERSIONS et FILTERS.

En utilisant cette commande, vous obtiendrez un contenu de ligne ou de cellule présent dans le tableau. En plus de cela, vous pouvez également y ajouter des paramètres supplémentaires tels que TIMESTAMP, TIMERANGE, VERSIONS, FILTERS, etc. pour obtenir un contenu de ligne ou de cellule particulier.

Exemples:-

hbase> get 'guru99', 'r1', {COLUMN => 'c1'}

Pour la table «guru99», les valeurs de la ligne r1 et de la colonne c1 s'afficheront à l'aide de cette commande, comme indiqué dans la capture d'écran ci-dessus

hbase> get 'guru99', 'r1'

Pour la table "guru99", les valeurs de la ligne r1 seront affichées à l'aide de cette commande

hbase> get 'guru99', 'r1', {TIMERANGE => [ts1, ts2]}

Pour la table "guru99", les valeurs de la ligne 1 dans la plage de temps ts1 et ts2 seront affichées à l'aide de cette commande

hbase> get 'guru99', 'r1', {COLUMN => ['c1', 'c2', 'c3']}

Pour la table "guru99", les valeurs de la ligne r1 et des familles de colonnes c1, c2, c3 seront affichées à l'aide de cette commande

Écrire des données dans la table HBase: API JAVA

Dans cette étape, nous allons écrire des données dans la table HBase "guru99"

Tout d'abord, nous devons écrire du code pour insérer et récupérer des valeurs à partir de HBase en utilisant le programme HBaseLoading.java.

Pour créer et insérer des valeurs dans une table au niveau de la colonne, vous devez coder comme ci-dessous .

À partir de la capture d'écran ci-dessus

  1. Lorsque nous créons une configuration HBase, elle pointera vers toutes les configurations que nous avons définies dans les fichiers base-site.xml et hbase-default.xml lors des installations HBase
  2. Création de la table "guru99" en utilisant la méthode HTable
  3. Ajout de la ligne 1 à la table "guru99"
  4. Spécification des noms de colonne «éducation» et «projets» et insertion de valeurs dans les noms de colonne de la ligne correspondante1. Les valeurs insérées ici sont "BigData" et "HBaseTutorials".

Lire les données de la table HBase: API Java

Quelles que soient les valeurs que nous avons placées dans les tables HBase dans la section ci-dessus, nous allons ici récupérer et afficher ces valeurs.

Pour récupérer les résultats stockés dans "guru99"

La capture d'écran ci-dessus montre que les données sont lues à partir de la table HBase 'guru99'

  1. En cela, nous allons récupérer les valeurs qui sont stockées dans les familles de colonnes, c'est-à-dire "éducation" et "projets"
  2. En utilisant la commande "get", nous allons récupérer les valeurs stockées dans la table HBase
  3. Analyse des résultats à l'aide de la commande "scan". Les valeurs stockées dans la ligne 1 seront affichées sur la console.

Une fois l'écriture du code terminée, vous devez exécuter une application Java comme celle-ci

  • Faites un clic droit sur HBaseLoading.java -> Exécuter en tant que -> Application Java
  • Après avoir exécuté "HBaseLoading .java", les valeurs vont être insérées dans "guru99" dans chaque colonne de HBase et dans le même programme, il peut également récupérer des valeurs.

Voici le code complet

import java.io.IOException;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.Put;import org.apache.hadoop.hbase.client.Result;import org.apache.hadoop.hbase.client.ResultScanner;import org.apache.hadoop.hbase.client.Scan;import org.apache.hadoop.hbase.util.Bytes;public class HBaseLoading{public static void main(String[] args) throws IOException{/* When you create a HBaseConfiguration, it reads in whatever you've set into your hbase-site.xml and in hbase-default.xml, as long as these can be found on the CLASSPATH*/org.apache.hadoop.conf.Configuration config = HBaseConfiguration.create();/*This instantiates an HTable object that connects you to the "test" table*/HTable table = new HTable(config, "guru99");/* To add to a row, use Put. A Put constructor takes the name of the row you want to insert into as a byte array.*/Put p = new Put(Bytes.toBytes("row1"));/*To set the value you'd like to update in the row 'row1', specify the column family, column qualifier, and value of the table cell you'd like to update. The column family must already exist in your table schema. The qualifier can be anything.*/p.add(Bytes.toBytes("education"), Bytes.toBytes("col1"),Bytes.toBytes("BigData"));p.add(Bytes.toBytes("projects"),Bytes.toBytes("col2"),Bytes.toBytes("HBaseTutorials"));// Once you've adorned your Put instance with all the updates you want to make, to commit it do the followingtable.put(p);// Now, to retrieve the data we just wrote.Get g = new Get(Bytes.toBytes("row1"));Result r = table.get(g);byte [] value = r.getValue(Bytes.toBytes("education"),Bytes.toBytes("col1"));byte [] value1 = r.getValue(Bytes.toBytes("projects"),Bytes.toBytes("col2"));String valueStr = Bytes.toString(value);String valueStr1 = Bytes.toString(value1);System.out.println("GET: " +"education: "+ valueStr+"projects: "+valueStr1);Scan s = new Scan();s.addColumn(Bytes.toBytes("education"), Bytes.toBytes("col1"));s.addColumn(Bytes.toBytes("projects"), Bytes.toBytes("col2"));ResultScanner scanner = table.getScanner(s);try{for (Result rr = scanner.next(); rr != null; rr = scanner.next()){System.out.println("Found row : " + rr);}} finally{// Make sure you close your scanners when you are done!scanner.close();}}}

Résumé:

Comme nous l'avons vu dans ce didacticiel, vous pouvez utiliser la commande put pour insérer des données dans une table. Vous pouvez utiliser l'analyse, obtenir la commande pour lire les données d'une table