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ó.
- 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
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.
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.
A fenti képernyőképből
- 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
- „guru99” tábla létrehozása HTable módszerrel
- 1. sor hozzáadása a „guru99” táblázathoz
- 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
A fenti képernyőkép azt mutatja, hogy az adatokat a HBase 'guru99' táblájából olvassák be
- Ebben az oszlopcsaládokban, azaz az „oktatásban” és a „projektekben” tárolt értékeket fogjuk lekérni.
- A „get” paranccsal a HBase táblában tárolt értékeket fogjuk lekérni
- 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