Příklad dotazu HBase: příkaz put(), get(), scan() v HBase
Zápis dat do tabulky HBase: Shell
Příkaz put se používá k ukládání dat do tabulky
Syntax: put <'tablename'>,<'rowname'>,<'columnvalue'>,<'value'>
Tento příkaz se používá pro následující věci
- Vloží buňku „hodnotu“ do definované nebo zadané tabulky nebo řádku nebo sloupce.
- Volitelně bude koordinovat časové razítko.
Příklad:
- Zde umístíme hodnoty do tabulky „guru99“ pod řádek r1 a sloupec c1
hbase> put 'guru99', 'r1', 'c1', 'value', 10
- Do tabulky „guru10,15“ jsme umístili tři hodnoty, 30, 99 a XNUMX, jak je znázorněno na obrázku níže
- Předpokládejme, že tabulka „Guru99“ má nějaký odkaz na tabulku jako řekněme g. Můžeme také spustit příkaz na odkaz na tabulku také jako
hbase> g.put 'guru99', 'r1', 'c1', 'value', 10
- Po umístění hodnot do „guru99“ bude výstup vypadat jako na výše uvedeném snímku obrazovky.
Čtení dat z tabulky HBase: Shell
V této části zkontrolujeme následující
- Hodnoty, které se vkládají do tabulky HBase „guru99“
- Názvy sloupců s hodnotami přítomnými v tabulce HBase guru99
Z výše uvedeného snímku obrazovky můžeme usuzovat
- Pokud spustíme příkaz „scan“ v shellu HBase, zobrazí se vložené hodnoty v „guru99“ následovně
- V prostředí HBase zobrazí hodnoty vložené naším kódem s názvy sloupců a řádků
- Zde vidíme, že vložený název sloupce je „vzdělávání“ a „projekty“
- Vložené hodnoty jsou „BigData“ a „HBase Tutorials“ do uvedených sloupců
Ke čtení dat z tabulky můžete také použít příkaz Get
Syntax: get <'tablename'>, <'rowname'>, {< Additional parameters>}
Tady zahrnují TIMERANGE, TIMESTAMP, VERSION a FILTERS.
Pomocí tohoto příkazu získáte obsah řádku nebo buňky v tabulce. Kromě toho můžete také přidat další parametry, jako je TIMESTAMP, TIMERANGE, VERSIONS, FILTERS atd., abyste získali konkrétní řádek nebo obsah buňky.
Příklady:-
hbase> get 'guru99', 'r1', {COLUMN => 'c1'}
Pro tabulku „guru99′ se pomocí tohoto příkazu zobrazí hodnoty řádku r1 a sloupce c1, jak je znázorněno na obrázku výše
hbase> get 'guru99', 'r1'
Pro tabulku „guru99“ se pomocí tohoto příkazu zobrazí hodnoty r1
hbase> get 'guru99', 'r1', {TIMERANGE => [ts1, ts2]}
Pro tabulku „guru99“ se pomocí tohoto příkazu zobrazí hodnoty řádku 1 v časovém rozsahu ts1 a ts2
hbase> get 'guru99', 'r1', {COLUMN => ['c1', 'c2', 'c3']}
Pro tabulku „guru99“ se pomocí tohoto příkazu zobrazí hodnoty c1, c1, c2 řádků r3 a rodin sloupců
Zápis dat do tabulky HBase: JAVA API
V tomto kroku zapíšeme data do tabulky HBase „guru99“
Nejprve musíme napsat kód pro vkládání a načítání hodnot z HBase pomocí-Program HBaseLoading.java.
Pro vytváření a vkládání hodnot do tabulky na úrovni sloupců musíte kódovat jako níže.
Z výše uvedeného snímku obrazovky
- Když vytvoříme konfiguraci HBase, bude ukazovat na jakoukoli konfiguraci, kterou nastavíme v souborech base-site.xml a hbase-default.xml během Instalace HBase
- Vytvoření tabulky „guru99“ metodou HTable
- Přidání řádku 1 do tabulky „guru99“
- Zadání názvů sloupců „vzdělávání“ a „projekty“ a vkládání hodnot do názvů sloupců v příslušném řádku1. Zde vložené hodnoty jsou „BigData“ a „HBaseTutorials“.
Číst data z tabulky HBase: Java API
Ať už jsou hodnoty, které jsme umístili do tabulek HBase ve výše uvedené části, zde tyto hodnoty načteme a zobrazíme.
Pro načtení výsledků uložených v „guru99“
Výše uvedený snímek obrazovky ukazuje, že se data načítají z tabulky HBase 'guru99'
- V tomto budeme načítat hodnoty, které jsou uloženy v rodinách sloupců, tj. „vzdělání“ a „projekty“
- Příkazem „get“ načteme uložené hodnoty v tabulce HBase
- Výsledky skenování pomocí příkazu „scan“. Hodnoty, které jsou uloženy v řádku1, se zobrazí na konzole.
Jakmile je psaní kódu hotové, musíte spustit Jáva aplikace jako je tato
- Klikněte pravým tlačítkem na HBaseLoading.java -> Běž jako -> Java editaci videa
- Po spuštění „HBaseLoading .java“ se hodnoty vloží do „guru99“ v každém sloupci v HBase a ve stejném programu může také načíst hodnoty.
Zde je úplný 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(); } } }
Shrnutí
Jak jsme probrali v tomto tutoriálu, můžete použít příkaz put k vložení dat do tabulky. Ke čtení dat z tabulky můžete použít příkaz scan, get