Трансформация на Joiner в Informatica с ПРИМЕР

⚡ Умно обобщение

Трансформацията на свързващия елемент в Informatica е активен, свързан обект, който съединява два хетерогенни източника при съвпадащо условие, кеширайки главния конвейер в паметта, докато подробният конвейер преминава през него.

  • 🧩 Майстор и детайл: Два входни канала захранват трансформацията, а разделът „Портове“ решава кой от тях действа като главен.
  • 💾 Главният файл е кеширан: Главният конвейер винаги е вграден в индекс и кеш за данни, така че по-малкият източник принадлежи там.
  • 🔗 Четири вида съединяване: Нормалният, главният външен, детайлният външен и пълният външен определят кои несъответстващи редове ще оцелят след съединението.
  • 🧪 Разработен пример: EMP и DEPT се свързват в deptno с нормално съединение и се зареждат в EMP_DEPTNAME.
  • Само равенство: Условието за съединение сравнява портове с оператора equals и двата порта трябва да споделят един и същ тип данни.
  • Сортиран вход: Предварителното сортиране на двата конвейера на портовете за условия намалява входните и изходните данни от диска по време на сесията.

Трансформация на Joiner в Informatica

Какво е Joiner Transformation?

Трансформацията Joiner е активна и свързана трансформация, която ви предоставя възможност за създаване на съединения в Informatica. Съединенията, създадени с помощта на трансформацията Joiner, са подобни на съединенията в базите данни. Предимството на трансформацията Joiner е, че съединенията могат да се създават за хетерогенни системи (различни бази данни).

В трансформацията Joiner има два източника, които ще използваме за съединения. Тези два източника се наричат

  • Главен източник
  • Източник на подробности

В свойствата на трансформацията Joiner можете да изберете кой източник на данни може да бъде главен и кой източник може да бъде източник на детайли.

По време на изпълнение, главният източник се кешира в паметта с цел обединяване. Затова се препоръчва да се избере източникът с по-малко записи като главен източник. Главният конвейер се съхранява в два кеша: индексен кеш за стойностите, използвани в условието за обединяване, и кеш за данни за останалите данни от редовете.

Видове съединения в трансформацията на свързващи елементи

Свойството „Тип съединение“ в раздела „Свойства“ определя какво се случва с редове, които не намират съвпадение. Следните съединения могат да бъдат създадени с помощта на трансформация „Съединител“.

  1. Главно външно присъединяване – При главно външно съединение, всички записи от източника на детайли се връщат от съединението и се връщат само съответстващи редове от главния източник.
  2. Детайлно външно съединение – При външно съединение на детайли, само съвпадащи редове се връщат от източника на детайли, а всички редове от главния източник се връщат.
  3. Пълно външно съединяване – При пълно външно съединение се връщат всички записи и от двата източника.
  4. Нормално присъединяване – При нормално съединение, от двата източника се връщат само съвпадащи редове.

Главните външни и детайлните външни съединения са еквивалентни на левите външни съединения в SQL: всеки от тях запазва всеки ред от един източник и само съвпаденията от другия. Таблицата по-долу сравнява четирите типа с техните SQL еквиваленти.

Тип присъединяване Редове, запазени от главния Редовете са запазени от детайлите SQL еквивалент
Нормално присъединяване Само съвпадения Само съвпадения Вътрешно присъединяване
Главно външно присъединяване Само съвпадения Всички редове Ляво външно съединение на източника на детайлите
Детайлно външно съединение Всички редове Само съвпадения Ляво външно съединение на главния източник
Пълно външно съединяване Всички редове Всички редове Пълно външно съединяване

Типът съединение е свойство, а не структурен избор, така че може да бъде променен по-късно, без да се преизгражда картата.ping или повторно свързване на портове.

Как да използваме трансформация на Joiner в Informatica

В този пример ще съединим таблиците emp и dept, използвайки трансформация Joiner. Следвайте осемте стъпки по-долу в Картата.ping Designer.

Стъпка 1) Създайте нова целева таблица EMP_DEPTNAME в базата данни, използвайки скрипта по-долу, и импортирайте таблицата в Informatica targets.

Изтеглете горния файл 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, след което в прозореца Edit Transformations

  1. Изберете раздела състояние
  2. Кликнете върху иконата за добавяне на ново условие
  3. Изберете deptno в списъка с основни и подробни колони

Разделът „Условие“ вече съдържа условието за единично съединение на deptno.

Раздел „Условие“ на трансформацията Joiner с избрано deptno в колоните master и detail

Стъпка 6) След това в същия прозорец

  1. Изберете раздела свойства
  2. Изберете „Нормално съединение“ като тип съединение
  3. Изберете бутона OK

След това се показва разделът „Свойства“ с зададения тип съединение.

Раздел „Свойства“ на трансформацията „Съединител“ с тип съединение, зададен на „Нормално съединение“

За оптимизация на производителността, ние присвояваме главния източник към конвейера на таблицата източник, който има по-малко записи. За да изпълним тази задача:

Стъпка 7) Double щракнете върху трансформацията Joiner, за да отворите прозореца Edit Transformations, и след това

  1. Изберете раздела портове
  2. Изберете която и да е колона от определен източник, който искате да направите главен
  3. Изберете OK

Разделът „Портове“ маркира избрания конвейер като главен, както е показано по-долу.

Раздел „Портове“ на трансформацията Joiner с главен флаг, зададен спрямо един изходен конвейер

