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
- Supponiamo che la tabella "Guru99" abbia qualche riferimento alla tabella come ad esempio g. Possiamo anche eseguire il comando anche sul riferimento alla tabella
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
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.
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.
Dalla schermata sopra
- Quando creiamo la configurazione HBase, punterà a qualunque configurazione abbiamo impostato nei file base-site.xml e hbase-default.xml durante Installazioni HBase
- Creazione della tabella “guru99” utilizzando il metodo HTable
- Aggiunta riga1 alla tabella "guru99"
- 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”
Lo screenshot sopra mostra che i dati vengono letti dalla tabella HBase 'guru99'
- In questo, recupereremo i valori memorizzati nelle famiglie di colonne, ad esempio "istruzione" e "progetti"
- Usando il comando "get" recupereremo i valori memorizzati nella tabella HBase
- 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 Applicazioni
- 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(); } } }
Sommario
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