Esempio di query HBase: comando put(), get(), scan() in HBase

Scrivi i dati nella tabella HBase: Shell

Il comando put viene utilizzato per memorizzare i dati in una tabella

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

Questo comando viene utilizzato per le seguenti cose

  • Verrร  inserito un "valore" di cella in una tabella, riga o colonna definita o specificata.
  • Facoltativamente coordinerร  il timestamp.

Esempio:

  • Qui stiamo inserendo i valori nella tabella "guru99" sotto la riga r1 e la colonna c1
    hbase> put 'guru99', 'r1', 'c1', 'value', 10
  • Abbiamo inserito tre valori, 10,15 e 30 nella tabella "guru99" come mostrato nello screenshot qui sotto

Scrivi i dati nella tabella HBase: Shell

  • Supponiamo che la tabella โ€œGuru99โ€ avendo un riferimento di tabella come diciamo g. Possiamo anche eseguire il comando sul riferimento di tabella anche come
    hbase> g.put 'guru99', 'r1', 'c1', 'value', 10
  • L'output sarร  come mostrato nello screenshot sopra dopo aver inserito i valori in "guru99".

Leggi i dati dalla tabella HBase: Shell

In questa sezione verificheremo quanto segue

  • Valori inseriti nella tabella HBase โ€œguru99โ€
  • Nomi di colonna con valori presenti nel guru99 della tabella HBase

Leggi i dati dalla tabella HBase: Shell

Dallo screenshot sopra, possiamo dedurre

  • Se eseguiamo il comando "scan" nella shell HBase, verranno visualizzati i valori inseriti in "guru99" come segue
  • Nella shell HBase, verranno visualizzati i valori inseriti dal nostro codice con i nomi di colonne e righe
  • Qui possiamo vedere che i nomi delle colonne inserite sono โ€œistruzioneโ€ e โ€œprogettiโ€
  • I valori inseriti sono โ€œBigData" e "Tutorial HBase" nelle colonne menzionate

รˆ inoltre possibile utilizzare il comando Ottieni per leggere i dati da una tabella

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

Qui includono TIMERANGE, TIMESTAMP, VERSIONI e FILTRI.

Utilizzando questo comando, otterrai il contenuto di una riga o di una cella presente nella tabella. Oltre a ciรฒ puoi anche aggiungere parametri aggiuntivi come TIMESTAMP, TIMERANGE,VERSIONS, FILTERS, ecc. per ottenere una particolare riga o contenuto di cella.

Leggi i dati dalla tabella HBase: Shell

Esempi:-

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

Per la tabella "guru99โ€ฒ i valori della riga r1 e della colonna c1 verranno visualizzati utilizzando questo comando come mostrato nello screenshot sopra

hbase> get 'guru99', 'r1'

Per la tabella "guru99" i valori della riga r1 verranno visualizzati utilizzando questo comando

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

Per la tabella โ€œguru99โ€ i valori della riga 1 nell'intervallo temporale ts1 e ts2 verranno visualizzati utilizzando questo comando

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

Per la tabella "guru99" i valori della riga r1 e delle famiglie di colonne c1, c2, c3 verranno visualizzati utilizzando questo comando

Scrivi dati nella tabella HBase: API JAVA

In questo passaggio, scriveremo i dati nella tabella HBase โ€œguru99โ€

Innanzitutto, dobbiamo scrivere il codice per inserire e recuperare valori da HBase utilizzando-Programma HBaseLoading.java.

Per creare e inserire valori in una tabella a livello di colonna, devi codificare come di seguito.

Scrivi dati nella tabella HBase: API JAVA

Dalla schermata sopra

  1. Quando creiamo la configurazione HBase, punterร  a qualunque configurazione abbiamo impostato nei file base-site.xml e hbase-default.xml durante Installazioni HBase
  2. Creazione della tabella โ€œguru99โ€ utilizzando il metodo HTable
  3. Aggiunta riga1 alla tabella "guru99"
  4. Specificando i nomi delle colonne "formazione" e "progetti" e inserendo valori nei nomi delle colonne nella rispettiva riga1. I valori inseriti qui sono "BigData" e "HBaseTutorials".

Leggi i dati dalla tabella HBase: Java API

Qualunque siano i valori che abbiamo inserito nelle tabelle HBase nella sezione precedente, qui recupereremo e visualizzeremo tali valori.

Per recuperare i risultati memorizzati in โ€œguru99โ€

Leggi i dati dalla tabella HBase: Java API

Lo screenshot sopra mostra che i dati vengono letti dalla tabella HBase 'guru99'

  1. In questo, recupereremo i valori memorizzati nelle famiglie di colonne, ad esempio "istruzione" e "progetti"
  2. Usando il comando "get" recupereremo i valori memorizzati nella tabella HBase
  3. Risultati della scansione utilizzando il comando "scansione". I valori archiviati nella riga1 verranno visualizzati sulla console.

Una volta terminata la scrittura del codice, รจ necessario eseguire Giava applicazione come questa

  • Fare clic con il tasto destro su HBaseLoading.java -> Correre come -> Java Applicazione
  • Dopo aver eseguito "HBaseLoading .java" i valori verranno inseriti in "guru99" in ciascuna colonna in HBase e nello stesso programma sarร  possibile recuperare anche i valori.

Ecco il codice completo

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 following 							

table.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();							
       }							
   }							
}

Sintesi

Come discusso in questo tutorial, puoi utilizzare il comando put per inserire dati in una tabella. รˆ possibile utilizzare il comando scan, get per leggere i dati da una tabella

Riassumi questo post con: