Преобразование управления транзакциями в Informatica (пример)

⚡ Умное резюме

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

  • 🔄 Пять встроенных переменных: Параметры TC_CONTINUE_TRANSACTION, TC_COMMIT_BEFORE, TC_COMMIT_AFTER, TC_ROLLBACK_BEFORE и TC_ROLLBACK_AFTER определяют, что произойдет с каждой строкой.
  • ⚙️ Условие находится в свойствах: В поле «Условие управления транзакцией» на вкладке «Свойства» содержится выражение IIF, которое оценивает служба интеграции.
  • 🧪 Реализованный пример: Карта семиping В процессе проектирования данные EMP сохраняются в переменной EMP_TARGET всякий раз, когда обнаруживается номер отдела 20.
  • Эффективно или неэффективно: Любое преобразование, которое отменяет границы транзакций после того, как делает объект неэффективным для целевого объекта, находящегося за ним.
  • 🔧 Тип подтверждения сессии: Картаping При эффективном выполнении преобразования управления транзакциями используется определяемый пользователем тип фиксации.
  • ⚠️ Строгое возвращаемое значение: Если возвращаемое значение отличается от commit, roll back или continue, служба интеграции завершает сессию с ошибкой.

Преобразование управления транзакциями в Informatica

Что такое трансформация управления транзакциями?

Управление транзакциями — это активное и взаимосвязанное преобразование, позволяющее фиксировать или отменять транзакции во время выполнения карты.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 На холсте дизайнера отображаются исходный код, его квалификатор источника и определение целевого объекта.

Картаping Холст дизайнера с источником EMP, его квалификатором источника и определением цели EMP_TARGET.

Шаг 2) Создайте новое преобразование, используя меню «Преобразование», а затем в окне «Создать преобразование»:

  1. Выберите элемент управления транзакциями в качестве нового преобразования.
  2. Введите имя преобразования «tc_commit_dept20».
  3. Выберите вариант создания

Создайте окно преобразования, выбрав «Управление транзакциями» и указав имя tc_commit_dept20.

Шаг 3) Будет создано преобразование «Управление транзакциями», нажмите кнопку «Готово». Новый объект теперь появится на холсте рядом с полем «Квалификатор источника».

Преобразование управления транзакциями tc_commit_dept20 создано рядом с квалификатором источника.

Шаг 4) Перетащите все столбцы из преобразования Source Qualifier в преобразование Transaction Control, затем свяжите все столбцы из преобразования Transaction Control с целевой таблицей. Теперь конвейер выполняется по последовательности: источник → Source Qualifier → tc_commit_dept20 → EMP_TARGET.

Столбцы Source Qualifier связаны через tc_commit_dept20 с таблицей EMP_TARGET.

Шаг 5) Double Щелкните по преобразованию «Управление транзакциями», а затем в окне редактирования свойств:

  1. Выберите вкладку свойств
  2. Нажмите на значок редактора контроля транзакций.

Вкладка «Свойства» окна «Редактирование преобразований» отображает значок редактора элементов управления транзакциями.

Шаг 6) В редакторе выражений введите выражение –

iif(deptno=20,tc_commit_before,tc_continue_transaction)

и нажмите ОК. Это означает, что если найден номер отдела 20, то транзакция должна быть подтверждена в целевой системе, в противном случае — продолжена текущая обработка.

Редактор выражений, содержащий условие IIF, которое выполняется перед строкой с номером отдела 20.

Шаг 7) В предыдущем окне нажмите кнопку ОК. Теперь условие сохранено на вкладке «Свойства» преобразования.

Вкладка «Свойства» окна «Редактирование преобразований» после сохранения условия управления транзакцией.

Теперь сохраните карту.ping и выполнить его после создания сессии и рабочих процессов. Эта картаping Данные будут зафиксированы в целевой системе всякий раз, когда в данных будет обнаружен отдел с номером 20.

Эффективные и неэффективные преобразования в сфере управления транзакциями

Эта трансформация является генератором транзакций. Она отбрасывает любые границы транзакций, поступающие из вышестоящего потока, и определяет новые собственные границы для всего, что находится ниже по потоку, поэтому ее положение в конвейере имеет такое же значение, как и ее состояние.

