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

Zápis dat do tabulky HBase: Shell

  • 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

Čtení dat z tabulky HBase: Shell

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.

Čtení dat z tabulky HBase: Shell

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ápis dat do tabulky HBase: JAVA API

Z výše uvedeného snímku obrazovky

  1. 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
  2. Vytvoření tabulky „guru99“ metodou HTable
  3. Přidání řádku 1 do tabulky „guru99“
  4. 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“

Číst data z tabulky HBase: Java API

Výše uvedený snímek obrazovky ukazuje, že se data načítají z tabulky HBase 'guru99'

  1. V tomto budeme načítat hodnoty, které jsou uloženy v rodinách sloupců, tj. „vzdělání“ a „projekty“
  2. Příkazem „get“ načteme uložené hodnoty v tabulce HBase
  3. 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