Трансформація керування транзакціями в Informatica (приклад)

⚡ Розумний підсумок

Трансформація контролю транзакцій в Informatica — це активний, підключений об'єкт, який фіксує або відкатує рядки під час відображення карти.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Операції фіксації (commit) та відкату (rollback) мають суттєве значення, оскільки вони гарантують доступність даних.

Під час обробки великого обсягу даних може виникнути ситуація, коли потрібно зафіксувати дані в цільовому об'єкті. Якщо зафіксувати дані занадто часто, це буде накладним навантаженням для системи. Якщо зафіксувати їх занадто пізно, то у разі невдачі існує ймовірність втрати даних.

Отже, для забезпечення гнучкості передбачено перетворення «Контроль транзакцій». Замість того, щоб залишати точку фіксації на рівні сеансу за замовчуванням, воно дозволяє умову всередині картаping вирішувати, рядок за рядком, де закінчується одна транзакція і починається наступна.

Команди TCL Commit та Rollback

У цьому перетворенні доступно п'ять вбудованих змінних для обробки операції. Умова має повертати одну з п'яти для кожного рядка, а значення поза цим списком призводить до того, що служба інтеграції завершить сеанс невдало.

TC_CONTINUE_TRANSACTION

У TC_CONTINUE_TRANSACTION жодних операцій не виконується, процес завантаження даних продовжується як є. Це значення виразу за замовчуванням.

TC_COMMIT_BEFORE

У TC_COMMIT_BEFORE, коли цей прапорець встановлено, виконується фіксація (commit) перед обробкою поточного рядка. Потім починається нова транзакція, і поточний рядок записується в цільовий об'єкт.

TC_COMMIT_AFTER

У TC_COMMIT_AFTER обробляється поточний рядок, потім виконується фіксація (commit) і починається наступна транзакція.

TC_ROLLBACK_BEFORE

У TC_ROLLBACK_BEFORE спочатку виконується відкат, а потім дані обробляються для запису.

TC_ROLLBACK_AFTER

У TC_ROLLBACK_AFTER дані обробляються, а потім виконується відкат.

Властивості перетворення керування транзакціями

Об’єкт налаштовується у вікні «Редагувати трансформації», яке містить ті ж чотири вкладки, що й інші трансформації PowerCenter. Знання того, яка вкладка відповідає якому налаштуванню, позбавляє вас багатьох пошуків під час наведеного нижче покрокового керівництва.

таб Що там налаштовано
Перетворення Назва перетворення, його опис та чи є об'єкт придатним для повторного використання.
порти Вхідні та вихідні порти, зазвичай створюються шляхом перетягування стовпців з перетворення вище по течії.
властивості Умова керування транзакцією, що відкривається маленькою стрілкою поруч із полем, та TracРівень, записаний до журналу сеансу.
Розширення метаданих Користувацькі метадані зберігаються разом із трансформацією в репозиторії.

Два налаштування виконують справжню роботу. Умова контролю транзакцій містить вираз, який зазвичай є перевіркою IIF(), що повертає одну з п'яти змінних. TracРівень визначає, скільки деталей про перетворення відображається в журналі сеансу під час дослідження запуску.

Одне налаштування знаходиться поза межами трансформації. Коли картаping містить ефективне перетворення контролю транзакцій, сеанс виконується з Тип фіксації встановлено значення «Визначено користувачем» на вкладці «Властивості» Сесія, замість Target або типи вихідних комітів, що використовують фіксований інтервал комітів.

Як використовувати перетворення керування транзакціями в Informatica

У цьому прикладі ми передамо дані до цільового об'єкта, коли умова dept no = 20 буде визнана істинною.

Крок 1) Створити картуping з EMP як джерелом та EMP_TARGET як ціллю. Картаping Потім дизайнерське полотно містить джерело, його кваліфікатор джерела та цільове визначення.

картаping Полотно дизайнера з джерелом EMP, його кваліфікатором джерела та визначенням цілі EMP_TARGET

Крок 2) Створіть нове перетворення за допомогою меню «Перетворення», а потім у вікні «Створити перетворення» виконайте такі дії:

  1. Виберіть елемент керування транзакціями як нове перетворення
  2. Введіть назву трансформації “tc_commit_dept20”
  3. Виберіть опцію створення

Створити вікно трансформації з вибраним «Контроль транзакцій» та введеним ім'ям tc_commit_dept20

Крок 3) Буде створено трансформацію «Контроль транзакцій», натисніть кнопку «Готово». Новий об’єкт тепер відображається на полотні поруч із кваліфікатором джерела.

Трансформація контролю транзакцій tc_commit_dept20, створена поруч із кваліфікатором джерела

Крок 4) Перетягніть усі стовпці з кваліфікатора джерела до перетворення «Контроль транзакцій», а потім зв’яжіть усі стовпці з перетворення «Контроль транзакцій» з цільовою таблицею. Конвеєр тепер виконується так: джерело → кваліфікатор джерела → tc_commit_dept20 → EMP_TARGET.

Стовпці кваліфікатора джерела, пов'язані через tc_commit_dept20 з таблицею EMP_TARGET

Крок 5) Double натисніть на перетворення «Контроль транзакцій», а потім у вікні редагування властивостей:

  1. Виберіть вкладку властивості
  2. Клацніть значок редактора керування транзакціями

Вкладка «Властивості» вікна «Редагувати перетворення» з піктограмою редактора керування транзакціями

Крок 6) У редакторі виразів введіть вираз –

