Exemplu de interogare HBase: comandă put(), get(), scan() în HBase

Scrieți date în tabelul HBase: Shell

Comanda put este folosită pentru a stoca date într-un tabel

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

Această comandă este folosită pentru următoarele lucruri

  • Acesta va pune o „valoare” celulei la un tabel, rând sau coloană definit sau specificat.
  • Opțional va coordona ștampila de timp.

Exemplu:

  • Aici plasăm valori în tabelul „guru99” sub rândul r1 și coloana c1
    hbase> put 'guru99', 'r1', 'c1', 'value', 10
  • Am plasat trei valori, 10,15 și 30 în tabelul „guru99”, așa cum se arată în captura de ecran de mai jos

Scrieți date în tabelul HBase: Shell

  • Să presupunem că tabelul „Guru99” are o referință de tabel cum ar fi g. De asemenea, putem rula comanda pe referința tabelului
    hbase> g.put 'guru99', 'r1', 'c1', 'value', 10
  • Ieșirea va fi așa cum se arată în captura de ecran de mai sus după plasarea valorilor în „guru99”.

Citiți datele din tabelul HBase: Shell

În această secțiune, vom verifica următoarele

  • Valorile care sunt inserate în tabelul HBase „guru99”
  • Nume de coloane cu valori prezente în tabelul HBase guru99

Citiți datele din tabelul HBase: Shell

Din captura de ecran de mai sus, putem deduce

  • Dacă rulăm comanda „scanare” în shell HBase, va afișa valorile inserate în „guru99” după cum urmează
  • În shell-ul HBase, va afișa valorile inserate de codul nostru cu nume de coloane și rânduri
  • Aici putem vedea numele coloanei introduse sunt „educație” și „proiecte”
  • Valorile introduse sunt „BigData” și „Tutoriale HBase” în coloanele menționate

De asemenea, puteți utiliza comanda Get pentru a citi date dintr-un tabel

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

Aici includ TIMERANGE, TIMESTAMP, VERSIONS și FILTRE.

Folosind această comandă, veți obține un conținut de rând sau celulă prezent în tabel. În plus, puteți adăuga și parametri suplimentari, cum ar fi TIMESTAMP, TIMERANGE, VERSIONS, FILTERS etc. pentru a obține un anumit rând sau conținut de celulă.

Citiți datele din tabelul HBase: Shell

Exemple:-

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

Pentru tabelul „guru99′ valorile rândului r1 și coloana c1 vor fi afișate folosind această comandă, așa cum se arată în captura de ecran de mai sus

hbase> get 'guru99', 'r1'

Pentru tabelul „guru99” valorile rândului r1 vor fi afișate folosind această comandă

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

Pentru tabelul „guru99” rândul 1, valorile din intervalul de timp ts1 și ts2 vor fi afișate folosind această comandă

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

Pentru tabelul „guru99” rândul r1 și familiile de coloane, valorile c1, c2, c3 vor fi afișate folosind această comandă

Scrieți date în tabelul HBase: API JAVA

În acest pas, vom scrie datele în tabelul HBase „guru99”

În primul rând, trebuie să scriem cod pentru inserarea și preluarea valorilor din HBase utilizând-Programul HBaseLoading.java.

Pentru a crea și a insera valori într-un tabel la nivel de coloană, trebuie să codificați ca mai jos.

Scrieți date în tabelul HBase: API JAVA

Din captura de ecran de mai sus

  1. Când creăm configurația HBase, aceasta va indica oricare dintre configurațiile pe care le-am stabilit în fișierele base-site.xml și hbase-default.xml în timpul Instalatii HBase
  2. Crearea tabelului „guru99” folosind metoda HTable
  3. Adăugarea rândului 1 la tabelul „guru99”
  4. Specificarea numelor de coloane „educație” și „proiecte” și inserarea valorilor în numele coloanelor din rândul respectiv1. Valorile inserate aici sunt „BigData” și „HBaseTutorials”.

Citiți datele din tabelul HBase: Java API

Oricare ar fi valorile pe care le-am plasat în tabelele HBase în secțiunea de mai sus, aici vom prelua și afișa acele valori.

Pentru preluarea rezultatelor stocate în „guru99”

Citiți datele din tabelul HBase: Java API

Captura de ecran de mai sus arată că datele sunt citite din tabelul HBase „guru99”

  1. În aceasta, vom prelua valorile care sunt stocate în familiile de coloane, adică „educație” și „proiecte”
  2. Folosind comanda „get” vom prelua valorile stocate în tabelul HBase
  3. Rezultatele scanării utilizând comanda „scanare”. Valorile care sunt stocate în rândul 1 se vor afișa pe consolă.

Odată ce scrierea codului este terminată, trebuie să rulați Java aplicație ca aceasta

  • Faceți clic dreapta pe HBaseLoading.java -> Run As -> Java Aplicatii
  • După rularea „HBaseLoading .java”, valorile vor fi inserate în „guru99” în fiecare coloană din HBase și în același program poate prelua și valori.

Aici este codul 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 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();							
       }							
   }							
}

Rezumat

După cum am discutat în acest tutorial, puteți folosi comanda put pentru a insera date într-un tabel. Puteți utiliza comanda scanare, obține pentru a citi datele dintr-un tabel