Vstavi & Pridobi podatke v HBase: Primeri get (), put (), scan ()

Kazalo:

Anonim

V tej vadnici boste izvedeli:

  • Zapiši podatke v tabelo HBase: lupina
  • Preberite podatke iz tabele HBase: Shell
  • Zapiši podatke v tabelo HBase: API JAVA
  • Preberite podatke iz tabele HBase: API JAVA

Zapiši podatke v tabelo HBase: lupina

Ukaz put se uporablja za shranjevanje podatkov v tabelo

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

Ta ukaz se uporablja za naslednje stvari

  • V določeno ali določeno tabelo ali vrstico ali stolpec bo postavil vrednost celice.
  • Po želji bo koordiniral časovni žig.

Primer:

  • Tu vstavljamo vrednosti v tabelo "guru99" pod vrstico r1 in stolpec c1
    hbase> put 'guru99', 'r1', 'c1', 'value', 10
  • V tabelo "guru99" smo postavili tri vrednosti, 10,15 in 30, kot je prikazano na spodnjem posnetku zaslona

  • Recimo, če ima tabela "Guru99" referenco tabele, kot je recimo g. Ukaz lahko zaženemo tudi na sklicu tabele

    hbase> g.put 'guru99', 'r1', 'c1', 'value', 10
  • Rezultat bo prikazan na zgornjem posnetku zaslona po vnosu vrednosti v "guru99".

Preberite podatke iz tabele HBase: Shell

V tem poglavju bomo preverili naslednje

  • Vrednosti, ki so vstavljene v tabelo HBase "guru99"
  • Imena stolpcev z vrednostmi, ki so prisotne v tabeli HBase tabele guru99

Iz zgornjega posnetka zaslona lahko sklepamo

  • Če zaženemo ukaz "scan" v lupini HBase, bo prikazal vstavljene vrednosti v "guru99", kot sledi
  • V lupini HBase bo prikazal vrednosti, ki jih vstavi naša koda, z imeni stolpcev in vrstic
  • Tu lahko vidimo vstavljeno ime stolpca "izobraževanje" in "projekti"
  • V omenjeni stolpci sta vstavljeni vrednosti "BigData" in "HBase Tutorials"

Za branje podatkov iz tabele lahko uporabite tudi ukaz Get

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

Sem spadajo TIMERANGE, TIMESTAMP, VERSIONS in FILTERS.

Z uporabo tega ukaza boste v tabeli dobili vsebino vrstice ali celice. Poleg tega mu lahko dodate tudi dodatne parametre, kot so TIMESTAMP, TIMERANGE, VERSIONS, FILTERS itd., Da dobite določeno vsebino vrstice ali celice.

Primeri: -

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

V tabeli "guru99 'se bodo vrednosti vrstic r1 in stolpcev c1 prikazale s tem ukazom, kot je prikazano na zgornjem posnetku zaslona

hbase> get 'guru99', 'r1'

V tabeli "guru99" bodo vrednosti r1 prikazane s tem ukazom

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

Za tabelo "guru99" bodo s tem ukazom prikazane vrednosti vrstice 1 v časovnem območju ts1 in ts2

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

V tabeli "guru99" se s tem ukazom prikažejo vrednosti c1, c2, c3 družin vrstic r1 in stolpcev.

Zapiši podatke v tabelo HBase: API JAVA

V tem koraku bomo podatke zapisali v tabelo HBase "guru99"

Najprej moramo napisati kodo za vstavljanje in pridobivanje vrednosti iz HBase s pomočjo programa HBaseLoading.java.

Za ustvarjanje in vstavljanje vrednosti v tabelo na ravni stolpca morate kodirati kot spodaj .

Z zgornjega posnetka zaslona

  1. Ko ustvarimo konfiguracijo HBase, bo pokazala na konfiguracije, ki smo jih nastavili v datotekah base-site.xml in hbase-default.xml med namestitvijo HBase
  2. Ustvarjanje tabele "guru99" z uporabo metode HTable
  3. Dodajanje vrstice1 v tabelo "guru99"
  4. Navedite imena stolpcev "izobraževanje" in "projekti" ter vstavite vrednosti v imena stolpcev v ustrezni vrstici1. Tu so vstavljene vrednosti "BigData" in "HBaseTutorials".

Preberite podatke iz tabele HBase: Java API

Ne glede na vrednosti, ki smo jih postavili v tabele HBase v zgornjem razdelku, bomo te vrednosti prevzeli in prikazali.

Za pridobivanje rezultatov, shranjenih v "guru99"

Zgornji posnetek zaslona prikazuje podatke, ki se berejo iz tabele HBase 'guru99'

  1. V tem bomo dobili vrednosti, ki so shranjene v družinah stolpcev, tj. "Izobraževanje" in "projekti"
  2. Z ukazom "get" pridobimo shranjene vrednosti v tabeli HBase
  3. Optično branje rezultatov z ukazom "scan". Vrednosti, ki so shranjene v vrstici1, bodo prikazane na konzoli.

Ko je pisanje kode končano, morate zagnati tako aplikacijo java

  • Z desno miškino tipko kliknite HBaseLoading.java -> Zaženi kot -> Java aplikacija
  • Po zagonu "HBaseLoading .java" vrednosti, ki se bodo vstavile v "guru99" v vsakem stolpcu v HBase in v istem programu lahko pridobi tudi vrednosti.

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

Povzetek:

Kot smo razpravljali v tej vadnici, lahko z ukazom put vstavite podatke v tabelo. Za branje podatkov iz tabele lahko uporabite ukaz scan, get