Мне интересно, как SSIS обрабатывает транзакции с большими наборами данных. У меня есть «большой» набор данных из примерно 150 000 строк, каждая из которых должна быть проверена на соответствие бизнес-правилам как часть ETL от промежуточной базы данных до действующей базы данных.
Если какая-либо из записей не соответствует их бизнес-правилам, никакие записи не должны попадать в действующую базу данных (т. Е. Откат транзакции).
У меня вопрос, как SSIS обрабатывает большие транзакции - или может? Будет ли он обрабатывать ввод 149 999 записей, а затем откатить всю партию, если последняя запись не соответствует его правилам бездействия? Или есть лучшая практика для выполнения этого типа операции передачи больших данных?
В настоящее время я думаю о том, чтобы обрабатывать каждую запись в контейнере последовательности на уровне потока управления с включенными в контейнере настройками трансляции. Все проверки будут выполняться в контейнере последовательности, и вставка также будет сделана в этом контейнере.