Umetni & Dohvat podataka u HBase: Primjeri get (), put (), scan ()

Sadržaj:

Anonim

U ovom vodiču naučit ćete:

  • Zapisivanje podataka u tablicu HBase: ljuska
  • Očitavanje podataka iz tablice HBase: Shell
  • Zapisivanje podataka u tablicu HBase: JAVA API
  • Očitavanje podataka iz tablice HBase: JAVA API

Zapisivanje podataka u tablicu HBase: ljuska

Naredba put 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 navedenu tablicu ili redak ili stupac.
  • Po želji će koordinirati vremensku oznaku.

Primjer:

  • Ovdje stavljamo vrijednosti u tablicu "guru99" ispod retka r1 i stupca c1
    hbase> put 'guru99', 'r1', 'c1', 'value', 10
  • U tablicu "guru99" smjestili smo tri vrijednosti, 10,15 i 30, kao što je prikazano na snimci zaslona u nastavku

  • Pretpostavimo da ako tablica "Guru99" ima neku referencu tablice poput recimo g. Također možemo pokrenuti naredbu na referenci tablice koja također voli

    hbase> g.put 'guru99', 'r1', 'c1', 'value', 10
  • Izlaz će biti kao što je prikazano na gornjoj snimci zaslona nakon stavljanja vrijednosti u "guru99".

Očitavanje podataka iz tablice HBase: Shell

U ovom ćemo odjeljku provjeriti sljedeće

  • Vrijednosti koje su umetnute u HBase tablicu "guru99"
  • Imena stupaca s vrijednostima prisutnim u tablici HBase tablice guru99

Iz gornjeg snimka zaslona možemo zaključiti

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

Naredbu Get možete koristiti i za čitanje podataka iz tablice

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

Ovdje uključuju TIMERANGE, TIMESTAMP, VERSIONS i FILTERS.

Korištenjem ove naredbe dobit ćete sadržaj retka ili ćelije prisutan u tablici. Uz to možete mu dodati i dodatne parametre poput TIMESTAMP, TIMERANGE, VERSIONS, FILTERS, itd. Da biste dobili određeni sadržaj retka ili ćelije.

Primjeri: -

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

Za tablicu "guru99 'vrijednosti r1 i stupac c1 prikazat će se pomoću ove naredbe kao što je prikazano na gornjoj snimci zaslona

hbase> get 'guru99', 'r1'

Za tablicu "guru99" prikazat će se vrijednosti r1 pomoću ove naredbe

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

Za tablicu "guru99" pomoću ove naredbe prikazat će se vrijednosti retka 1 u vremenskom rasponu ts1 i ts2

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

Za tablicu "guru99" pomoću ove naredbe prikazat će se vrijednosti c1, c2, c3 obitelji r1 i stupaca.

Zapisivanje podataka u tablicu HBase: JAVA API

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

Prvo moramo napisati kod za umetanje i dohvaćanje vrijednosti iz HBase pomoću programa HBaseLoading.java.

Da biste stvorili i umetnuli vrijednosti u tablicu na razini stupca, morate kodirati kao u nastavku .

S gornjeg zaslona

  1. Kada kreiramo HBase konfiguraciju, ukazat će na bilo koju konfiguraciju koju postavimo u datotekama base-site.xml i hbase-default.xml tijekom instalacije HBase
  2. Izrada tablice "guru99" pomoću HTable metode
  3. Dodavanje retka1 u tablicu "guru99"
  4. Određivanje naziva stupaca "obrazovanje" i "projekti" i umetanje vrijednosti u nazive stupaca u odgovarajućem retku1. Vrijednosti koje su ovdje umetnute su "BigData" i "HBaseTutorials".

Čitanje podataka iz tablice HBase: 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"

Gornja snimka zaslona prikazuje podatke koji se čitaju iz HBase tablice 'guru99'

  1. U ovome ćemo dohvatiti vrijednosti koje su pohranjene u obiteljima stupaca, tj. "Obrazovanje" i "projekti"
  2. Korištenjem naredbe "get" dohvatit ćemo pohranjene vrijednosti u tablici HBase
  3. Skeniranje rezultata pomoću naredbe "scan". Vrijednosti koje su pohranjene u retku1 prikazat će se na konzoli.

Jednom kada je pisanje koda završeno, morate pokrenuti Java aplikaciju poput ove

  • Desni klik na HBaseLoading.java -> Pokreni kao -> Java aplikacija
  • Nakon pokretanja "HBaseLoading .java" vrijednosti koje će se umetnuti u "guru99" u svaki stupac u HBaseu, a u istom programu može dohvatiti i vrijednosti.

Evo kompletnog koda

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

Sažetak:

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