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