HBase - zaktualizuj dane

Aktualizowanie danych przy użyciu powłoki HBase

Możesz zaktualizować istniejącą wartość komórki za pomocą putKomenda. Aby to zrobić, po prostu postępuj zgodnie z tą samą składnią i podaj nową wartość, jak pokazano poniżej.

put ‘table name’,’row ’,'Column family:column name',’new value’

Nowo podana wartość zastępuje istniejącą wartość, aktualizując wiersz.

Przykład

Załóżmy, że w HBase jest tabela o nazwie emp z następującymi danymi.

hbase(main):003:0> scan 'emp'
 ROW              COLUMN + CELL
row1 column = personal:name, timestamp = 1418051555, value = raju
row1 column = personal:city, timestamp = 1418275907, value = Hyderabad
row1 column = professional:designation, timestamp = 14180555,value = manager
row1 column = professional:salary, timestamp = 1418035791555,value = 50000
1 row(s) in 0.0100 seconds

Następujące polecenie zaktualizuje wartość miasta pracownika o imieniu „Raju” do Delhi.

hbase(main):002:0> put 'emp','row1','personal:city','Delhi'
0 row(s) in 0.0400 seconds

Zaktualizowana tabela wygląda następująco, w której można obserwować, że miasto Raju zostało zmienione na „Delhi”.

hbase(main):003:0> scan 'emp'
  ROW          COLUMN + CELL
row1 column = personal:name, timestamp = 1418035791555, value = raju
row1 column = personal:city, timestamp = 1418274645907, value = Delhi
row1 column = professional:designation, timestamp = 141857555,value = manager
row1 column = professional:salary, timestamp = 1418039555, value = 50000
1 row(s) in 0.0100 seconds

Aktualizacja danych za pomocą Java API

Możesz zaktualizować dane w określonej komórce za pomocą put()metoda. Wykonaj kroki podane poniżej, aby zaktualizować istniejącą wartość komórki tabeli.

Krok 1: Utwórz wystąpienie klasy konfiguracji

Configurationklasa dodaje pliki konfiguracyjne HBase do swojego obiektu. Możesz utworzyć obiekt konfiguracyjny za pomocącreate() metoda HbaseConfiguration klasa, jak pokazano poniżej.

Configuration conf = HbaseConfiguration.create();

Krok 2: Utwórz wystąpienie klasy HTable

Masz klasę o nazwie HTable, implementacja tabeli w HBase. Ta klasa służy do komunikacji z pojedynczą tabelą HBase. Podczas tworzenia instancji tej klasy przyjmuje obiekt konfiguracyjny i nazwę tabeli jako parametry. Możesz utworzyć wystąpienie klasy HTable, jak pokazano poniżej.

HTable hTable = new HTable(conf, tableName);

Krok 3: Utwórz wystąpienie klasy Put

Aby wstawić dane do tabeli HBase, plik add()metoda i jej warianty. Ta metoda należy doPut, dlatego utwórz wystąpienie putklasa. Ta klasa wymaga nazwy wiersza, do którego chcesz wstawić dane, w formacie ciągu. Możesz utworzyć wystąpieniePut klasa, jak pokazano poniżej.

Put p = new Put(Bytes.toBytes("row1"));

Krok 4: Zaktualizuj istniejącą komórkę

Plik add() metoda Putklasa służy do wstawiania danych. Wymaga 3-bajtowych tablic reprezentujących odpowiednio rodzinę kolumn, kwalifikator kolumny (nazwę kolumny) i wartość do wstawienia. Wstaw dane do tabeli HBase przy użyciu rozszerzeniaadd() metoda, jak pokazano poniżej.

p.add(Bytes.toBytes("coloumn family "), Bytes.toBytes("column
name"),Bytes.toBytes("value"));
p.add(Bytes.toBytes("personal"),
Bytes.toBytes("city"),Bytes.toBytes("Delih"));

Krok 5: Zapisz dane w tabeli

Po wstawieniu wymaganych wierszy zapisz zmiany, dodając wystąpienie put do put() metoda klasy HTable, jak pokazano poniżej.

hTable.put(p);

Krok 6: Zamknij instancję HTable

Po utworzeniu danych w tabeli HBase zamknij plik HTable wystąpienie przy użyciu metody close (), jak pokazano poniżej.

hTable.close();

Poniżej podano kompletny program do aktualizacji danych w określonej tabeli.

import java.io.IOException;

import org.apache.hadoop.conf.Configuration;

import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.util.Bytes;

public class UpdateData{

   public static void main(String[] args) throws IOException {

      // Instantiating Configuration class
      Configuration config = HBaseConfiguration.create();

      // Instantiating HTable class
      HTable hTable = new HTable(config, "emp");

      // Instantiating Put class
      //accepts a row name
      Put p = new Put(Bytes.toBytes("row1"));

      // Updating a cell value
      p.add(Bytes.toBytes("personal"),
      Bytes.toBytes("city"),Bytes.toBytes("Delih"));

      // Saving the put Instance to the HTable.
      hTable.put(p);
      System.out.println("data Updated");

      // closing HTable
      hTable.close();
   }
}

Skompiluj i wykonaj powyższy program, jak pokazano poniżej.

$javac UpdateData.java
$java UpdateData

Wynik powinien być następujący:

data Updated