Introduceți & Preluarea datelor în HBase: Exemple get (), put (), scan ()

Cuprins:

Anonim

În acest tutorial, veți învăța:

  • Scrieți date în tabelul HBase: Shell
  • Citiți datele din tabelul HBase: Shell
  • Scrieți date în tabelul HBase: API JAVA
  • Citiți datele din tabelul HBase: API JAVA

Scrieți date în tabelul HBase: Shell

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

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

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

  • Va pune o „valoare” a celulei la un tabel sau rând sau coloană definit sau specificat.
  • Va coordona, opțional, ș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ă dacă tabelul „Guru99” are o referință de tabel, cum ar fi g. De asemenea, putem rula comanda pe referința tabelului, de asemenea, ca

    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

  • Valori care sunt inserate în tabelul HBase „guru99”
  • Numele coloanelor cu valori prezente în tabelul HBase guru99

Din captura de ecran de mai sus, putem deduce

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

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

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

Aici includ TIMERANGE, TIMESTAMP, VERSIONS și FILTRURI.

Utilizând această comandă, veți obține un conținut de rând sau celulă prezent în tabel. În plus, puteți adăuga 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” rândul r1 și coloana c1 valorile se vor afișa folosind această comandă așa cum se arată în captura de ecran de mai sus

hbase> get 'guru99', 'r1'

Pentru tabelul „guru99” rândul va fi afișat valorile r1 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 valorile c1, c2, c3 ale familiilor de coloane vor fi afișate folosind această comandă

Scrieți date în tabelul HBase: API JAVA

În acest pas, vom scrie date în tabelul HBase "guru99"

În primul rând, trebuie să scriem cod pentru inserarea și recuperarea 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 ecranul de mai sus

  1. Când creăm configurația HBase, aceasta va indica orice configurații stabilim în fișierele base-site.xml și hbase-default.xml în timpul instalărilor 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 date din tabelul HBase: API Java

Oricare ar fi valorile pe care le-am plasat în tabelele HBase din 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”

  1. În acest sens, vom prelua valorile stocate în familiile de coloane, adică „educație” și „proiecte”
  2. Folosind comanda „get” vom prelua valorile stocate în tabelul HBase
  3. Scanarea rezultatelor utilizând comanda „scanare”. Valorile stocate în rândul 1 pe care le va afișa pe consolă.

Odată ce scrierea codului este terminată, trebuie să rulați aplicația java astfel

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

Iată 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 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();}}}

Rezumat:

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