Учебники

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

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

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», где мы удаляем все ячейки строки 1 таблицы emp.

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

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

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: Создание класса конфигурации

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

Configuration conf = HbaseConfiguration.create();

Шаг 2: Создание класса HTable

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

HTable hTable = new HTable(conf, tableName); 

Шаг 3: Создание класса удаления

Создайте класс Delete , передав идентификатор строки, которая должна быть удалена, в формате байтового массива. Вы также можете передать метку времени и 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

Следующее должно быть выводом: