HBase - Удалить данные

Удаление определенной ячейки в таблице

Используя deleteкоманда, вы можете удалить определенную ячейку в таблице. Синтаксисdelete команда выглядит следующим образом:

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

пример

Вот пример удаления определенной ячейки. Здесь мы удаляем зарплату.

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

Удаление всех ячеек в таблице

Используя команду «deleteall», вы можете удалить все ячейки подряд. Ниже приведен синтаксис команды deleteall.

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

пример

Вот пример команды «deleteall», где мы удаляем все ячейки row1 таблицы emp.

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

Проверьте таблицу с помощью scanкоманда. Снимок таблицы после удаления таблицы приведен ниже.

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

Удаление данных с помощью Java API

Вы можете удалить данные из таблицы HBase, используя delete() метод HTableкласс. Следуйте инструкциям ниже, чтобы удалить данные из таблицы.

Шаг 1. Создайте экземпляр класса конфигурации

ConfigurationКласс добавляет файлы конфигурации HBase к своему объекту. Вы можете создать объект конфигурации, используяcreate() метод HbaseConfiguration класс, как показано ниже.

Configuration conf = HbaseConfiguration.create();

Шаг 2. Создайте экземпляр класса HTable

У вас есть класс под названием HTable, реализация таблицы в HBase. Этот класс используется для связи с одной таблицей HBase. При создании экземпляра этого класса он принимает в качестве параметров объект конфигурации и имя таблицы. Вы можете создать экземпляр класса HTable, как показано ниже.

HTable hTable = new HTable(conf, tableName);

Шаг 3. Создайте экземпляр класса удаления

Создайте экземпляр Deleteclass, передав rowid удаляемой строки в формате байтового массива. Вы также можете передать этому конструктору метку времени и строку Rowlock.

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

Шаг 4: Выберите данные для удаления

Вы можете удалить данные, используя методы удаления Deleteкласс. Этот класс имеет различные методы удаления. Выберите столбцы или семейства столбцов для удаления с помощью этих методов. Взгляните на следующие примеры, которые показывают использование методов класса Delete.

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

Шаг 5: удалите данные

Удалите выбранные данные, передав delete экземпляр к delete() метод HTable класс, как показано ниже.

table.delete(delete);

Шаг 6: закройте HTableInstance

После удаления данных закройте HTable Пример.

table.close();

Ниже приведена полная программа для удаления данных из таблицы 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.....");
   }
}

Скомпилируйте и выполните указанную выше программу, как показано ниже.

$javac Deletedata.java
$java DeleteData

На выходе должно получиться следующее:

data deleted