HBase Query Eksempel: put(), get(), scan() Kommando i HBase

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 celle 'verdi' ved en definert eller spesifisert tabell eller rad eller kolonne.
  • Den vil valgfritt koordinere tidsstempling.

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

Skriv data til HBase-tabell: Shell

  • 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 i skjermbildet ovenfor etter รฅ ha plassert verdier i "guru99".

Les data fra HBase Table: Shell

I denne delen vil vi sjekke fรธlgende

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

Les data fra HBase Table: Shell

Fra skjermbildet ovenfor kan vi konkludere

  • Hvis vi kjรธrer "skann"-kommando i HBase-skall, vil den vise de innsatte verdiene i "guru99" som fรธlger
  • I HBase-skallet vil den vise verdier satt inn av koden vรฅr med kolonne- og radnavn
  • Her kan vi se kolonnenavnet som er satt inn er "utdanning" og "prosjekter"
  • Verdiene som er satt inn er "Stor Dataโ€ 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, TIME STAMP, VERSIONS og FILTRE.

Ved รฅ bruke denne kommandoen vil du fรฅ en rad eller celleinnhold til stede i tabellen. I tillegg til det kan du ogsรฅ legge til flere parametere som TIMESTAMP, TIMERANGE, VERSIONS, FILTERS, etc. for รฅ fรฅ en bestemt rad eller celleinnhold.

Les data fra HBase Table: Shell

Eksempler:-

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

For tabellen โ€œguru99โ€ฒ vil rad r1 og kolonne c1 verdier vises ved รฅ bruke denne kommandoen som vist i skjermbildet ovenfor

hbase> get 'guru99', 'r1'

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

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

For tabell "guru99" vil rad 1-verdier i tidsrommet ts1 og ts2 vises ved hjelp av denne kommandoen

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

For tabell "guru99" vil rad r1 og kolonnefamiliers c1, c2, c3 verdier vises ved รฅ bruke denne kommandoen

Skriv data til HBase-tabell: JAVA API

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

Fรธrst mรฅ vi skrive kode for รฅ sette inn og hente verdier fra HBase ved รฅ bruke-HBaseLoading.java-programmet.

For รฅ lage og sette inn verdier i en tabell pรฅ kolonnenivรฅ, mรฅ du kode som nedenfor.

Skriv data til HBase-tabell: JAVA API

Fra skjermbildet ovenfor

  1. Nรฅr vi oppretter HBase-konfigurasjon, vil den peke pรฅ konfigurasjonene vi angir 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 rad1 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 delen ovenfor, skal vi hente og vise disse verdiene her.

For รฅ hente resultater lagret i "guru99"

Les data fra HBase Table: Java API

Skjermbildet ovenfor viser at dataene 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. Skanner resultater ved hjelp av "skann"-kommandoen. Verdiene som er lagret i rad1 vil den vise pรฅ konsollen.

Nรฅr du har skrevet kode, mรฅ du kjรธre Java applikasjon som dette

  • Hรธyreklikk pรฅ HBaseLoading.java -> Lรธp sรฅ -> Java Sรธknad
  • Etter รฅ ha kjรธrt "HBaseLoading .java" vil verdiene settes inn i "guru99" i hver kolonne i HBase og i samme program kan den ogsรฅ hente verdier.

Her er den komplette 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 following 							

table.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 scan, get-kommandoen for รฅ lese data fra en tabell

Oppsummer dette innlegget med: