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

Skriv data til HBase-tabel: Shell

Put-kommandoen bruges til at gemme data i en tabel

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

Denne kommando bruges til fรธlgende ting

  • Det vil sรฆtte en celle 'vรฆrdi' ved en defineret eller specificeret tabel eller rรฆkke eller kolonne.
  • Det vil valgfrit koordinere tidsstempling.

Eksempel:

  • Her placerer vi vรฆrdier i tabel "guru99" under rรฆkke r1 og kolonne c1
    hbase> put 'guru99', 'r1', 'c1', 'value', 10
  • Vi har placeret tre vรฆrdier, 10,15 og 30 i tabel "guru99" som vist pรฅ skรฆrmbilledet nedenfor

Skriv data til HBase-tabel: Shell

  • Antag, at hvis tabellen "Guru99" har en tabelreference som f.eks. Vi kan ogsรฅ kรธre kommandoen pรฅ tabelreference ogsรฅ ligesom
    hbase> g.put 'guru99', 'r1', 'c1', 'value', 10
  • Outputtet vil vรฆre som vist i ovenstรฅende skรฆrmbillede efter at have placeret vรฆrdier i "guru99".

Lรฆs data fra HBase-tabel: Shell

I dette afsnit vil vi kontrollere fรธlgende

  • Vรฆrdier, der er indsat i HBase-tabellen "guru99"
  • Kolonnenavne med vรฆrdier til stede i HBase Table guru99

Lรฆs data fra HBase-tabel: Shell

Fra ovenstรฅende skรฆrmbillede kan vi udlede

  • Hvis vi kรธrer "scan" kommando i HBase shell, vil den vise de indsatte vรฆrdier i "guru99" som fรธlger
  • I HBase shell vil den vise vรฆrdier indsat af vores kode med kolonne- og rรฆkkenavne
  • Her kan vi se kolonnenavnet indsat er "uddannelse" og "projekter"
  • De indsatte vรฆrdier er "BigDataโ€ og โ€œHBase Tutorialsโ€ i nรฆvnte kolonner

Du kan ogsรฅ bruge kommandoen Hent til at lรฆse data fra en tabel

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

Her omfatter TIMERANGE, TIMESTAMP, VERSIONS og FILTRE.

Ved at bruge denne kommando fรฅr du en rรฆkke eller celleindhold til stede i tabellen. Ud over det kan du ogsรฅ tilfรธje yderligere parametre til det som TIMESTAMP, TIMERANGE, VERSIONS, FILTERS osv. for at fรฅ en bestemt rรฆkke eller celleindhold.

Lรฆs data fra HBase-tabel: Shell

Eksempler:-

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

For tabel โ€œguru99โ€ฒ vises rรฆkke r1 og kolonne c1 vรฆrdier ved hjรฆlp af denne kommando som vist i ovenstรฅende skรฆrmbillede

hbase> get 'guru99', 'r1'

For tabel "guru99" vil rรฆkke r1 vรฆrdier blive vist ved hjรฆlp af denne kommando

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

For tabel "guru99" vil rรฆkke 1-vรฆrdier i tidsintervallet ts1 og ts2 blive vist ved hjรฆlp af denne kommando

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

For tabel "guru99" vil rรฆkke r1 og kolonnefamiliers c1, c2, c3 vรฆrdier blive vist ved hjรฆlp af denne kommando

Skriv data til HBase-tabel: JAVA API

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

Fรธrst skal vi skrive kode for at indsรฆtte og hente vรฆrdier fra HBase ved at bruge-HBaseLoading.java program.

For at oprette og indsรฆtte vรฆrdier i en tabel pรฅ kolonneniveau skal du kode som nedenfor.

Skriv data til HBase-tabel: JAVA API

Fra ovenstรฅende skรฆrmbillede

  1. Nรฅr vi opretter HBase-konfiguration, vil den pege pรฅ uanset de konfigurationer, vi indstiller i base-site.xml- og hbase-default.xml-filer under HBase installationer
  2. Oprettelse af tabel "guru99" ved hjรฆlp af HTable-metoden
  3. Tilfรธjelse af rรฆkke 1 til tabellen "guru99"
  4. Angivelse af kolonnenavne "uddannelse" og "projekter" og indsรฆttelse af vรฆrdier i kolonnenavne i den respektive rรฆkke1. Vรฆrdierne indsat her er "BigData" og "HBaseTutorials".

Lรฆs data fra HBase-tabel: Java API

Uanset de vรฆrdier, vi placerede i HBase-tabeller i ovenstรฅende afsnit, skal vi her hente og vise disse vรฆrdier.

For at hente resultater gemt i "guru99"

Lรฆs data fra HBase-tabel: Java API

Ovenstรฅende skรฆrmbillede viser, at dataene lรฆses fra HBase-tabellen 'guru99'

  1. I dette skal vi hente de vรฆrdier, der er gemt i kolonnefamilier, dvs. "uddannelse" og "projekter"
  2. Ved at bruge "get"-kommandoen henter vi lagrede vรฆrdier i HBase-tabellen
  3. Scanningsresultater ved hjรฆlp af "scan"-kommandoen. Vรฆrdierne, der er gemt i rรฆkke 1, vises pรฅ konsollen.

Nรฅr du har skrevet kode, skal du kรธre Java applikation som denne

  • Hรธjreklik pรฅ HBaseLoading.java -> Lรธb som -> Java Anvendelse
  • Efter at have kรธrt "HBaseLoading .java" vil vรฆrdierne indsรฆtte i "guru99" i hver kolonne i HBase og i det samme program kan den ogsรฅ hente vรฆrdier.

Her er den komplette kode

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

Resumรฉ

Som vi diskuterede i denne รธvelse, kan du bruge kommandoen put til at indsรฆtte data i en tabel. Du kan bruge kommandoen scan, get til at lรฆse data fra en tabel

Opsummer dette indlรฆg med: