Primjer HBase upita: naredba put(), get(), scan() u HBase

Zapišite podatke u HBase tablicu: Shell

Put naredba koristi se za spremanje podataka u tablicu

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

Ova se naredba koristi za sljedeće stvari

  • Stavit će 'vrijednost' ćelije u definiranu ili specificiranu tablicu ili redak ili stupac.
  • Opcionalno će koordinirati vremensku oznaku.

Primjer:

  • Ovdje stavljamo vrijednosti u tablicu “guru99” u red r1 i stupac c1
    hbase> put 'guru99', 'r1', 'c1', 'value', 10
  • Stavili smo tri vrijednosti, 10,15 i 30 u tablicu “guru99” kao što je prikazano na slici ispod

Zapišite podatke u HBase tablicu: Shell

  • Pretpostavimo da tablica "Guru99" ima neku referencu tablice poput g. Također možemo pokrenuti naredbu na referenci tablice također kao
    hbase> g.put 'guru99', 'r1', 'c1', 'value', 10
  • Izlaz će biti kao što je prikazano na gornjoj snimci zaslona nakon postavljanja vrijednosti u "guru99".

Čitanje podataka iz HBase tablice: Shell

U ovom odjeljku provjerit ćemo sljedeće

  • Vrijednosti koje su umetnute u HBase tablicu “guru99”
  • Imena stupaca s vrijednostima prisutnima u HBase Table guru99

Čitanje podataka iz HBase tablice: Shell

Iz gornje snimke zaslona možemo zaključiti

  • Ako pokrenemo naredbu “scan” u HBase ljusci, ona će prikazati umetnute vrijednosti u “guru99” kako slijedi
  • U HBase ljusci, prikazat će vrijednosti umetnute našim kodom s nazivima stupaca i redaka
  • Ovdje možemo vidjeti da je umetnuti naziv stupca "obrazovanje" i "projekti"
  • Umetnute vrijednosti su "BigData” i “HBase Tutorials” u spomenute stupce

Također možete koristiti naredbu Get za čitanje podataka iz tablice

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

Ovdje uključuju VREMENSKI RASPON, VREMENSKI OZNAK, VERZIJE i FILTERE.

Korištenjem ove naredbe dobit ćete sadržaj retka ili ćelije koji je prisutan u tablici. Osim toga, možete mu dodati i dodatne parametre kao što su TIMESTAMP, TIMERANGE, VERSIONS, FILTERI itd. kako biste dobili određeni sadržaj retka ili ćelije.

Čitanje podataka iz HBase tablice: Shell

Primjeri: -

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

Za tablicu “guru99′ vrijednosti retka r1 i stupca c1 prikazat će se pomoću ove naredbe kao što je prikazano na gornjoj snimci zaslona

hbase> get 'guru99', 'r1'

Za tablicu “guru99” vrijednosti retka r1 bit će prikazane pomoću ove naredbe

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

Za tablicu “guru99” vrijednosti reda 1 u vremenskom rasponu ts1 i ts2 bit će prikazane pomoću ove naredbe

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

Za tablicu “guru99” vrijednosti reda r1 i obitelji stupaca c1, c2, c3 bit će prikazane pomoću ove naredbe

Pisanje podataka u HBase tablicu: JAVA API

U ovom koraku upisat ćemo podatke u HBase tablicu "guru99"

Prvo, moramo napisati kod za umetanje i dohvaćanje vrijednosti iz HBase-a koristeći-HBaseLoading.java program.

Za stvaranje i umetanje vrijednosti u tablicu na razini stupca, morate kodirati kao u nastavku.

Pisanje podataka u HBase tablicu: JAVA API

Iz gornje snimke zaslona

  1. Kada kreiramo HBase konfiguraciju, ona će ukazivati ​​na sve konfiguracije koje smo postavili u datotekama base-site.xml i hbase-default.xml tijekom HBase instalacije
  2. Izrada tablice “guru99” metodom HTable
  3. Dodavanje reda 1 u tablicu “guru99”
  4. Određivanje naziva stupaca “edukacija” i “projekti” i umetanje vrijednosti u nazive stupaca u odgovarajućem retku1. Ovdje umetnute vrijednosti su “BigData” i “HBaseTutorials”.

Čitaj podatke iz HBase tablice: Java API

Bez obzira na vrijednosti koje smo postavili u HBase tablice u gornjem odjeljku, ovdje ćemo dohvatiti i prikazati te vrijednosti.

Za dohvaćanje rezultata pohranjenih u “guru99”

Čitaj podatke iz HBase tablice: Java API

Gornji snimak zaslona prikazuje podatke koji se čitaju iz HBase tablice 'guru99'

  1. U ovom ćemo dohvatiti vrijednosti koje su pohranjene u obiteljima stupaca, tj. "obrazovanje" i "projekti"
  2. Koristeći naredbu “get” dohvatit ćemo pohranjene vrijednosti u HBase tablici
  3. Rezultati skeniranja pomoću naredbe “scan”. Vrijednosti koje su pohranjene u retku1 prikazat će se na konzoli.

Nakon što je pisanje koda gotovo, morate se pokrenuti Java ovakva aplikacija

  • Desni klik na HBaseLoading.java -> Trčati kao -> Java primjena
  • Nakon pokretanja “HBaseLoading .java” vrijednosti će se umetnuti u “guru99” u svakom stupcu u HBase-u, au istom programu također može dohvatiti vrijednosti.

Ovdje je kompletan kod

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

rezime

Kao što smo raspravljali u ovom vodiču, možete koristiti naredbu put za umetanje podataka u tablicu. Možete koristiti naredbu scan, get za čitanje podataka iz tablice