& beszúrása Adatok lekérése a HBase-ben: get (), put (), scan () Példák

Tartalomjegyzék:

Anonim

Ebben az oktatóanyagban megtudhatja:

  • Adatok írása a HBase táblázatba: Shell
  • Adatok olvasása a HBase táblázatból: Shell
  • Adatok írása a HBase táblázatba: JAVA API
  • Adatok olvasása a HBase táblázatból: JAVA API

Adatok írása a HBase táblázatba: Shell

A put paranccsal adatok tárolhatók egy táblába

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

Ezt a parancsot a következő dolgokra használják

  • Cella 'értékét' egy meghatározott vagy megadott táblázathoz, sorhoz vagy oszlophoz fogja tenni.
  • Opcionálisan koordinálja az időbélyeget.

Példa:

  • Itt az értékeket az r1 sor és a c1 oszlop alatt elhelyezzük a "guru99" táblába
    hbase> put 'guru99', 'r1', 'c1', 'value', 10
  • Három értéket, 10,15 és 30 értéket helyeztünk el a "guru99" táblázatba, az alábbi képernyőkép szerint

  • Tegyük fel, hogy ha a "Guru99" tábla rendelkezik valamilyen táblázati hivatkozással, például mondjuk g. A parancsot tábla referencián is futtathatjuk, mint például

    hbase> g.put 'guru99', 'r1', 'c1', 'value', 10
  • A kimenet a fenti képernyőképen látható lesz, miután az értékeket a "guru99" -be helyezte.

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

Ebben a részben a következőket ellenőrizzük

  • A "guru99" HBase táblába beillesztett értékek
  • Oszlopnevek a HBase tábla guru99 értékeivel

A fenti képernyőkép alapján arra következtethetünk

  • Ha a "scan" parancsot a HBase shellben futtatjuk, akkor a "guru99" -ben beillesztett értékeket a következőképpen jeleníti meg
  • A HBase shellben a kód által beillesztett értékeket jeleníti meg oszlopok és sorok nevével
  • Itt láthatjuk a beillesztett oszlop nevét: "oktatás" és "projektek"
  • A beillesztett értékek: "BigData" és "HBase Tutorials" az említett oszlopokba

Használhatja a Get parancsot is, ha táblázatból szeretne adatokat olvasni

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

Itt a közé tartozik az IDŐZÍTÉS, IDŐBETŰ, a VERZIÓK és a SZŰRŐK.

Ennek a parancsnak a használatával kap egy sor vagy cella tartalmat a táblázatban. Ezen felül további paramétereket is hozzáadhat hozzá, például: IDŐBETÉT, IDŐZÍTÉS, VERZIÓK, SZŰRŐK stb., Hogy egy adott sort vagy cellatartalmat kapjon.

Példák: -

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

A "guru99" tábla esetén az r1 és a c1 oszlop értékei ennek a parancsnak a használatával jelennek meg, a fenti képernyőkép szerint

hbase> get 'guru99', 'r1'

A "guru99" táblázatnál 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 a ts2 időtartomány értékei jelennek meg ezzel a paranccsal

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

A "guru99" tábla r1 sora és oszlopcsaládok c1, c2, c3 értékei ezzel a paranccsal jelennek meg.

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

Ebben a lépésben adatokat fogunk írni a "guru99" HBase táblába

Először is kódot kell írnunk a beszúráshoz és az értékek beolvasásához a HBase-ból a HBaseLoading.java program használatával.

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

A fenti képernyőről

  1. Amikor létrehozunk HBase konfigurációt, az a konfigurációkra mutat, amelyeket a base-site.xml és a hbase-default.xml fájlokban állítunk be a HBase telepítések során.
  2. A "guru99" tábla létrehozása HTable módszerrel
  3. Az 1. sor hozzáadása a "guru99" táblához
  4. Az "oktatás" és a "projektek" oszlopnevek megadása és az értékek beszúrása az adott sor oszlopneveibe1. Az itt beillesztett értékek a "BigData" és a "HBaseTutorials".

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

Bármi legyen is az érték, amelyet a fenti szakaszban a HBase táblákba helyeztünk, itt fogjuk beolvasni és megjeleníteni ezeket az értékeket.

A "guru99" tárolt eredmények lekéréséhez

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

  1. Ebben az oszlopcsaládokban tárolt értékeket fogjuk lekérni, pl. "Oktatás" és "projektek"
  2. A "get" paranccsal lekérjük a tárolt értékeket a HBase táblába
  3. Az eredmények beolvasása a "scan" paranccsal. Az 1. sorban tárolt értékek megjelennek a konzolon.

Miután elkészült a kód, futtatnia kell a java alkalmazást

  • Kattintson a jobb gombbal a HBaseLoading.java -> Run As -> Java Application elemre
  • A "HBaseLoading .java" futtatása után a HBase minden oszlopában a "guru99" -be beillesztendő értékek, ugyanabban a programban, értékeket is lekérhetnek.

Itt van 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 followingtable.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és:

Amint ebben az oktatóanyagban tárgyaltuk, a put paranccsal adatait beillesztheti egy táblába. Használhatja a scan, get parancsot az adatok táblázatból történő olvasásához