HBase lekérdezés Példa: put(), get(), scan() Parancs a HBase-ben

Írja be az adatokat a HBase táblába: Shell

A put parancs az adatok táblába történő tárolására szolgál

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

Ez a parancs a következő dolgokhoz használható

  • Ez egy cella "értékét" helyezi egy meghatározott vagy megadott táblázatba, sorba vagy oszlopba.
  • Opcionálisan koordinálja az időbélyeget.

Példa:

  • Itt értékeket helyezünk el a „guru99” táblában az r1 sor és a c1 oszlop alatt
    hbase> put 'guru99', 'r1', 'c1', 'value', 10
  • Három értéket, 10,15, 30 és 99-at helyeztünk el a „guruXNUMX” táblázatban, ahogy az alábbi képernyőképen látható.

Írja be az adatokat a HBase táblába: Shell

  • Tegyük fel, hogy a „Guru99” táblának van valamilyen táblázathivatkozása, például mondjuk g. A parancsot táblahivatkozáson is futtathatjuk
    hbase> g.put 'guru99', 'r1', 'c1', 'value', 10
  • A kimenet a fenti képernyőképen látható lesz, miután értékeket helyez el a „guru99”-be.

Adatok olvasása a HBase táblázatból: Shell

Ebben a részben a következőket fogjuk ellenőrizni

  • A „guru99” HBase táblába beszúrt értékek
  • Oszlopnevek a HBase Table guru99-ben található értékekkel

Adatok olvasása a HBase táblázatból: Shell

A fenti képernyőképből arra következtethetünk

  • Ha a „scan” parancsot futtatjuk a HBase shellben, akkor a „guru99”-be beszúrt értékeket a következőképpen jeleníti meg
  • A HBase shellben a kódunk által beszúrt értékeket jeleníti meg oszlop- és sornevekkel
  • Itt láthatjuk, hogy az oszlop neve „oktatás” és „projektek”
  • A beillesztett értékek a következők:BigData” és a „HBase oktatóanyagok” az említett oszlopokba

A Get paranccsal adatokat olvashat ki egy táblázatból

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

Itt tartalmazza az IDŐTARTOMÁNY, IDŐBÉLYEGZET, VERZIÓK és SZŰRŐK.

Ezzel a paranccsal egy sor vagy cella tartalma jelenik meg a táblázatban. Ezen kívül további paramétereket is hozzáadhat hozzá, például TIMESTAMP, TIMERANGE, VERSIONS, FILTERS stb., hogy egy adott sor vagy cella tartalmat kapjon.

Adatok olvasása a HBase táblázatból: Shell

Példák: -

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

A „guru99” táblázatban az r1 sor és a c1 oszlop értékei jelennek meg ezzel a paranccsal, ahogy a fenti képernyőképen látható.

hbase> get 'guru99', 'r1'

A „guru99” tábla sorában az r1 értékek jelennek meg ezzel a paranccsal

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

A „guru99” tábla 1. sorában a ts1 és ts2 időtartományban lévő értékek jelennek meg ezzel a paranccsal

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

A „guru99” tábla r1 sora és oszlopcsaládjai c1, c2, c3 értékei jelennek meg ezzel a paranccsal

Adatok írása a HBase táblába: JAVA API

Ebben a lépésben adatokat fogunk írni a HBase „guru99” táblájába.

Először kódot kell írnunk a beszúráshoz, és le kell kérnünk az értékeket a HBase-ből a -HBaseLoading.java program.

Az értékek táblázatba való oszlopszintű létrehozásához és beszúrásához az alábbiak szerint kell kódolnia.

Adatok írása a HBase táblába: JAVA API

A fenti képernyőképből

  1. A HBase konfiguráció létrehozásakor azokra a konfigurációkra fog mutatni, amelyeket a base-site.xml és a hbase-default.xml fájlokban beállítottunk. HBase telepítések
  2. „guru99” tábla létrehozása HTable módszerrel
  3. 1. sor hozzáadása a „guru99” táblázathoz
  4. Az „oktatás” és „projektek” oszlopnevek megadása és értékek beszúrása az oszlopnevekbe a megfelelő sorban1. Az itt beillesztett értékek a „BigData” és a „HBaseTutorials”.

Adatok olvasása a HBase táblából: Java API

Bármilyen értékeket is elhelyeztünk a HBase táblákban a fenti szakaszban, itt ezeket az értékeket fogjuk lekérni és megjeleníteni.

A „guru99”-ben tárolt eredmények lekéréséhez

Adatok olvasása a HBase táblából: Java API

A fenti képernyőkép azt mutatja, hogy az adatokat a HBase 'guru99' táblájából olvassák be

  1. Ebben az oszlopcsaládokban, azaz az „oktatásban” és a „projektekben” tárolt értékeket fogjuk lekérni.
  2. A „get” paranccsal a HBase táblában tárolt értékeket fogjuk lekérni
  3. Az eredmények szkennelése a „scan” paranccsal. Az 1. sorban tárolt értékek megjelennek a konzolon.

A kód írása után futnia kell Jáva ehhez hasonló alkalmazás

  • Kattintson jobb gombbal a HBaseLoading.java fájlra -> Futtatás másként -> Java Alkalmazás
  • A „HBaseLoading .java” futtatása után az értékek beszúródnak a „guru99”-be a HBase minden oszlopában, és ugyanabban a programban is le tudja kérni az értékeket.

Itt a teljes kód

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

Összegzésként

Amint azt ebben az oktatóanyagban tárgyaltuk, a put paranccsal adatokat illeszthet be egy táblázatba. A scan, get parancs segítségével adatokat olvashat ki egy táblázatból