V tomto výukovém programu se naučíte:
- Zápis dat do tabulky HBase: Shell
- Číst data z tabulky HBase: Shell
- Zápis dat do tabulky HBase: JAVA API
- Číst data z tabulky HBase: JAVA API
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ží hodnotu buňky do definované nebo zadané tabulky nebo řádku nebo sloupce.
- Volitelně bude koordinovat časové razítko.
Příklad:
- Zde umisťujeme hodnoty do tabulky "guru99" pod řádek r1 a sloupec c1
hbase> put 'guru99', 'r1', 'c1', 'value', 10
- Do tabulky „guru99“ jsme umístili tři hodnoty, 10,15 a 30, jak je znázorněno na následujícím obrázku
-
Předpokládejme, že pokud tabulka "Guru99" má nějaký odkaz na tabulku, například řekněme g. Můžeme také spustit příkaz na referenční tabulce stejně jako
hbase> g.put 'guru99', 'r1', 'c1', 'value', 10
-
Po umístění hodnot do „guru99“ bude výstup zobrazen na výše uvedeném snímku obrazovky.
Číst data z tabulky HBase: Shell
V této části zkontrolujeme následující
- Hodnoty, které jsou vloženy do tabulky HBase "guru99"
- Názvy sloupců s hodnotami obsaženými v HBase Table guru99
Z výše uvedeného snímku obrazovky můžeme odvodit
- Pokud spustíme příkaz "scan" v prostředí 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 vložený název sloupce „vzdělávání“ a „projekty“
- Vložené hodnoty jsou „BigData“ a „HBase Tutorials“ do uvedených sloupců
Můžete také použít příkaz Získat ke čtení dat z tabulky
Syntax: get <'tablename'>, <'rowname'>, {< Additional parameters>}
Zde
Pomocí tohoto příkazu získáte obsah řádků nebo buněk v tabulce. Kromě toho do něj můžete přidat další parametry, jako je TIMESTAMP, TIMERANGE, VERSION, FILTERS atd., Abyste získali konkrétní obsah řádku nebo buňky.
Příklady: -
hbase> get 'guru99', 'r1', {COLUMN => 'c1'}
U tabulky "guru99 'se hodnoty r1 a sloupce c1 zobrazí pomocí tohoto příkazu, jak je znázorněno na výše uvedeném snímku obrazovky
hbase> get 'guru99', 'r1'
U tabulky "guru99" se pomocí tohoto příkazu zobrazí hodnoty r1
hbase> get 'guru99', 'r1', {TIMERANGE => [ts1, ts2]}
U tabulky „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']}
U tabulky "guru99" se pomocí tohoto příkazu zobrazí hodnoty řádků r1 a rodin sloupců 'c1, c2, c3
Zápis dat do tabulky HBase: JAVA API
V tomto kroku se chystáme zapsat data do tabulky HBase "guru99"
Nejprve musíme napsat kód pro vložení a načíst hodnoty z HBase pomocí programu HBaseLoading.java.
Pro vytváření a vkládání hodnot do tabulky na úrovni sloupce musíte kódovat níže .
Z výše uvedené obrazovky
- Když vytvoříme konfiguraci HBase, bude ukazovat na jakékoli konfigurace, které jsme nastavili v souborech base-site.xml a hbase-default.xml během instalací HBase
- Vytvoření tabulky "guru99" metodou HTable
- Přidání řádku1 do tabulky "guru99"
- Zadání názvů sloupců „vzdělávání“ a „projekty“ a vložení 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
Bez ohledu na hodnoty, které jsme umístili do tabulek HBase ve výše uvedené části, zde tyto hodnoty načteme a zobrazíme.
Pro načítání výsledků uložených v "guru99"
Výše uvedený snímek obrazovky ukazuje, že data jsou čtena z tabulky HBase 'guru99'
- V tomto budeme načítat hodnoty, které jsou uloženy v rodinách sloupců, tj. „Vzdělávání“ a „projekty“
- Pomocí příkazu "get" načteme uložené hodnoty v tabulce HBase
- Výsledky skenování pomocí příkazu "skenovat". Hodnoty, které jsou uloženy v řádku 1, který se zobrazí na konzole.
Jakmile je psaní kódu hotové, musíte takto spustit java aplikaci
- Klikněte pravým tlačítkem na HBaseLoading.java -> Spustit jako -> Java aplikace
- Po spuštění "HBaseLoading .java" hodnoty, které se mají vložit do "guru99" v každém sloupci v HBase a ve stejném programu může také načítat hodnoty.
Zde je kompletní 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();}}}
Souhrn:
Jak jsme diskutovali v tomto kurzu, můžete pomocí příkazu put vložit data do tabulky. Ke čtení dat z tabulky můžete použít příkaz scan, get