Удаление данных
Содержание раздела
Система позволяет удалять небольшие объемы данных в следующих логических сущностях:
Под небольшим объемом данных подразумевается несколько записей, например до нескольких десятков. Чтобы удалить большой объем данных, используйте загрузку данных.
Предварительный шаг для standalone-таблиц
Удаление данных в standalone-таблице выполняется с помощью внешней writable-таблицы. Если она отсутствует, ее необходимо создать.
Чтобы создать внешнюю writable-таблицу, выполните запрос CREATE WRITABLE EXTERNAL TABLE:
- если standalone-таблица отсутствует и ее нужно создать при создании внешней таблицы, укажите в запросе ключевое слово
OPTIONS
со значениемauto.create.table.enable=true
; - иначе выполните запрос без ключевого слова
OPTIONS
.
Как удалить данные
Чтобы удалить данные:
- Если необходимо включить изменения данных логической таблицы в дельту и в логической БД нет открытой дельты, откройте новую дельту.
- Выполните запрос DELETE:
- чтобы выполнить запрос в синхронном режиме, используйте любой из способов:
- чтобы выполнить запрос в асинхронном режиме, отправьте его по HTTP с помощью POST-метода query с параметром async, имеющим значение
true
.
- Если изменения были выполнены в дельте и они должны быть последними в дельте, закройте дельту.
При удалении данных в прокси-таблицах и standalone-таблицах учитывайте ограничения таблиц целевой СУБД.
Примеры
Удаление данных логических таблиц
-- выбор логической базы данных marketing в качестве базы данных по умолчанию
USE marketing;
-- открытие новой дельты
BEGIN DELTA;
-- удаление записей логической таблицы sales в дельте
DELETE FROM sales WHERE store_id = 234;
-- закрытие дельты
COMMIT DELTA;
Удаление данных прокси-таблиц
-- удаление одной записи прокси-таблицы
DELETE FROM marketing.payments_proxy WHERE id = 100
Удаление данных standalone-таблиц
-- удаление записей по одному клиенту
DELETE FROM marketing.agreements_ext_write_adp WHERE client_id = 234
Перезапуск операций по удалению данных
-- выбор логической базы данных marketing_new в качестве базы данных по умолчанию
USE marketing;
-- открытие новой дельты
BEGIN DELTA;
-- удаление записей логической таблицы sales о покупках в магазине
DELETE FROM sales WHERE store_id = 456;
-- перезапуск обработки операции по удалению записей
RETRY DELETE FROM sales WHERE store_id = 456;
-- закрытие дельты
COMMIT DELTA;