HBase - Usuń dane

Usuwanie określonej komórki w tabeli

Używając deletepolecenie, możesz usunąć określoną komórkę w tabeli. Składniadelete polecenie jest następujące:

delete ‘<table name>’, ‘<row>’, ‘<column name >’, ‘<time stamp>’

Przykład

Oto przykład usunięcia określonej komórki. Tutaj usuwamy wynagrodzenie.

hbase(main):006:0> delete 'emp', '1', 'personal data:city',
1417521848375
0 row(s) in 0.0060 seconds

Usuwanie wszystkich komórek w tabeli

Za pomocą polecenia „usuń wszystko” możesz usunąć wszystkie komórki w wierszu. Poniżej podano składnię polecenia deleteall.

deleteall ‘<table name>’, ‘<row>’,

Przykład

Oto przykład polecenia „deleteall”, w którym usuwamy wszystkie komórki wiersza 1 tabeli emp.

hbase(main):007:0> deleteall 'emp','1'
0 row(s) in 0.0240 seconds

Sprawdź tabelę za pomocą scanKomenda. Migawka tabeli po usunięciu tabeli znajduje się poniżej.

hbase(main):022:0> scan 'emp'

ROW                  COLUMN + CELL

2 column = personal data:city, timestamp = 1417524574905, value = chennai 

2 column = personal data:name, timestamp = 1417524556125, value = ravi

2 column = professional data:designation, timestamp = 1417524204, value = sr:engg

2 column = professional data:salary, timestamp = 1417524604221, value = 30000

3 column = personal data:city, timestamp = 1417524681780, value = delhi

3 column = personal data:name, timestamp = 1417524672067, value = rajesh
 
3 column = professional data:designation, timestamp = 1417523187, value = jr:engg

3 column = professional data:salary, timestamp = 1417524702514, value = 25000

Usuwanie danych za pomocą Java API

Możesz usunąć dane z tabeli HBase przy użyciu delete() metoda HTableklasa. Wykonaj czynności podane poniżej, aby usunąć dane z 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 Usuń

Utwórz wystąpienie Deleteklasę, przekazując identyfikator wiersza wiersza, który ma zostać usunięty, w formacie tablicy bajtów. Możesz również przekazać temu konstruktorowi znacznik czasu i Rowlock.

Delete delete = new Delete(toBytes("row1"));

Krok 4: Wybierz dane do usunięcia

Możesz usunąć dane za pomocą metod usuwania pliku Deleteklasa. Ta klasa ma różne metody usuwania. Wybierz kolumny lub rodziny kolumn do usunięcia za pomocą tych metod. Spójrz na poniższe przykłady, które pokazują użycie metod klasy Delete.

delete.deleteColumn(Bytes.toBytes("personal"), Bytes.toBytes("name"));
delete.deleteFamily(Bytes.toBytes("professional"));

Krok 5: Usuń dane

Usuń wybrane dane, przekazując plik delete wystąpienie do delete() metoda HTable klasa, jak pokazano poniżej.

table.delete(delete);

Krok 6: Zamknij HTableInstance

Po usunięciu danych zamknij plik HTable Instancja.

table.close();

Poniżej podano kompletny program do usuwania danych z tabeli HBase.

import java.io.IOException;

import org.apache.hadoop.conf.Configuration;

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

public class DeleteData {

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

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

      // Instantiating HTable class
      HTable table = new HTable(conf, "employee");

      // Instantiating Delete class
      Delete delete = new Delete(Bytes.toBytes("row1"));
      delete.deleteColumn(Bytes.toBytes("personal"), Bytes.toBytes("name"));
      delete.deleteFamily(Bytes.toBytes("professional"));

      // deleting the data
      table.delete(delete);

      // closing the HTable object
      table.close();
      System.out.println("data deleted.....");
   }
}

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

$javac Deletedata.java
$java DeleteData

Wynik powinien być następujący:

data deleted