Стъпка 8) Свържете съответните колони от трансформацията Joiner с целевата таблица. Картатаping сега се изпълнява от двата източника чрез съединението в EMP_DEPTNAME.

Съединени колони, свързани от jnr_emp_dept към целевата таблица EMP_DEPTNAME

Сега запазете картатаping и го изпълнете след създаването на сесия намлява работния процес за него. Съединението ще бъде създадено с помощта на Informatica Joiner и съответните данни ще бъдат извлечени от двете таблици.

Свойства на трансформацията на Joiner

Разделът „Свойства“ съдържа повече от типа на съединението. Настройките по-долу контролират колко памет използва съединението и къде се записват кеш файловете.

Настройка Какво контролира
Тип присъединяване Нормален, Главен външен, Детайлен външен или Пълен външен. Решава кои несъответстващи редове да се запазят.
Условие за присъединяване Списъкът с двойки портове тип „master-detail“ в сравнение с оператора „equals“. Няколко условия се комбинират с „AND“.
Сортиран вход Декларира, че и двата конвейера вече пристигат сортирани по портовете за условие, което позволява на услугата за интеграция да минимизира входните и изходните данни на диска.
Главен ред за сортиране Редът на сортиране на основните изходни данни, използван заедно със сортирания вход.
Директория на кеша Директория, в която се създават индексните файлове и файловете с кеш данни. По подразбиране е променливата на процеса $PMCacheDir.
Размер на кеша за данни на Joiner Размер на кеша за данни, съдържащ данните от главния ред. Стойността по подразбиране е „Автоматично“, което позволява на услугата за интеграция да го оразмери.
Размер на кеша на индекса на Joiner Размер на индексния кеш, съдържащ стойностите на главното условие. Стойността по подразбиране е Автоматично.
Обхват на трансформацията Прилага съединението към всяка транзакция, към всички входящи данни или към обхват на ниво ред.

Сортираният вход е настройката, към която си струва да се стремим първо. Когато и двата конвейера пристигнат подредени по портове за условие, услугата за интеграция не е необходимо да съхранява целия главен източник, преди да започне съпоставянето, което е същият принцип, прилаган по време на настройка на производителността на други кеширани трансформации.

Правила и ограничения на трансформацията на свързващите елементи

Някои ограничения се появяват само когато картатаping е валидиран, така че е по-евтино да ги знаете, преди портовете да бъдат свързани.

  • Само равенство. Условието за съединение сравнява портове с оператора „еквален“. Оператори за сравнение като „по-голямо от“, „по-малко от“ или „не е равно на“ не се приемат в условието.
  • Съвпадащи типове данни. И двата порта в едно условие трябва да имат един и същ тип данни. Дизайнерът валидира това, така че несъответстващите колони трябва първо да бъдат конвертирани, обикновено чрез трансформация на израз.
  • Няма стратегия за актуализиране нагоре по веригата. Трансформация тип „Съединител“ не може да се използва, когато някой от входните конвейери съдържа трансформация тип „Стратегия за актуализиране“.
  • Няма последователност Generator директно пред него. Свързване на последователност Generator Трансформацията непосредствено преди Joiner не се поддържа.
  • Кеширането не може да се изключи. Главният конвейер винаги е кеширан, поради което по-малкият източник принадлежи на главната страна и защо оразмеряването на кеша е важно при големи съединения.

Свързването на три източника изисква две Joiner трансформации, свързани помежду си, защото всяка от тях приема точно един главен и един подробен конвейер. Когато вторият източник е малка референтна таблица, четена ред по ред, a Трансформация на търсенето често е по-простият дизайн.

Въпроси и Отговори

Два. Всеки свързващ елемент приема един главен и един подробен конвейер, така че свързването на три източника означава свързване на два от тях във верига: изходът на първия става входен конвейер на втория. Като цяло, n източника се нуждаят от n минус един.

Когато и двете таблици се намират в една и съща релационна база данни, квалификаторът на източника (Source Qualifier) ​​прехвърля това съединение надолу към базата данни, което напълно избягва кеширането. Използвайте свързващия елемент (Joiner) само когато двата източника са хетерогенни или вече са в отделни конвейери (pavelines).

Кешът на индексите съхранява стойностите на главния порт, посочени в условието за съединение, а кешът на данните съхранява останалите данни от главния ред, върнати от съединението. И двата се изграждат само от главния конвейер, никога от конвейера за детайли.

Не. Null в който и да е от портовете прави условието неуспешно, точно както в SQL, така че тези редове се третират като несъответстващи. Заменете null стойностите със стойност по подразбиране нагоре по веригата, когато се очаква да се съединят.

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

Да, и този хетерогенен случай е основната причина за съществуването на трансформацията. Конвейер с плосък файл и релационен конвейер се свързват на съвпадащи портове, точно както биха направили две таблици в базата данни, защото съединението се случва вътре в услугата за интеграция.

Асистентите с изкуствен интелект профилират и двата източника, за да предложат кандидат-ключове за свързване, да оценят броя на редовете, така че по-малката страна да бъде избрана за главна, и да маркират изкривени или високонулеви колони, които биха довели до разрушаване на резултатния набор. Съветниците, базирани на машинно обучение, също така класират опциите за оразмеряване на кеша.

Copilot бързо изготвя еквивалентния SQL код и преобразуванията на типове данни, което съкращава работата по подготовката на портове. Той не може да вижда размерите на кеша или броя на редовете, така че проверявайте всяко предложение спрямо картата.ping преди да го запазите.

Обобщете тази публикация с: