Службы SSIS Вставляют и удаляют из таблиц аудита на основе триггеров

#mysql #sql-server #ssis #etl

Вопрос:

Каков был бы «лучший» способ вставки/обновления/удаления записей из «исходной таблицы аудита» в «целевую таблицу». Исходная таблица аудита фактически загружается из базы данных MySQL в базу данных SQL Server (каждые 10 минут).

Затем я использую таблицу аудита для синхронизации основной таблицы MySQL с эквивалентом SQL Server, поскольку полное усечение и загрузка невозможны с таблицами, содержащими более 40 млн строк и растущими.

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

Мой текущий процесс включает условное разделение служб SSIS для всех трех действий и выполнение их строка за строкой, однако я думаю, что есть способ объединить существующую таблицу с таблицей аудита и выполнить действия с помощью пакетных обновлений/удалений/вставок.

Структура таблицы аудита включает в себя действия, которые необходимо выполнить

Прослушивание Аудиторская проверка Проект РекордИД Имя поля Ценность
1 вставлять 1 20 имя привет
2 вставлять 1 20 имя Мир
3 вставлять 1 20 дата рождения 01/01/1970
4 Удалить 1 21 имя фу
5 UDPATE 1 20 имя тест2
6 Обновить 1 30 дата рождения 21/06/2021

где в качестве исходной таблицы будет аналогично следующему

Проект РекордИД Имя поля Ценность
1 20 имя привет
1 20 имя Мир
1 20 дата рождения 01/01/1970
1 21 имя бар
1 21 дата рождения 01/01/1970
1 30 имя мерзавец
1 30 имя хаб
1 30 дата рождения 21/06/2021