Существует много (более старых) связанных данных, распределенных по многим таблицам в нашей базе данных, которые необходимо архивировать в отдельную базу данных, а затем удалять из исходной базы данных (возможно, ежедневно).То, что заархивировано (и удалено), определяется бизнес-правилами.Нам не нужны новые данные в этом архиве (он меняется и часто используется).Некоторые архивные данные, возможно, потребуется перенести обратно, если потребуется, и, возможно, сообщить о них.
Мне нужно найти эффективное и простое в обслуживании решение в SSIS.Я могу придумать как минимум три способа сделать это:
- написать большой оператор выбора с большим количеством левых объединений, чтобы получить все нужные мне данные, а затем просмотреть эти данные либо в памяти, либо в хранилище.он в промежуточной таблице
- работает по принципу «таблица за таблицей», выбирая задания, затем связанные данные из других таблиц
- аналогично первому способу, за исключением того, что просто выдает данные вНормализованная таблица (кажется, ленивый метод?)
Я рассмотрел промежуточные таблицы, хотя в этом случае я не вижу преимущества - я могу скопировать данные непосредственно в архивную таблицу с отметкой времени(отметка времени = процесс запущен), затем, когда закончите, перейдите и удалите идентификаторы, которые были помечены в момент запуска процесса.После того, как я определил идентификатор задания, я знаю остальные данные, которые тоже нужно архивировать.
Я ищу оптимальный подход, у кого-нибудь есть другой подход?Как бы другие люди достигли этого?