Стратегия обработки ежедневных пакетных заданий, когда требуется запустить 24 х 5 - PullRequest
0 голосов
/ 12 июля 2011

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

Он достаточно большой, чтобы его невозможно было загрузить в память перед обновлением.Я хотел знать, как лучше всего сделать данные доступными другим способом, пока пакетное задание не будет завершено.

Загрузка таблицы на диск в формате xml?Копировать таблицу перед пакетным заданием?

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

База данных - DB2, интерфейс - IBM Websphere

1 Ответ

1 голос
/ 12 июля 2011

Оцените необходимость стратегии «убей и заполни». Проверьте, можете ли вы изменить это, просто применив соответствующие дельты для дополнений и изменений, и сойдет с рук.

Вы создаете огромную нагрузку на базу данных для освобождения и повторного захвата страниц.

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

Если вы хотите использовать функцию «убить и заполнить», используйте исходную таблицу (назовем ее BatchTable), чтобы создать новую таблицу с именем BatchTable_Process с той же структурой. Используйте BatchTable_Process для обработки данных пакетного задания. После завершения обработки поменяйте имена таблиц.

...