Столярне перетворення в Informatica з ПРИКЛАДОМ

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

Перетворення об'єднувача в Informatica - це активний, пов'язаний об'єкт, який об'єднує два різнорідні джерела за певною умовою, кешуючи головний конвеєр у пам'яті, поки через нього проходить детальний конвеєр.

  • 🧩 Майстер та деталі: Два вхідні конвеєри забезпечують перетворення, а вкладка «Порти» вирішує, який з них діє як головний.
  • 💾 Майстер кешовано: Головний конвеєр завжди вбудований в кеш індексу та даних, тому менший вихідний код належить туди.
  • 🔗 Чотири типи з'єднання: Звичайний, Головний зовнішній, Детальний зовнішній та Повний зовнішній визначають, які незрівнянні рядки витримають об'єднання.
  • 🧪 Приклад роботи: EMP та DEPT об'єднуються в deptno звичайним об'єднанням та завантажуються в EMP_DEPTNAME.
  • 🇧🇷 Тільки рівність: Умова об'єднання порівнює порти за допомогою оператора дорівнює, і обидва порти повинні мати один тип даних.
  • ⚡ Відсортований вхід: Попереднє сортування обох конвеєрів на портах умов скорочує вхідні та вихідні дані з диска під час сеансу.

Перетворення Joiner в Informatica

Що таке Joiner Transformation?

Перетворення Joiner — це активне та зв'язане перетворення, яке надає вам можливість створювати об'єднання в Informatica. Об'єднання, створені за допомогою перетворення Joiner, подібні до об'єднань у базах даних. Перевага перетворення Joiner полягає в тому, що об'єднання можна створювати для гетерогенних систем (різних баз даних).

У перетворенні Joiner є два джерела, які ми будемо використовувати для об'єднань. Ці два джерела називаються

  • Головне джерело
  • Джерело деталей

У властивостях перетворення Joiner можна вибрати, яке джерело даних може бути основним, а яке – джерелом деталей.

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

Типи з'єднань у перетворенні Joiner

Властивість «Тип об’єднання» на вкладці «Властивості» визначає, що відбувається з рядками, для яких не знайдено збігів. Наведені нижче об’єднання можна створити за допомогою перетворення «Об’єднувач».

  1. Головне зовнішнє приєднання – У головному зовнішньому об’єднанні всі записи з джерела детальної інформації повертаються об’єднанням, а з головного джерела повертаються лише відповідні рядки.
  2. Деталь зовнішнього з'єднання – У зовнішньому з’єднанні деталей з джерела деталей повертаються лише відповідні рядки, а з головного джерела – усі рядки.
  3. Повне зовнішнє з'єднання – При повному зовнішньому об’єднанні повертаються всі записи з обох джерел.
  4. Нормальне приєднання – Під час звичайного об’єднання з обох джерел повертаються лише відповідні рядки.

Зовнішні з'єднання Master та Detail еквівалентні лівим зовнішнім з'єднанням. SQL: кожен зберігає кожен рядок одного джерела та лише збіги з іншого. У таблиці нижче чотири типи порівнюються з їхніми еквівалентами в SQL.

Тип приєднання Рядки, що зберігаються від головного Рядки виключені з деталей Еквівалент SQL
Нормальне приєднання Тільки відповідність Тільки відповідність Внутрішнє з'єднання
Головне зовнішнє приєднання Тільки відповідність Усі рядки Ліве зовнішнє з'єднання на джерелі деталей
Деталь зовнішнього з'єднання Усі рядки Тільки відповідність Ліве зовнішнє з'єднання на головному джерелі
Повне зовнішнє з'єднання Усі рядки Усі рядки Повне зовнішнє з'єднання

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

Як використовувати перетворення столяра в Informatica

У цьому прикладі ми об'єднаємо таблиці emp та dept за допомогою перетворення Joiner. Виконайте вісім кроків, наведених нижче на карті.ping Дизайнер.

Крок 1) Створіть нову цільову таблицю EMP_DEPTNAME у базі даних за допомогою наведеного нижче скрипта та імпортуйте таблицю в цільові об'єкти Informatica.

Завантажте наведений вище файл emp_deptname.sql

Крок 2) Створіть новий картаping та імпортуйте вихідні таблиці «EMP» та «DEPT» і цільову таблицю, яку ми створили на попередньому кроці. Усі три визначення тепер знаходяться на полотні, як показано нижче.

картаping Полотно дизайнера з джерелами EMP та DEPT і визначенням цільового параметра EMP_DEPTNAME

Крок 3) У меню «Трансформація» виберіть опцію «Створити». Потім у вікні «Створити трансформацію», показаному нижче,

  1. Виберіть з'єднувальне перетворення
  2. Введіть ім’я перетворення «jnr_emp_dept»
  3. Виберіть опцію створення

Створити вікно трансформації з вибраним Joiner та введеним ім'ям jnr_emp_dept

Крок 4) Перетягніть усі стовпці з обох Кваліфікатори джерела до перетворення Joiner. Обидва конвеєри тепер пов'язані з jnr_emp_dept, як показано на знімку екрана.

