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