Трансформация на Joiner в Informatica с ПРИМЕР
⚡ Умно обобщение
Трансформацията на свързващия елемент в Informatica е активен, свързан обект, който съединява два хетерогенни източника при съвпадащо условие, кеширайки главния конвейер в паметта, докато подробният конвейер преминава през него.

Какво е Joiner Transformation?
Трансформацията Joiner е активна и свързана трансформация, която ви предоставя възможност за създаване на съединения в Informatica. Съединенията, създадени с помощта на трансформацията Joiner, са подобни на съединенията в базите данни. Предимството на трансформацията Joiner е, че съединенията могат да се създават за хетерогенни системи (различни бази данни).
В трансформацията Joiner има два източника, които ще използваме за съединения. Тези два източника се наричат
- Главен източник
- Източник на подробности
В свойствата на трансформацията Joiner можете да изберете кой източник на данни може да бъде главен и кой източник може да бъде източник на детайли.
По време на изпълнение, главният източник се кешира в паметта с цел обединяване. Затова се препоръчва да се избере източникът с по-малко записи като главен източник. Главният конвейер се съхранява в два кеша: индексен кеш за стойностите, използвани в условието за обединяване, и кеш за данни за останалите данни от редовете.
Видове съединения в трансформацията на свързващи елементи
Свойството „Тип съединение“ в раздела „Свойства“ определя какво се случва с редове, които не намират съвпадение. Следните съединения могат да бъдат създадени с помощта на трансформация „Съединител“.
- Главно външно присъединяване – При главно външно съединение, всички записи от източника на детайли се връщат от съединението и се връщат само съответстващи редове от главния източник.
- Детайлно външно съединение – При външно съединение на детайли, само съвпадащи редове се връщат от източника на детайли, а всички редове от главния източник се връщат.
- Пълно външно съединяване – При пълно външно съединение се връщат всички записи и от двата източника.
- Нормално присъединяване – При нормално съединение, от двата източника се връщат само съвпадащи редове.
Главните външни и детайлните външни съединения са еквивалентни на левите външни съединения в SQL: всеки от тях запазва всеки ред от един източник и само съвпаденията от другия. Таблицата по-долу сравнява четирите типа с техните SQL еквиваленти.
| Тип присъединяване | Редове, запазени от главния | Редовете са запазени от детайлите | SQL еквивалент |
|---|---|---|---|
| Нормално присъединяване | Само съвпадения | Само съвпадения | Вътрешно присъединяване |
| Главно външно присъединяване | Само съвпадения | Всички редове | Ляво външно съединение на източника на детайлите |
| Детайлно външно съединение | Всички редове | Само съвпадения | Ляво външно съединение на главния източник |
| Пълно външно съединяване | Всички редове | Всички редове | Пълно външно съединяване |
Типът съединение е свойство, а не структурен избор, така че може да бъде променен по-късно, без да се преизгражда картата.ping или повторно свързване на портове.
Как да използваме трансформация на Joiner в Informatica
В този пример ще съединим таблиците emp и dept, използвайки трансформация Joiner. Следвайте осемте стъпки по-долу в Картата.ping Designer.
Стъпка 1) Създайте нова целева таблица EMP_DEPTNAME в базата данни, използвайки скрипта по-долу, и импортирайте таблицата в Informatica targets.
Изтеглете горния файл emp_deptname.sql
Стъпка 2) Създайте нов картаping и импортирайте изходните таблици „EMP“ и „DEPT“ и целевата таблица, която създадохме в предишната стъпка. И трите дефиниции сега са на платното, както е показано по-долу.
Стъпка 3) От менюто „Трансформация“ изберете опцията „Създаване“. След това в прозореца „Създаване на трансформация“, показан по-долу,
- Изберете съединителна трансформация
- Въведете име на трансформация „jnr_emp_dept“
- Изберете опция за създаване
Стъпка 4) Плъзнете и пуснете всички колони от двете Квалификатори на източника към трансформацията Joiner. И двата конвейера вече са свързани към jnr_emp_dept, както е показано на екранната снимка.
Стъпка 5) Double щракнете върху трансформацията Joiner, след което в прозореца Edit Transformations
- Изберете раздела състояние
- Кликнете върху иконата за добавяне на ново условие
- Изберете deptno в списъка с основни и подробни колони
Разделът „Условие“ вече съдържа условието за единично съединение на deptno.
Стъпка 6) След това в същия прозорец
- Изберете раздела свойства
- Изберете „Нормално съединение“ като тип съединение
- Изберете бутона OK
След това се показва разделът „Свойства“ с зададения тип съединение.
За оптимизация на производителността, ние присвояваме главния източник към конвейера на таблицата източник, който има по-малко записи. За да изпълним тази задача:
Стъпка 7) Double щракнете върху трансформацията Joiner, за да отворите прозореца Edit Transformations, и след това
- Изберете раздела портове
- Изберете която и да е колона от определен източник, който искате да направите главен
- Изберете OK
Разделът „Портове“ маркира избрания конвейер като главен, както е показано по-долу.
Стъпка 8) Свържете съответните колони от трансформацията Joiner с целевата таблица. Картатаping сега се изпълнява от двата източника чрез съединението в EMP_DEPTNAME.
Сега запазете картатаping и го изпълнете след създаването на сесия намлява работния процес за него. Съединението ще бъде създадено с помощта на Informatica Joiner и съответните данни ще бъдат извлечени от двете таблици.
Свойства на трансформацията на Joiner
Разделът „Свойства“ съдържа повече от типа на съединението. Настройките по-долу контролират колко памет използва съединението и къде се записват кеш файловете.
| Настройка | Какво контролира |
|---|---|
| Тип присъединяване | Нормален, Главен външен, Детайлен външен или Пълен външен. Решава кои несъответстващи редове да се запазят. |
| Условие за присъединяване | Списъкът с двойки портове тип „master-detail“ в сравнение с оператора „equals“. Няколко условия се комбинират с „AND“. |
| Сортиран вход | Декларира, че и двата конвейера вече пристигат сортирани по портовете за условие, което позволява на услугата за интеграция да минимизира входните и изходните данни на диска. |
| Главен ред за сортиране | Редът на сортиране на основните изходни данни, използван заедно със сортирания вход. |
| Директория на кеша | Директория, в която се създават индексните файлове и файловете с кеш данни. По подразбиране е променливата на процеса $PMCacheDir. |
| Размер на кеша за данни на Joiner | Размер на кеша за данни, съдържащ данните от главния ред. Стойността по подразбиране е „Автоматично“, което позволява на услугата за интеграция да го оразмери. |
| Размер на кеша на индекса на Joiner | Размер на индексния кеш, съдържащ стойностите на главното условие. Стойността по подразбиране е Автоматично. |
| Обхват на трансформацията | Прилага съединението към всяка транзакция, към всички входящи данни или към обхват на ниво ред. |
Сортираният вход е настройката, към която си струва да се стремим първо. Когато и двата конвейера пристигнат подредени по портове за условие, услугата за интеграция не е необходимо да съхранява целия главен източник, преди да започне съпоставянето, което е същият принцип, прилаган по време на настройка на производителността на други кеширани трансформации.
Правила и ограничения на трансформацията на свързващите елементи
Някои ограничения се появяват само когато картатаping е валидиран, така че е по-евтино да ги знаете, преди портовете да бъдат свързани.
- Само равенство. Условието за съединение сравнява портове с оператора „еквален“. Оператори за сравнение като „по-голямо от“, „по-малко от“ или „не е равно на“ не се приемат в условието.
- Съвпадащи типове данни. И двата порта в едно условие трябва да имат един и същ тип данни. Дизайнерът валидира това, така че несъответстващите колони трябва първо да бъдат конвертирани, обикновено чрез трансформация на израз.
- Няма стратегия за актуализиране нагоре по веригата. Трансформация тип „Съединител“ не може да се използва, когато някой от входните конвейери съдържа трансформация тип „Стратегия за актуализиране“.
- Няма последователност Generator директно пред него. Свързване на последователност Generator Трансформацията непосредствено преди Joiner не се поддържа.
- Кеширането не може да се изключи. Главният конвейер винаги е кеширан, поради което по-малкият източник принадлежи на главната страна и защо оразмеряването на кеша е важно при големи съединения.
Свързването на три източника изисква две Joiner трансформации, свързани помежду си, защото всяка от тях приема точно един главен и един подробен конвейер. Когато вторият източник е малка референтна таблица, четена ред по ред, a Трансформация на търсенето често е по-простият дизайн.