Она называется высокоэффективным для цели, когда создаваемые ею границы все еще достигают этой цели, и неэффективно Когда последующее преобразование отбрасывает эти границы. Согласно руководству по преобразованиям Informatica PowerCenter, следующие объекты отбрасывают границы входящих транзакций:

  • Агрегатор Столяр, РангСортировщик или пользовательское преобразование, область действия которого — все входные данные.
  • Пользовательское преобразование, настроенное для генерации транзакций.
  • Еще одно преобразование управления транзакциями
  • Преобразование с несколькими входными группами, подключенное к более чем одной точке управления транзакцией на вышестоящем уровне.

Неэффективность для целевого объекта не делает его бесполезным. Преобразование, область действия которого ограничена транзакцией, по-прежнему использует границы, определенные выше по потоку, поэтому одно и то же преобразование может быть эффективным для сортировщика и неэффективным для таблицы, находящейся за ним.

На картеping При наличии нескольких целей объект может быть эффективен против одной цели и неэффективен против другой. Картаping Остается действительным, пока каждая цель связана с эффективным преобразованием управления транзакциями, и становится недействительным, как только одна цель перестает быть таковой. Конструктор сообщает, какие преобразования неэффективны для целей при отображении.ping сохранено или проверено.

Правила и рекомендации по преобразованию системы управления транзакциями

Большинство проблем с этим преобразованием проявляются во время выполнения, а не на этапе проектирования, поэтому перед созданием сессии стоит проверить следующие моменты.

  • Возвращаемое значение является строгим. Если условие оценивается как любое другое, кроме «подтвердить», «откатить» или «продолжить», служба интеграции завершает сессию с ошибкой.
  • TC_CONTINUE_TRANSACTION — это резервный вариант. Каждая ветвь функции IIF() должна где-то заканчиваться, а параметр continue — это значение, которое оставляет текущую транзакцию нетронутой.
  • Тип цели имеет значение. Преобразование управления транзакциями, подключенное к любой целевой системе, кроме реляционной, XML- или динамической MQSeries, неэффективно для этой целевой системы.
  • Состояние может использовать только то, что до него доходит. В редакторе управления транзакциями доступны только порты, связанные с преобразованием, его переменные порты и встроенные переменные.
  • Частота фиксации транзакций — это компромисс. Условие, которое срабатывает почти для каждой строки, сводит на нет преимущества буферизации, в то время как условие, которое почти никогда не срабатывает, вновь вводит период потери данных, для закрытия которого и было добавлено преобразование.
  • Проверьте журнал сеанса. В журнале фиксируются фактически выполненные точки фиксации, что является самым быстрым способом подтвердить, что условие работало должным образом. настройка производительности.

Часто задаваемые вопросы (FAQ)

Интервал фиксации транзакции устанавливается после фиксированного количества строк, заданного в сессии. Условие управления транзакцией фиксирует сами данные, поэтому точка фиксации определяется бизнес-правилом, а не количеством строк.

В руководстве по преобразованиям Informatica PowerCenter указано, что преобразование Transaction Control, подключенное к любой целевой системе, кроме реляционной, XML или динамической MQSeries, неэффективно для этой целевой системы.

Да. Создайте его в конструкторе преобразований или отметьте «Сделать многоразовым» на вкладке «Преобразования» существующего преобразования. Каждая картаping тогда возникает то же самое условие, поэтому изменение правила затрагивает их всех одновременно.

Машинное обучение на основе исторических журналов сессий может выявлять нагрузки, в которых частота фиксации транзакций коррелирует с длительным временем выполнения или штормами откатов. Это предположение пока является гипотезой, поэтому проверьте его на реальном запуске, прежде чем изменять условие.

Copilot может создать шаблон IIF() и напомнить вам имена пяти переменных, но он не знает имен ваших портов или бизнес-правил. Рассматривайте полученный результат как отправную точку и проверяйте его в редакторе выражений.

Стратегия обновления определяет, что происходит со строкой, присваивая ей метки «вставить», «обновить», «удалить» или «отклонить». Управление транзакциями определяет, когда записанные строки становятся постоянными. Эти две стратегии отвечают на разные вопросы и часто используются вместе.

Cloud Data Integration поставляется со своим собственным преобразованием Transaction Control, содержащим те же переменные commit, roll back и continue. Основная идея проектирования сохраняется, но объект создается в облачной карте (Cloud Map).ping В режиме конструктора, а не в клиенте PowerCenter.

Строки, записанные после последнего подтверждения в данной транзакции, отбрасываются. Все, что было подтверждено ранее, остается в целевой системе, поэтому расположение точек подтверждения определяет, сколько работы может стоить ошибка.

Подведем итог этой публикации следующим образом: