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
- 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
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ă.
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.
Din captura de ecran de mai sus
- 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
- Crearea tabelului „guru99” folosind metoda HTable
- Adăugarea rândului 1 la tabelul „guru99”
- 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”
Captura de ecran de mai sus arată că datele sunt citite din tabelul HBase „guru99”
- În aceasta, vom prelua valorile care sunt stocate în familiile de coloane, adică „educație” și „proiecte”
- Folosind comanda „get” vom prelua valorile stocate în tabelul HBase
- 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





