Przykład zapytania HBase: polecenie put(), get(), scan() w HBase
Zapisz dane w tabeli HBase: Shell
Polecenie put służy do przechowywania danych w tabeli
Syntax: put <'tablename'>,<'rowname'>,<'columnvalue'>,<'value'>
To polecenie służy do następujących rzeczy
- Umieści „wartość” komórki w zdefiniowanej lub określonej tabeli, wierszu lub kolumnie.
- Opcjonalnie będzie koordynować znacznik czasu.
Przykład:
- Tutaj umieszczamy wartości w tabeli „guru99” w wierszu r1 i kolumnie c1
hbase> put 'guru99', 'r1', 'c1', 'value', 10
- Umieściliśmy trzy wartości 10,15 i 30 w tabeli „guru99”, jak pokazano na zrzucie ekranu poniżej
- Załóżmy, że tabela „Guru99” mając pewne odniesienie do tabeli, np. g. Możemy również uruchomić polecenie w odniesieniu do tabeli, np.
hbase> g.put 'guru99', 'r1', 'c1', 'value', 10
- Dane wyjściowe będą takie, jak pokazano na powyższym zrzucie ekranu po umieszczeniu wartości w „guru99”.
Odczytaj dane z tabeli HBase: Shell
W tej sekcji sprawdzimy następujące elementy
- Wartości wstawiane do tabeli HBase „guru99”
- Nazwy kolumn z wartościami obecnymi w guru99 tabeli HBase
Z powyższego zrzutu ekranu możemy wywnioskować
- Jeśli uruchomimy polecenie „skanuj” w powłoce HBase, wyświetli ono wstawione wartości w „guru99” w następujący sposób
- W powłoce HBase wyświetli wartości wstawione przez nasz kod z nazwami kolumn i wierszy
- Tutaj widzimy, że wstawione nazwy kolumn to „edukacja” i „projekty”
- Wstawione wartości to „BigData” i „Poradniki HBase” do wspomnianych kolumn
Do odczytania danych z tabeli można także użyć polecenia Pobierz
Syntax: get <'tablename'>, <'rowname'>, {< Additional parameters>}
Tutaj obejmują ZAKRES CZASOWY, ZNACZNIK CZASOWY, WERSJE i FILTRY.
Używając tego polecenia, otrzymasz zawartość wiersza lub komórki obecną w tabeli. Oprócz tego możesz także dodać do niego dodatkowe parametry, takie jak TIMESTAMP, TIMERANGE, VERSIONS, FILTER itp., aby uzyskać określoną zawartość wiersza lub komórki.
Przykłady:-
hbase> get 'guru99', 'r1', {COLUMN => 'c1'}
Dla tabeli „guru99′ wartości wiersza r1 i kolumny c1 zostaną wyświetlone za pomocą tego polecenia, jak pokazano na powyższym zrzucie ekranu
hbase> get 'guru99', 'r1'
W przypadku tabeli „guru99” wartości wiersza r1 zostaną wyświetlone za pomocą tego polecenia
hbase> get 'guru99', 'r1', {TIMERANGE => [ts1, ts2]}
W przypadku tabeli „guru99” wiersz 1 wartości z zakresu czasu ts1 i ts2 zostaną wyświetlone za pomocą tego polecenia
hbase> get 'guru99', 'r1', {COLUMN => ['c1', 'c2', 'c3']}
W przypadku tabeli „guru99” wiersz r1 i wartości c1, c2, c3 rodzin kolumn zostaną wyświetlone za pomocą tego polecenia
Zapisz dane do tabeli HBase: API JAVA
W tym kroku zapiszemy dane do tabeli HBase „guru99”
Najpierw musimy napisać kod do wstawiania i pobierania wartości z HBase za pomocą-Program HBaseLoading.java.
Aby tworzyć i wstawiać wartości do tabeli na poziomie kolumny, musisz zakodować jak poniżej.
Z powyższego zrzutu ekranu
- Kiedy tworzymy konfigurację HBase, będzie ona wskazywała konfiguracje, które ustawiliśmy w plikach base-site.xml i hbase-default.xml podczas Instalacje HBase
- Utworzenie tabeli „guru99” metodą HTable
- Dodawanie wiersza 1 do tabeli „guru99”
- Określenie nazw kolumn „edukacja” i „projekty” oraz wstawienie wartości do nazw kolumn w odpowiednim wierszu 1. Wstawione tutaj wartości to „BigData” i „HBaseTutorials”.
Odczytaj dane z tabeli HBase: Java API
Niezależnie od wartości, które umieściliśmy w tabelach HBase w powyższej sekcji, tutaj pobierzemy i wyświetlimy te wartości.
Do pobierania wyników zapisanych w „guru99”
Powyższy zrzut ekranu pokazuje, że dane są odczytywane z tabeli HBase „guru99”
- W tym przypadku pobierzemy wartości przechowywane w rodzinach kolumn, tj. „edukacja” i „projekty”
- Za pomocą polecenia „get” pobierzemy wartości zapisane w tabeli HBase
- Skanowanie wyników za pomocą polecenia „skanuj”. Wartości przechowywane w wierszu 1 zostaną wyświetlone na konsoli.
Po zakończeniu pisania kodu musisz uruchomić Jawa taka aplikacja
- Kliknij prawym przyciskiem myszy plik HBaseLoading.java -> Uruchom jako -> Java Zastosowanie
- Po uruchomieniu „HBaseLoading .java” wartości zostaną wstawione do „guru99” w każdej kolumnie w HBase i w tym samym programie może również pobrać wartości.
Oto pełny kod
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();
}
}
}
Podsumowanie
Jak omówiliśmy w tym samouczku, możesz użyć polecenia put, aby wstawić dane do tabeli. Możesz użyć polecenia scan, get do odczytania danych z tabeli





