Įterpti & Gauti duomenis „HBase“: gauti (), įdėti (), nuskaityti () pavyzdžiai

Turinys:

Anonim

Šioje pamokoje sužinosite:

  • Duomenų rašymas į „HBase“ lentelę: „Shell“
  • Skaityti duomenis iš „HBase“ lentelės: „Shell“
  • Duomenų rašymas į HBase lentelę: JAVA API
  • Skaityti duomenis iš „HBase“ lentelės: JAVA API

Duomenų rašymas į „HBase“ lentelę: „Shell“

„Put“ komanda naudojama duomenims laikyti lentelėje

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

Ši komanda naudojama šiems dalykams

  • Jis nustatys arba nurodys lentelę, eilutę ar stulpelį langelio „vertė“.
  • Jis pasirinktinai koordinuos laiko žymą.

Pavyzdys:

  • Čia pateikiame reikšmes į lentelę „guru99“ po r1 eilute ir stulpeliu c1
    hbase> put 'guru99', 'r1', 'c1', 'value', 10
  • Mes lentelėje „guru99“ įdėjome tris vertes, 10,15 ir 30, kaip parodyta žemiau esančiame paveikslėlyje

  • Tarkime, jei lentelėje „Guru99“ yra lentelės nuoroda, pavyzdžiui, sakykime g. Mes taip pat galime paleisti komandą lentelės nuorodoje taip pat kaip

    hbase> g.put 'guru99', 'r1', 'c1', 'value', 10
  • Įvedus reikšmes į „guru99“, išvestis bus tokia, kaip parodyta aukščiau pateiktame ekrano kopijoje.

Skaityti duomenis iš „HBase“ lentelės: „Shell“

Šiame skyriuje mes patikrinsime šiuos dalykus

  • Vertės, įterptos į HBase lentelę „guru99“
  • Stulpelių pavadinimai su reikšmėmis, esančiomis HBase lentelės guru99

Iš pirmiau pateiktos ekrano kopijos galime daryti išvadą

  • Jei vykdysime „scan“ komandą HBase apvalkale, „guru99“ įterptos vertės bus rodomos taip
  • „HBase“ apvalkale bus rodomos mūsų kodo įterptos vertės su stulpelių ir eilučių pavadinimais
  • Čia matome, kad stulpelio pavadinimas yra „švietimas“ ir „projektai“
  • Į minėtus stulpelius įterptos vertės yra „BigData“ ir „HBase Tutorials“

Taip pat galite naudoti komandą Gauti, kad nuskaitytumėte duomenis iš lentelės

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

Čia yra TIMERANGE, TIMESTAMP, VERSIONS ir FILTERS.

Naudodami šią komandą gausite lentelės eilutės ar langelio turinį. Be to, galite pridėti papildomų parametrų, tokių kaip TIMESTAMP, TIMERANGE, VERSIONS, FILTERS ir kt., Norėdami gauti tam tikrą eilutės ar langelio turinį.

Pavyzdžiai: -

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

Lentelės „guru99“ eilutės r1 ir stulpelio c1 vertės bus rodomos naudojant šią komandą, kaip parodyta aukščiau pateiktame ekrano kopijoje

hbase> get 'guru99', 'r1'

Lentelėje "guru99" eilutė r1 reikšmės bus rodomos naudojant šią komandą

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

Lentelės "guru99" 1 eilutės vertės intervale ts1 ir ts2 bus rodomos naudojant šią komandą

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

Lentelės "guru99" eilutės r1 ir stulpelių šeimų c1, c2, c3 vertės bus rodomos naudojant šią komandą

Duomenų rašymas į HBase lentelę: JAVA API

Šiame žingsnyje ketiname įrašyti duomenis į HBase lentelę „guru99“

Pirma, mes turime parašyti kodą įterpti ir nuskaityti reikšmes iš „HBase“ naudodami „HBaseLoading.java“ programą.

Norėdami sukurti ir įterpti vertes į lentelę stulpelio lygiu, turite koduoti taip, kaip nurodyta toliau .

Iš aukščiau esančio ekrano

  1. Kai sukursime „HBase“ konfigūraciją, ji nurodys bet kokias konfigūracijas, kurias nustatome „base-site.xml“ ir „hbase-default.xml“ failuose diegiant HBase
  2. Lentelės „guru99“ sukūrimas naudojant „HTable“ metodą
  3. 1 eilutė pridedama prie lentelės „guru99“
  4. Nurodykite stulpelių pavadinimus „švietimas“ ir „projektai“ ir įterpkite vertes į stulpelių pavadinimus atitinkamoje eilutėje1. Čia įterptos vertės yra „BigData“ ir „HBaseTutorials“.

Skaityti duomenis iš „HBase“ lentelės: „Java“ API

Nepriklausomai nuo verčių, kurias įdėjome į „HBase“ lenteles aukščiau pateiktame skyriuje, čia mes norime gauti ir rodyti tas vertes.

Norėdami gauti rezultatus, saugomus „guru99“

Pirmiau pateiktoje ekrano kopijoje rodomi duomenys skaitomi iš HBase lentelės „guru99“

  1. Šiuo tikslu mes gausime vertes, kurios saugomos stulpelių šeimose, ty „švietimas“ ir „projektai“.
  2. Naudodami komandą „get“, mes gausime saugomas reikšmes HBase lentelėje
  3. Rezultatų nuskaitymas naudojant komandą „nuskaityti“. 1 eilutėje saugomos reikšmės bus rodomos konsolėje.

Kai parašysite kodą, turite paleisti tokią „Java“ programą

  • Dešiniuoju pelės mygtuku spustelėkite HBaseLoading.java -> Run As -> Java Application
  • Paleidus „HBaseLoading .java“, reikšmės, kurios bus įterptos į „guru99“ kiekviename HBase stulpelyje ir toje pačioje programoje, taip pat gali gauti reikšmes.

Čia yra visas kodas

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

Santrauka:

Kaip aptarėme šioje pamokoje, galite naudoti komandą put, jei norite įterpti duomenis į lentelę. Norėdami nuskaityti duomenis iš lentelės, galite naudoti nuskaitymą, gauti komandą