Что такое трансформация управления транзакциями?
Управление транзакциями - это активное и связанное преобразование, которое позволяет нам фиксировать или откатывать транзакции во время выполнения сопоставления. Операции фиксации и отката имеют большое значение, поскольку они гарантируют доступность данных.
При обработке большого объема данных может возникнуть ситуация, когда данные необходимо передать в цель. Если фиксация выполняется слишком часто, это будет накладными расходами для системы. Если фиксация выполняется слишком поздно, то в случае сбоя есть вероятность потери данных.
Таким образом, для обеспечения гибкости предусмотрено преобразование управления транзакциями.
Команды TCL COMMIT и ROLLBACK
В этом преобразовании доступны пять встроенных переменных для обработки операции.
TC_CONTINUE_TRANSACTIONВ tc_continue_transaction операции не выполняются, процесс загрузки данных продолжается как есть.
TC_COMMIT_BEFOREВ tc_commit_before, когда установлено, что этот флаг установлен, перед обработкой текущей строки выполняется фиксация.
TC_COMMIT_AFTERВ tc_commit_a после обработки текущей строки выполняется фиксация.
TC_ROLLBACK_BEFOREВ tc_rollback_before сначала выполняется откат, затем данные обрабатываются для записи.
TC_ROLLBACK_AFTERВ tc_rollback_after данные обрабатываются, после чего выполняется откат.
Пример:
В этом примере мы передадим данные в цель, когда условие dept no = 20 окажется истинным.
Шаг 1. Создайте сопоставление с EMP в качестве источника и EMP_TARGET в качестве цели
Шаг 2 - Создайте новую трансформацию с помощью меню трансформации, затем
- Выберите элемент управления транзакцией в качестве нового преобразования
- Введите имя преобразования "tc_commit_dept20"
- Выберите вариант создания
Шаг 3 - Будет создана трансформация управления транзакциями, нажмите кнопку «Готово».
Шаг 4. Перетащите все столбцы из квалификатора источника в преобразование управления транзакцией, затем свяжите все столбцы из преобразования управления транзакцией в целевую таблицу.
Шаг 5 - Дважды щелкните преобразование управления транзакцией, а затем в окне редактирования свойств.
- Выберите вкладку свойств
- Щелкните значок редактора управления транзакциями.
Шаг 6 - в редакторе выражений введите выражение -
« iif (deptno = 20, tc_commit_before, tc_continue_transaction)» и выберите ОК
Это означает, что если deptno 20 найден, то зафиксируйте транзакцию в целевом объекте, иначе продолжите текущую обработку.
Шаг 7 - Выберите ОК в предыдущем окне.
Теперь сохраните сопоставление и выполните его после создания сеанса и рабочих процессов. Это сопоставление будет передавать данные в цель всякий раз, когда в данных будет обнаружен отдел номер 20.