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

Skriv data till HBase Table: Shell

Put-kommandot används för att lagra data i en tabell

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

Detta kommando används för följande saker

  • Det kommer att placera ett cell "värde" vid en definierad eller specificerad tabell eller rad eller kolumn.
  • Det kommer valfritt att koordinera tidsstämpeln.

Exempelvis:

  • Här placerar vi värden i tabellen "guru99" under rad r1 och kolumn c1
    hbase> put 'guru99', 'r1', 'c1', 'value', 10
  • Vi har placerat tre värden, 10,15 och 30 i tabellen "guru99" som visas i skärmdumpen nedan

Skriv data till HBase Table: Shell

  • Anta att om tabellen "Guru99" har någon tabellreferens som säg g. Vi kan också köra kommandot på tabellreferens också som
    hbase> g.put 'guru99', 'r1', 'c1', 'value', 10
  • Utdata kommer att vara som visas i skärmdumpen ovan efter att ha placerat värden i "guru99".

Läs data från HBase Table: Shell

I det här avsnittet kommer vi att kontrollera följande

  • Värden som infogas i HBase-tabellen "guru99"
  • Kolumnnamn med värden som finns i HBase Table guru99

Läs data från HBase Table: Shell

Från ovanstående skärmdump kan vi sluta oss

  • Om vi ​​kör kommandot "scan" i HBase-skalet kommer det att visa de infogade värdena i "guru99" enligt följande
  • I HBase-skalet kommer det att visa värden som infogats av vår kod med kolumn- och radnamn
  • Här kan vi se kolumnnamnet som infogas är "utbildning" och "projekt"
  • Värdena som infogas är "BigData” och ”HBase Tutorials” i nämnda kolumner

Du kan också använda kommandot Get för att läsa data från en tabell

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

Här inkluderar TIMERANGE, TIMESTAMP, VERSIONS och FILTER.

Genom att använda detta kommando får du en rad eller cellinnehåll som finns i tabellen. Utöver det kan du också lägga till ytterligare parametrar till den som TIMESTAMP, TIMERANGE,VERSIONS, FILTER, etc. för att få en viss rad eller cellinnehåll.

Läs data från HBase Table: Shell

Exempel:-

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

För tabellen “guru99′ visas rad r1 och kolumn c1 värden med detta kommando som visas i skärmdumpen ovan

hbase> get 'guru99', 'r1'

För tabellen "guru99" kommer värden på rad r1 att visas med detta kommando

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

För tabell "guru99" kommer rad 1-värden i tidsintervallet ts1 och ts2 att visas med detta kommando

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

För tabell "guru99" kommer rad r1 och kolumnfamiljers c1, c2, c3 värden att visas med detta kommando

Skriv data till HBase-tabell: JAVA API

I det här steget kommer vi att skriva data i HBase-tabellen "guru99"

Först måste vi skriva kod för att infoga och hämta värden från HBase genom att använda-HBaseLoading.java-programmet.

För att skapa och infoga värden i en tabell på kolumnnivå måste du koda enligt nedan.

Skriv data till HBase-tabell: JAVA API

Från ovanstående skärmdump

  1. När vi skapar HBase-konfiguration kommer den att peka på vilka konfigurationer vi än ställer in i filerna base-site.xml och hbase-default.xml under HBase installationer
  2. Skapande av tabellen "guru99" med hjälp av HTable-metoden
  3. Lägger till rad1 i tabellen "guru99"
  4. Ange kolumnnamn "utbildning" och "projekt" och infoga värden i kolumnnamn i respektive rad1. Värdena som infogas här är "BigData" och "HBaseTutorials".

Läs data från HBase Table: Java API

Oavsett vilka värden vi placerade i HBase-tabellerna i avsnittet ovan, här ska vi hämta och visa dessa värden.

För att hämta resultat lagrade i "guru99"

Läs data från HBase Table: Java API

Ovanstående skärmdump visar att data läses från HBase-tabellen 'guru99'

  1. I detta kommer vi att hämta de värden som finns lagrade i kolumnfamiljer, dvs. "utbildning" och "projekt"
  2. Med hjälp av "get"-kommandot kommer vi att hämta lagrade värden i HBase-tabellen
  3. Skanna resultat med "scan" kommandot. Värdena som är lagrade i rad 1 kommer att visas på konsolen.

När du har skrivit kod måste du köra Java applikation som denna

  • Högerklicka på HBaseLoading.java -> Spring som -> Java Ansökan
  • Efter att ha kört "HBaseLoading .java" kommer värdena att infogas i "guru99" i varje kolumn i HBase och i samma program kan den också hämta värden.

Här är den fullständiga 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();							
       }							
   }							
}

Sammanfattning

Som vi diskuterade i den här handledningen kan du använda kommandot put för att infoga data i en tabell. Du kan använda kommandot scan, get för att läsa data från en tabell