iif(deptno=20,tc_commit_before,tc_continue_transaction)

і виберіть OK. Це означає, що якщо знайдено відділ № 20, то транзакцію слід зафіксувати в цільовому об'єкті, інакше поточна обробка продовжиться.

Редактор виразів, що містить умову IIF, яка виконується перед рядком з номером відділу 20

Крок 7) Виберіть OK у попередньому вікні. Умова тепер зберігається на вкладці «Властивості» перетворення.

Вкладка «Властивості» вікна «Редагувати перетворення» після збереження умови керування транзакціями

Тепер збережіть картуping і виконати його після створення сеансу та робочих процесів. Ця картаping зафіксує дані в цільовому об'єкті щоразу, коли в даних буде знайдено відділ з номером 20.

Ефективні та неефективні трансформації контролю транзакцій

Трансформація є генератором транзакцій. Вона відкидає будь-які межі транзакцій, що надходять з вищезазначеного потоку, та визначає власні нові межі для всього нижчезазначеного потоку, тому її позиція в конвеєрі має таке ж значення, як і її стан.

Це називається ефективний для цілі, коли межі, які вона створює, все ще досягають цієї цілі, та неефективний коли пізніша трансформація скидає ці межі. Згідно з посібником з трансформації Informatica PowerCenter, такі об'єкти скидають межі вхідних транзакцій:

  • Агрегатор, Столярний, Ранг, Сортувальник або користувацьке перетворення, область дії якого — Усі вхідні дані
  • Налаштоване налаштування для створення транзакцій
  • Ще одне перетворення контролю транзакцій
  • Перетворення кількох груп вхідних даних, підключене до кількох точок керування транзакціями вище за течією

Неефективність для цілі не робить об'єкт марним. Нижнє перетворення, область дії якого дорівнює Транзакції, все ще використовує межі, визначені вище, тому те саме перетворення може бути ефективним для сортувальника та неефективним для таблиці після нього.

На картіping З кількома цілями об'єкт може бути ефективним для однієї цілі та неефективним для іншої. Картаping залишається дійсним, поки кожна ціль підключена до ефективного перетворення контролю транзакцій, і стає недійсним, як тільки одна ціль не підключена. Дизайнер повідомляє, які перетворення неефективні для цілей, коли картаping зберігається або підтверджується.

Правила та рекомендації щодо трансформації контролю транзакцій

Більшість проблем із цим перетворенням проявляються під час виконання, а не під час проектування, тому наведені нижче пункти варто перевірити перед побудовою сеансу.

  • Повернене значення є строгим. Якщо умова обчислюється як щось інше, окрім підтвердження, відкату або продовження, служба інтеграції завершує сеанс невдало.
  • TC_CONTINUE_TRANSACTION – це резервний варіант. Кожна гілка IIF() має десь закінчуватися, а continue — це значення, яке залишає поточну транзакцію недоторканою.
  • Тип цілі має значення. Перетворення керування транзакціями, підключене до будь-якої цілі, окрім реляційної, XML або динамічної цілі MQSeries, неефективне для цієї цілі.
  • Умова може використовувати лише те, що до неї доходить. У редакторі керування транзакціями доступні лише порти, пов'язані з перетворенням, його змінні порти та вбудовані змінні.
  • Частота комітів — це компроміс. Умова, яка виконує фіксацію майже кожного рядка, позбавляє переваг буферизації, тоді як умова, яка майже ніколи не спрацьовує, знову вводить вікно втрати даних, для закриття якого було додано перетворення.
  • Перевірте журнал сеансу. У журналі записуються фактично виконані точки фіксації, що є найшвидшим способом підтвердити належне виконання умови під час налаштування продуктивності.

Поширені запитання

Інтервал фіксації (commit interval) фіксує зміни після фіксованої кількості рядків, встановленої в сеансі. Умова керування транзакціями фіксує самі дані, тому точка фіксації відповідає бізнес-правилу, а не кількості рядків.

У посібнику з трансформації Informatica PowerCenter зазначено, що трансформація контролю транзакцій, пов'язана з будь-якою цільовою об'єктом, окрім реляційної, XML або динамічної цільової об'єкта MQSeries, є неефективною для цієї цільової об'єкта.

Так. Зберіть його в Розробнику трансформацій або поставте галочку біля опції «Зробити повторно використаним» на вкладці «Трансформація» існуючої карти. Кожна картаping тоді мають ту саму умову, тому зміна правила поширюється на всіх одночасно.

Машинне навчання на основі історичних журналів сеансів може виявляти навантаження, де частота фіксацій корелює з тривалим часом виконання або штормами відкату. Ця пропозиція все ще є гіпотезою, тому перевірте її на реальному запуску, перш ніж змінювати умову.

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

Стратегія оновлення визначає, що відбувається з рядком, позначаючи його тегами вставка, оновлення, видалення або відхилення. Контроль транзакцій визначає, коли записані рядки стають постійними. Ці два методи відповідають на різні запитання та часто використовуються разом.

Інтеграція Cloud Data Integration постачає власне перетворення Transaction Control з тими ж змінними commit, rollback та continue. Ідея дизайну зберігається, але об'єкт вбудований у хмарну карту.ping Designer, а не в клієнті PowerCenter.

Рядки, записані з моменту останнього коміту в цій транзакції, відкидаються. Все, що було закомічено раніше, залишається в цілі, тому розташування точок коміту визначає, скільки роботи може коштувати збій.

Підсумуйте цей пост за допомогою: