Vložiť & Načítanie údajov v HBase: príklady get (), put (), scan ()

Obsah:

Anonim

V tomto návode sa dozviete:

  • Zápis údajov do tabuľky HBase: Shell
  • Čítanie údajov z tabuľky HBase: Shell
  • Zápis údajov do tabuľky HBase: JAVA API
  • Čítanie údajov z tabuľky HBase: JAVA API

Zápis údajov do tabuľky HBase: Shell

Príkaz put sa používa na ukladanie údajov do tabuľky

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

Tento príkaz sa používa na nasledujúce veci

  • Vloží hodnotu bunky do definovanej alebo špecifikovanej tabuľky alebo riadku alebo stĺpca.
  • Voliteľne bude koordinovať časovú pečiatku.

Príklad:

  • Tu umiestňujeme hodnoty do tabuľky „guru99“ pod riadok r1 a stĺpec c1
    hbase> put 'guru99', 'r1', 'c1', 'value', 10
  • Do tabuľky „guru99“ sme umiestnili tri hodnoty, 10,15 a 30, ako je znázornené na obrázku nižšie

  • Predpokladajme, že ak má tabuľka „Guru99“ nejaký tabuľkový odkaz, napríklad g. Môžeme tiež spustiť príkaz na odkaz na tabuľku

    hbase> g.put 'guru99', 'r1', 'c1', 'value', 10
  • Výstup bude po umiestnení hodnôt do „guru99“ taký, ako je znázornené na snímke vyššie.

Čítanie údajov z tabuľky HBase: Shell

V tejto časti skontrolujeme nasledujúce

  • Hodnoty, ktoré sa vložia do tabuľky HBase "guru99"
  • Názvy stĺpcov s hodnotami prítomnými v HBase Table guru99

Z vyššie uvedeného screenshotu môžeme odvodiť

  • Ak spustíme príkaz "scan" v prostredí HBase, zobrazí sa vložené hodnoty v "guru99" nasledovne
  • V prostredí HBase shell bude zobrazovať hodnoty vložené našim kódom s názvami stĺpcov a riadkov
  • Tu vidíme vložený názov stĺpca: „vzdelávanie“ a „projekty“
  • Vkladané hodnoty sú „BigData“ a „HBase Tutorials“ do uvedených stĺpcov

Príkazom Načítať môžete tiež načítať údaje z tabuľky

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

Sem <Ďalšie parametre> zahŕňajú TIMERANGE, TIMESTAMP, VERSION a FILTERS.

Pomocou tohto príkazu získate obsah riadku alebo bunky v tabuľke. Okrem toho doň môžete pridať ďalšie parametre, napríklad TIMESTAMP, TIMERANGE, VERSION, FILTERS atď., Aby ste získali konkrétny obsah riadku alebo bunky.

Príklady: -

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

Pre tabuľku "guru99" sa hodnoty riadku r1 a stĺpca c1 zobrazia pomocou tohto príkazu, ako je to znázornené na obrázku vyššie

hbase> get 'guru99', 'r1'

Pre tabuľku "guru99" sa pomocou tohto príkazu zobrazia hodnoty r1

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

Pre tabuľku "guru99" sa pomocou tohto príkazu zobrazia hodnoty riadku 1 v časovom rozmedzí ts1 a ts2

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

Pre tabuľku "guru99" sa pomocou tohto príkazu zobrazia hodnoty riadkov r1 a skupín stĺpcov 'c1, c2, c3

Zápis údajov do tabuľky HBase: JAVA API

V tomto kroku ideme zapisovať dáta do tabuľky HBase "guru99"

Najprv musíme napísať kód na vloženie a načítanie hodnôt z HBase pomocou programu- HBaseLoading.java.

Ak chcete vytvárať a vkladať hodnoty do tabuľky na úrovni stĺpca, musíte kódovať, ako je uvedené nižšie .

Z obrazovky vyššie

  1. Keď vytvoríme konfiguráciu HBase, bude ukazovať na ľubovoľné konfigurácie, ktoré sme nastavili v súboroch base-site.xml a hbase-default.xml počas inštalácií HBase
  2. Vytvorenie tabuľky "guru99" pomocou metódy HTable
  3. Pridanie riadku 1 do tabuľky „guru99“
  4. Zadanie názvov stĺpcov „vzdelávanie“ a „projekty“ a vloženie hodnôt do názvov stĺpcov v príslušnom riadku1. Tu vložené hodnoty sú „BigData“ a „HBaseTutorials“.

Čítanie údajov z tabuľky HBase: Rozhranie Java API

Bez ohľadu na hodnoty, ktoré sme umiestnili do tabuliek HBase v časti vyššie, tu tieto hodnoty načítame a zobrazíme.

Na načítanie výsledkov uložených v priečinku „guru99“

Vyššie uvedená snímka obrazovky ukazuje, že údaje sa čítajú z tabuľky HBase „guru99“

  1. V tomto ideme načítať hodnoty, ktoré sú uložené v rodinách stĺpcov, tj. „Vzdelávanie“ a „projekty“.
  2. Pomocou príkazu "get" načítame uložené hodnoty do tabuľky HBase
  3. Výsledky skenovania pomocou príkazu „skenovať“. Hodnoty, ktoré sú uložené v riadku 1, ktorý sa zobrazí na konzole.

Po dokončení písania kódu musíte spustiť aplikáciu Java takto

  • Pravým tlačidlom myši kliknite na HBaseLoading.java -> Spustiť ako -> Java aplikácia
  • Po spustení „HBaseLoading .java“ budú hodnoty vkladané do „guru99“ v každom stĺpci v HBase av rovnakom programe tiež možné načítať hodnoty.

Tu je celý kód

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

Zhrnutie:

Ako sme si už vysvetlili v tomto výučbe, pomocou príkazu put môžete vložiť údaje do tabuľky. Na načítanie údajov z tabuľky môžete použiť príkaz scan, get