Преобразование управления транзакциями в Informatica (пример)
⚡ Умное резюме
Преобразование Transaction Control в Informatica представляет собой активный, связанный объект, который фиксирует или откатывает строки во время работы функции map.ping выполняется с использованием пяти встроенных переменных внутри условия, которое оценивается один раз для каждой строки.

Что такое трансформация управления транзакциями?
Управление транзакциями — это активное и взаимосвязанное преобразование, позволяющее фиксировать или отменять транзакции во время выполнения карты.pingОперации фиксации и отката имеют важное значение, поскольку гарантируют доступность данных.
При обработке больших объемов данных может возникнуть ситуация, когда необходимо зафиксировать данные в целевом хранилище. Если фиксация выполняется слишком часто, это создаст дополнительную нагрузку на систему. Если же фиксация выполняется слишком поздно, то в случае сбоя существует вероятность потери данных.
Таким образом, для обеспечения гибкости предусмотрено преобразование «Управление транзакциями». Вместо того чтобы оставлять точку фиксации по умолчанию в сессии, оно позволяет задать условие внутри картаping Определять, построчно, где заканчивается одна транзакция и начинается следующая.
Команды фиксации и отката в TCL
В этом преобразовании для обработки операции доступны пять встроенных переменных. Условие должно возвращать одну из пяти переменных для каждой строки, а значение, выходящее за пределы этого списка, приводит к сбою сессии в службе интеграции.
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 данные обрабатываются, после чего выполняется откат.
Свойства преобразования управления транзакциями
Настройка объекта осуществляется в окне «Редактирование преобразований», которое содержит те же четыре вкладки, что и другие преобразования PowerCenter. Знание того, какая вкладка отвечает за какой параметр, значительно упрощает поиск нужной информации в процессе выполнения инструкций ниже.
| Tab | Что там настроено? |
| трансформация | Название преобразования, его описание и указание на возможность повторного использования объекта. |
| Порты | Входные и выходные порты обычно создаются путем перетаскивания столбцов из вышестоящего преобразования. |
| Основные свойства | Условие управления транзакцией, открываемое с помощью маленькой стрелки рядом с полем, и TracУровень активности записывается в журнал сессии. |
| Расширения метаданных | Пользовательские метаданные сохраняются в репозитории вместе с результатами преобразования. |
Реальную работу выполняют две настройки. Условие контроля транзакции содержит выражение, которое обычно представляет собой проверку IIF(), возвращающую одну из пяти переменных. TracУровень Определяет, насколько подробная информация о преобразовании будет отображаться в журнале сессии при анализе выполнения.
Один параметр находится вне процесса преобразования. Когда картаping содержит эффективное преобразование управления транзакциями, сессия выполняется с использованием Тип фиксации На вкладке «Свойства» установите значение «Определяется пользователем». Сессия, вместо Target или типы коммитов источника, использующие фиксированный интервал коммита.
Как использовать преобразование управления транзакциями в Informatica
В этом примере мы будем сохранять данные в целевой системе, когда условие "номер отдела = 20" окажется истинным.
Шаг 1) Создать картуping с ЭМИ в качестве источника и EMP_TARGET в качестве цели. Картаping На холсте дизайнера отображаются исходный код, его квалификатор источника и определение целевого объекта.
Шаг 2) Создайте новое преобразование, используя меню «Преобразование», а затем в окне «Создать преобразование»:
- Выберите элемент управления транзакциями в качестве нового преобразования.
- Введите имя преобразования «tc_commit_dept20».
- Выберите вариант создания
Шаг 3) Будет создано преобразование «Управление транзакциями», нажмите кнопку «Готово». Новый объект теперь появится на холсте рядом с полем «Квалификатор источника».
Шаг 4) Перетащите все столбцы из преобразования Source Qualifier в преобразование Transaction Control, затем свяжите все столбцы из преобразования Transaction Control с целевой таблицей. Теперь конвейер выполняется по последовательности: источник → Source Qualifier → tc_commit_dept20 → EMP_TARGET.
Шаг 5) Double Щелкните по преобразованию «Управление транзакциями», а затем в окне редактирования свойств:
- Выберите вкладку свойств
- Нажмите на значок редактора контроля транзакций.
Шаг 6) В редакторе выражений введите выражение –
iif(deptno=20,tc_commit_before,tc_continue_transaction)
и нажмите ОК. Это означает, что если найден номер отдела 20, то транзакция должна быть подтверждена в целевой системе, в противном случае — продолжена текущая обработка.
Шаг 7) В предыдущем окне нажмите кнопку ОК. Теперь условие сохранено на вкладке «Свойства» преобразования.
Теперь сохраните карту.ping и выполнить его после создания сессии и рабочих процессов. Эта картаping Данные будут зафиксированы в целевой системе всякий раз, когда в данных будет обнаружен отдел с номером 20.
Эффективные и неэффективные преобразования в сфере управления транзакциями
Эта трансформация является генератором транзакций. Она отбрасывает любые границы транзакций, поступающие из вышестоящего потока, и определяет новые собственные границы для всего, что находится ниже по потоку, поэтому ее положение в конвейере имеет такое же значение, как и ее состояние.
Она называется высокоэффективным для цели, когда создаваемые ею границы все еще достигают этой цели, и неэффективно Когда последующее преобразование отбрасывает эти границы. Согласно руководству по преобразованиям Informatica PowerCenter, следующие объекты отбрасывают границы входящих транзакций:
- Агрегатор Столяр, РангСортировщик или пользовательское преобразование, область действия которого — все входные данные.
- Пользовательское преобразование, настроенное для генерации транзакций.
- Еще одно преобразование управления транзакциями
- Преобразование с несколькими входными группами, подключенное к более чем одной точке управления транзакцией на вышестоящем уровне.
Неэффективность для целевого объекта не делает его бесполезным. Преобразование, область действия которого ограничена транзакцией, по-прежнему использует границы, определенные выше по потоку, поэтому одно и то же преобразование может быть эффективным для сортировщика и неэффективным для таблицы, находящейся за ним.
На картеping При наличии нескольких целей объект может быть эффективен против одной цели и неэффективен против другой. Картаping Остается действительным, пока каждая цель связана с эффективным преобразованием управления транзакциями, и становится недействительным, как только одна цель перестает быть таковой. Конструктор сообщает, какие преобразования неэффективны для целей при отображении.ping сохранено или проверено.
Правила и рекомендации по преобразованию системы управления транзакциями
Большинство проблем с этим преобразованием проявляются во время выполнения, а не на этапе проектирования, поэтому перед созданием сессии стоит проверить следующие моменты.
- Возвращаемое значение является строгим. Если условие оценивается как любое другое, кроме «подтвердить», «откатить» или «продолжить», служба интеграции завершает сессию с ошибкой.
- TC_CONTINUE_TRANSACTION — это резервный вариант. Каждая ветвь функции IIF() должна где-то заканчиваться, а параметр continue — это значение, которое оставляет текущую транзакцию нетронутой.
- Тип цели имеет значение. Преобразование управления транзакциями, подключенное к любой целевой системе, кроме реляционной, XML- или динамической MQSeries, неэффективно для этой целевой системы.
- Состояние может использовать только то, что до него доходит. В редакторе управления транзакциями доступны только порты, связанные с преобразованием, его переменные порты и встроенные переменные.
- Частота фиксации транзакций — это компромисс. Условие, которое срабатывает почти для каждой строки, сводит на нет преимущества буферизации, в то время как условие, которое почти никогда не срабатывает, вновь вводит период потери данных, для закрытия которого и было добавлено преобразование.
- Проверьте журнал сеанса. В журнале фиксируются фактически выполненные точки фиксации, что является самым быстрым способом подтвердить, что условие работало должным образом. настройка производительности.







