Sett inn & Hent data i HBase: get (), put (), scan () Eksempler

Innholdsfortegnelse:

Anonim

I denne opplæringen lærer du:

  • Skriv data til HBase-tabell: Shell
  • Les data fra HBase Table: Shell
  • Skriv data til HBase-tabell: JAVA API
  • Les data fra HBase Table: JAVA API

Skriv data til HBase-tabell: Shell

Put-kommandoen brukes til å lagre data i en tabell

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

Denne kommandoen brukes til følgende ting

  • Det vil sette en celleverdi i en definert eller spesifisert tabell eller rad eller kolonne.
  • Det vil eventuelt koordinere tidsstempel.

Eksempel:

  • Her plasserer vi verdier i tabellen "guru99" under rad r1 og kolonne c1
    hbase> put 'guru99', 'r1', 'c1', 'value', 10
  • Vi har plassert tre verdier, 10,15 og 30 i tabellen "guru99" som vist på skjermbildet nedenfor

  • Anta at hvis tabellen "Guru99" har en tabellreferanse som si g. Vi kan også kjøre kommandoen på tabellreferanse også som

    hbase> g.put 'guru99', 'r1', 'c1', 'value', 10
  • Utgangen vil være som vist på skjermbildet ovenfor etter å ha plassert verdier i "guru99".

Les data fra HBase Table: Shell

I denne delen vil vi sjekke følgende

  • Verdier som settes inn i HBase-tabellen "guru99"
  • Kolonnenavn med verdier som er tilstede i HBase Table guru99

Fra skjermbildet ovenfor kan vi utlede

  • Hvis vi kjører "skann" -kommandoen i HBase-skall, vil den vise de innlagte verdiene i "guru99" som følger
  • I HBase-skall vil det vise verdier satt inn av koden vår med kolonne- og radnavn
  • Her kan vi se at kolonnenavnet som er satt inn er "utdanning" og "prosjekter"
  • Verdiene som er satt inn er "BigData" og "HBase Tutorials" i nevnte kolonner

Du kan også bruke Get-kommandoen til å lese data fra en tabell

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

Her inkluderer TIMERANGE, TIMESTAMP, VERSIONS og FILTERS.

Ved å bruke denne kommandoen får du en rad eller et celleinnhold i tabellen. I tillegg til det kan du også legge til flere parametere som TIMESTAMP, TIMERANGE, VERSJONER, FILTER osv. For å få en bestemt rad eller celleinnhold.

Eksempler: -

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

For tabell "vises guru99 'rad r1 og kolonne c1-verdier ved hjelp av denne kommandoen som vist i skjermbildet ovenfor

hbase> get 'guru99', 'r1'

For tabellen "guru99" vises rad r1-verdier ved hjelp av denne kommandoen

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

For tabell "guru99" vises rad 1-verdier i tidsområdet ts1 og ts2 ved hjelp av denne kommandoen

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

For tabell "guru99" rad r1 og kolonnefamilier c1, c2, c3 verdier vises med denne kommandoen

Skriv data til HBase-tabell: JAVA API

I dette trinnet skal vi skrive data i HBase-tabellen "guru99"

Først må vi skrive kode for å sette inn og hente verdier fra HBase ved hjelp av programmet HBaseLoading.java.

For å opprette og sette inn verdier i en tabell på kolonnivå, må du kode som nedenfor .

Fra skjermbildet over

  1. Når vi oppretter HBase-konfigurasjon, vil den peke på uansett hvilke konfigurasjoner vi setter i base-site.xml- og hbase-default.xml-filer under HBase-installasjoner
  2. Oppretting av tabellen "guru99" ved hjelp av HTable-metoden
  3. Legger til rad 1 i tabellen "guru99"
  4. Spesifisere kolonnenavn "utdanning" og "prosjekter" og sette inn verdier i kolonnenavn i den respektive rad1. Verdiene som er satt inn her er "BigData" og "HBaseTutorials".

Les data fra HBase Table: Java API

Uansett hvilke verdier vi plasserte i HBase-tabeller i avsnittet ovenfor, her skal vi hente og vise disse verdiene.

For å hente resultater som er lagret i "guru99"

Skjermbildet ovenfor viser at data blir lest fra HBase-tabellen 'guru99'

  1. I dette skal vi hente verdiene som er lagret i kolonnefamilier, dvs. "utdanning" og "prosjekter"
  2. Ved å bruke "get" -kommandoen skal vi hente lagrede verdier i HBase-tabellen
  3. Skanneresultater ved hjelp av "scan" -kommandoen. Verdiene som er lagret i rad 1 vil vises på konsollen.

Når du har skrevet kode, må du kjøre Java-applikasjoner som dette

  • Høyreklikk på HBaseLoading.java -> Kjør som -> Java-applikasjon
  • Etter å ha kjørt "HBaseLoading .java" vil verdiene sette inn i "guru99" i hver kolonne i HBase, og i samme program kan den også hente verdier.

Her er den fullstendige koden

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

Sammendrag:

Som vi diskuterte i denne opplæringen, kan du bruke put-kommandoen til å sette inn data i en tabell. Du kan bruke skanningen, få kommandoen til å lese data fra en tabell