Частичное извлечение из таблицы базы данных с помощью Spring Batch - PullRequest
3 голосов
/ 20 июня 2011

У меня есть большая таблица базы данных с автоинкрементным целочисленным первичным ключом, и я использую Spring Batch для создания извлечения таблицы каждый день для использования другими системами.сохранения самого высокого идентификатора, введенного в предыдущем извлечении, для установки начальной точки следующего извлечения (т. е. в sql, где id> last_id_extracted).В настоящее время я делаю это, используя JDBC для таблицы next_id, используя простую старую Java.

Есть ли лучший способ обработки такого рода границ извлечения с помощью Spring Batch.Предположительно, это довольно распространенный сценарий в пакетной обработке, и Spring Batch может помочь?

Спасибо

1 Ответ

3 голосов
/ 14 мая 2012

Ваш метод работает только в узком смысле того, что может случиться с вашими данными.Он не учитывает удаления и модификации существующих данных.

Чтобы сделать его более надежным, добавьте еще одну таблицу, которая будет служить в качестве статуса извлечения, с идентификатором записи таблицы данных в качестве внешнего ключа.В таблице «Состояние извлечения» должна быть отметка «Дата последнего экспорта в», если и когда загружена запись.Затем вы можете реализовать следующие правила:

1) если в Exp Stat нет соответствующей строки, экспортировать 2) если последнее обновление> экспортировано последним, экспортировать его 3) если оно существует в таблице состояния Expно не в Таблице данных, отправьте сообщение об удалении потребителям.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...