Стовпці з обох кваліфікаторів джерел, перетягнуті в перетворення об'єднувача jnr_emp_dept

Крок 5) Double клацніть на перетворенні Joiner, потім у вікні Редагувати перетворення

  1. Виберіть вкладку умови
  2. Клацніть значок «Додати нову умову».
  3. Виберіть deptno у списку основних і детальних стовпців

Вкладка «Умова» тепер містить умову єдиного об’єднання для deptno.

Вкладка «Умова» перетворення «Ставщик» з вибраним номером відділу в стовпцях «Головний» та «Деталі»

Крок 6) Потім у тому ж вікні

  1. Виберіть вкладку властивостей
  2. Виберіть тип з’єднання «Звичайне з’єднання»
  3. Натисніть кнопку «ОК»

Далі відображається вкладка «Властивості» з вибраним типом об’єднання.

Вкладка «Властивості» перетворення «З’єднувач» з типом з’єднання «Звичайне з’єднання»

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

Крок 7) Double клацніть на перетворенні Joiner, щоб відкрити вікно Редагувати перетворення, а потім

  1. Виберіть вкладку портів
  2. Виберіть будь-який стовпець певного джерела, який ви хочете зробити основним
  3. Виберіть OK

На вкладці «Порти» вибраний конвеєр позначено як головний, як показано нижче.

Вкладка «Порти» перетворення Joiner з прапорцем master, встановленим для одного вихідного конвеєра.

Крок 8) Зв'яжіть відповідні стовпці з перетворення Joiner з цільовою таблицею. Картаping тепер виконується з обох джерел через об'єднання з EMP_DEPTNAME.

Об'єднані стовпці, пов'язані з jnr_emp_dept з цільовою таблицею EMP_DEPTNAME

Тепер збережіть картуping і виконати його після створення Сесія та робочий для цього. Об'єднання буде створено за допомогою Informatica Joiner, а відповідні дані будуть отримані з обох таблиць.

Властивості перетворення столяра

Вкладка «Властивості» містить більше параметрів, ніж просто тип об’єднання. Наведені нижче налаштування контролюють обсяг пам’яті, який використовується об’єднанням, і місце запису кеш-файлів.

Установка Що воно контролює
Тип приєднання Звичайний, Головний зовнішній, Детальний зовнішній або Повний зовнішній. Визначає, які незбігаючі рядки зберігаються.
Умова приєднання Список пар портів типу "головний-детальний" у порівнянні з оператором "дорівнює". Кілька умов поєднуються за допомогою оператора "І".
Відсортований вхід Оголошує, що обидва конвеєри вже надходять відсортованими за портами умов, що дозволяє службі інтеграції мінімізувати вхідні та вихідні дані на диску.
Головний порядок сортування Порядок сортування основних вихідних даних, що використовується разом із відсортованими вхідними даними.
Каталог кешу Каталог, у якому створюються файли індексу та кешу даних. За замовчуванням використовується змінна процесу $PMCacheDir.
Розмір кешу даних Joiner Розмір кешу даних, що містить дані головного рядка. Значення за замовчуванням – «Авто», що дозволяє службі інтеграції визначати його розмір.
Розмір кешу індексу Joiner Розмір кешу індексу, що містить значення головної умови. Значення за замовчуванням — «Авто».
Обсяг трансформації Застосовує об'єднання до кожної транзакції, до всіх вхідних даних або до області дії на рівні рядка.

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

Правила та обмеження перетворення столяра

Деякі обмеження з'являються лише тоді, коли на картіping перевірено, тому дешевше знати їх до того, як порти будуть пов'язані.

  • Тільки рівність. Умова об'єднання порівнює порти за допомогою оператора дорівнює. Оператори порівняння, такі як більше ніж, менше ніж або не дорівнює, не приймаються в умові.
  • Відповідні типи даних. Обидва порти в умові повинні мати однаковий тип даних. Конструктор перевіряє це, тому невідповідні стовпці потрібно спочатку перетворити, зазвичай за допомогою перетворення виразу.
  • Немає стратегії оновлення для вихідного коду. Перетворення Joiner не можна використовувати, якщо будь-який з вхідних конвеєрів містить перетворення Update Strategy.
  • Без послідовності Generator безпосередньо перед ним. Підключення послідовності Generator Трансформація безпосередньо перед об'єктом Joiner не підтримується.
  • Кешування не можна вимкнути. Головний конвеєр завжди кешується, тому менше джерело знаходиться на стороні головного конвеєра, і чому розмір кешу має значення для великих об'єднань.

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

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

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

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

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

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

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

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

Помічники ШІ профілюють обидва джерела, щоб запропонувати кандидати на ключі з'єднання, оцінюють кількість рядків, щоб менша сторона була обрана як головна, та позначають асиметричні або стовпці з високим значенням null, які можуть призвести до розриву результуючого набору. Консультанти на основі машинного навчання також ранжують параметри розміру кешу.

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

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