Что такое трансформация управления транзакциями?
Управление транзакциями — это активное и связанное преобразование, которое позволяет нам фиксировать или откатывать транзакции во время выполнения отображения. Операции фиксации и отката имеют большое значение, поскольку они гарантируют доступность данных.
При обработке большого объема данных может возникнуть ситуация, когда данные будут переданы в целевой объект. Если фиксация выполняется слишком часто, это будет накладным расходом для системы. Если фиксация выполняется слишком поздно, то в случае сбоя есть вероятность потери данных.
Таким образом, для обеспечения гибкости обеспечивается трансформация управления транзакциями.
Команды TCL COMMIT & ROLLBACK
В этом преобразовании доступно пять встроенных переменных для обработки операции.
TC_CONTINUE_TRANSACTION
В tc_continue_transaction операции не выполняются, процесс загрузки данных продолжается как есть.
TC_COMMIT_BEFORE
В tc_commit_before, когда этот флаг найден установленным, фиксация выполняется перед обработкой текущей строки.
TC_COMMIT_AFTER
В tc_commit_after текущая строка обрабатывается, затем выполняется фиксация.
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)» и выберите ОК
Это означает, что если 20 будет найдено, то зафиксируйте транзакцию в цели, иначе продолжите текущую обработку.
Шаг 7 — Выберите ОК в предыдущем окне
Теперь сохраните отображение и выполните его после создания сеанса и рабочих процессов. Это сопоставление будет фиксировать данные для цели всякий раз, когда в данных будет найден номер отдела 20.