Как заставить Rhino ETL перенаправлять некорректные строки в другую таблицу назначения?
Мы переносим пакет служб SSIS в Rhino ETL. Пакет служб SSIS в настоящее время выводит неверные строки в таблицу альтернативного назначения, где все столбцы имеют значения NULL и VARCHAR. Хорошие строки попадают в таблицу реального назначения, но при ошибке они перенаправляют плохие строки в эту другую таблицу ошибок. Есть ли способ заставить Rhino ETL сделать то же самое?
Таблицами назначения являются Sql Server 2008 R2 SP2.
1 ответ
Мы должны были создать два процесса. Первый закончился бы массовым копированием записи. Второй сделал бы построчную запись.
Если массовое копирование завершится неудачно, мы начнем процесс строка за строкой.
Затем мы переопределили метод Execute для OutputCommandOperation, потому что он делал все в транзакции. Из-за этого все будет отказано в случае отказа.
Мы вынули транзакцию, добавили перехват для запроса "не выполнять" и добавили столбец с ошибкой в строку с исключением, а затем изменили ее с разрыва доходности на строку возврата доходности.
Затем мы зарегистрировали операцию FailWrite в процессе строка за строкой, который будет последним шагом, и она будет записывать любую строку со столбцом ошибки в место назначения ошибки.