Joiner Transformation i Informatica med EXEMPEL
⚡ Smart sammanfattning
Joiner-transformationen i Informatica är det aktiva, anslutna objektet som sammanfogar två heterogena källor med matchande villkor och cachar huvudpipelinen i minnet medan detaljpipelinen strömmar genom den.

Vad är Joiner Transformation?
Joiner-transformation är en aktiv och sammankopplad transformation som ger dig möjlighet att skapa joins i Informatica. Joins som skapas med Joiner-transformation liknar joins i databaser. Fördelen med Joiner-transformation är att joins kan skapas för heterogena system (olika databaser).
I Joiner-transformationen finns det två källor som vi kommer att använda för joins. Dessa två källor kallas
- Mästarkälla
- Detaljkälla
I egenskaperna för Joiner-transformationen kan du välja vilken datakälla som kan vara huvudkälla och vilken källa som kan vara detaljkälla.
Under körningen cachas huvudkällan i minnet för kopplingsändamål. Därför rekommenderas det att välja källan med färre poster som huvudkälla. Huvudpipelinen lagras i två cacher: en indexcache för de värden som används i kopplingsvillkoret och en datacache för resten av raddata.
Typer av kopplingar i Joiner-transformation
Egenskapen Join Type på fliken Egenskaper avgör vad som händer med rader som inte hittar någon matchning. Följande kopplingar kan skapas med hjälp av Joiner-transformation.
- Master ytterskarv – I en master outer join returneras alla poster från detaljkällan av joinen och endast matchande rader från masterkällan returneras.
- Detalj yttre sammanfogning – I en detaljbaserad outer join returneras endast matchande rader från detaljkällan, och alla rader från huvudkällan returneras.
- Full ytterskarv – I en fullständig outer join returneras alla poster från båda källorna.
- Normal anslutning – I en vanlig koppling returneras endast matchande rader från båda källorna.
Master yttre och detalj yttre kopplingar är likvärdiga med vänster yttre kopplingar i SQL: var och en behåller varje rad från en källa och endast matchningarna från den andra. Tabellen nedan jämför de fyra typerna med deras SQL-motsvarigheter.
| Gå med typ | Rader sparade från mastern | Rader undanhållna från detaljer | SQL-ekvivalent |
|---|---|---|---|
| Normal anslutning | Endast matchning | Endast matchning | Inre koppling |
| Master ytterskarv | Endast matchning | Alla rader | Vänster yttre koppling på detaljkällan |
| Detalj yttre sammanfogning | Alla rader | Endast matchning | Vänster yttre koppling på huvudkällan |
| Full ytterskarv | Alla rader | Alla rader | Full ytterskarv |
Kopplingstypen är en egenskap, inte ett strukturellt val, så den kan ändras senare utan att kartan behöver byggas omping eller omlänka några portar.
Hur man använder Joiner-transformation i Informatica
I det här exemplet kommer vi att koppla samman emp- och dept-tabellerna med hjälp av Joiner-transformationen. Arbeta dig igenom de åtta stegen nedan i mappningen.ping Designer.
Steg 1) Skapa en ny måltabell EMP_DEPTNAME i databasen med hjälp av skriptet nedan och importera tabellen till Informatica-mål.
Ladda ner filen emp_deptname.sql ovan
Steg 2) Skapa en ny kartaping och importera källtabellerna "EMP" och "DEPT" och måltabellen som vi skapade i föregående steg. Alla tre definitionerna finns nu på arbetsytan, som visas nedan.
Steg 3) Från Transformationsmenyn väljer du alternativet Skapa. I fönstret Skapa transformation som visas nedan,
- Välj snickaromvandling
- Ange transformationsnamnet "jnr_emp_dept"
- Välj skapa alternativ
Steg 4) Dra och släpp alla kolumner från båda Källkvalificerare till Joiner-transformationen. Båda pipelines är nu länkade till jnr_emp_dept, som skärmdumpen visar.
Steg 5) Double klicka på Joiner-transformationen och sedan i fönstret Redigera transformationer
- Välj fliken villkor
- Klicka på ikonen Lägg till nytt villkor
- Välj avdnr i huvud- och detaljkolumnlistan
Fliken Villkor innehåller nu villkoret för en enda koppling på avd.
Steg 6) Sedan i samma fönster
- Välj egenskapsfliken
- Välj Normal koppling som kopplingstyp
- Välj OK-knappen
Fliken Egenskaper med den inställda kopplingstypen visas härnäst.
För prestandaoptimering tilldelar vi huvudkällan till källtabellens pipeline som har färre poster. För att utföra denna uppgift:
Steg 7) Double klicka på Joiner-transformationen för att öppna fönstret Redigera transformationer och sedan
- Välj fliken portar
- Välj valfri kolumn för en viss källa som du vill göra till en master
- Välj OK
Fliken Portar markerar den valda pipelinen som master, som visas nedan.
Steg 8) Länka relevanta kolumner från Joiner-transformationen till måltabellen.ping körs nu från båda källorna genom kopplingen till EMP_DEPTNAME.
Spara nu kartanping och kör den efter att ha skapat en session och arbetsflöde för den. Kopplingen kommer att skapas med hjälp av Informatica Joiner, och relevant information kommer att hämtas från båda tabellerna.
Joiner-transformationsegenskaper
Fliken Egenskaper innehåller mer än kopplingstypen. Inställningarna nedan styr hur mycket minne kopplingen använder och vart cachefilerna skrivs.
| Att lägga plattor | Vad den kontrollerar |
|---|---|
| Gå med Typ | Normal, Huvudytter, Detaljytter eller Helytter. Avgör vilka omatchade rader som ska behållas. |
| Sammanfogningsvillkor | Listan över master-till-detalj-portpar jämfört med lika-operatorn. Flera villkor kombineras med OCH. |
| Sorterad inmatning | Deklarerar att båda pipelines redan anländer sorterade efter villkorsportarna, vilket gör att integrationstjänsten minimerar diskinmatning och -utmatning. |
| Huvudsorteringsordning | Sorteringsordningen för huvudkälldata, använd tillsammans med sorterad indata. |
| Cachekatalog | Katalogen där index- och datacachefilerna skapas. Standardvärdet är processvariabeln $PMCacheDir. |
| Joiner-datacachestorlek | Storleken på datacachen som innehåller huvudradsdata. Standardinställningen är Auto, vilket låter integrationstjänsten ange storleken på den. |
| Joiner Index Cache-storlek | Storleken på indexcachen som innehåller huvudvillkorsvärdena. Standardinställningen är Auto. |
| Transformationsomfattning | Tillämpar kopplingen på varje transaktion, på all inkommande data eller på ett omfång på radnivå. |
Sorterad inmatning är den inställning som är värd att sträva efter först. När båda pipelines anländer ordnade efter villkorsportarna behöver inte integrationstjänsten hålla hela huvudkällan innan matchningen börjar, vilket är samma princip som tillämpas under prestandajustering av andra cachade transformationer.
Regler och begränsningar för Joiner-transformation
Vissa begränsningar uppstår bara när kartanping är validerad, så det är billigare att känna till dem innan portarna länkas.
- Endast jämlikhet. Ett kopplingsvillkor jämför portar med lika med-operatorn. Jämförelseoperatorer som större än, mindre än eller inte lika med accepteras inte i villkoret.
- Matchande datatyper. Båda portarna i ett villkor måste ha samma datatyp. Designern validerar detta, så kolumner som inte matchar måste konverteras först, vanligtvis i en uttryckstransformation.
- Ingen uppdateringsstrategi uppströms. En Joiner-transformation kan inte användas när någon av inmatningspipelinerna innehåller en Update Strategy-transformation.
- Ingen sekvens Generator direkt före den. Koppla en sekvens Generator Transformation omedelbart uppströms om Joiner stöds inte.
- Cachning kan inte stängas av. Huvudpipelinen cachas alltid, vilket är anledningen till att den mindre källan hör hemma på huvudsidan och varför cachestorleken är viktig vid stora kopplingar.
Att koppla ihop tre källor kräver två Joiner-transformationer kedjade ihop, eftersom var och en accepterar exakt en huvud- och en detaljpipeline. Där den andra källan är en liten referenstabell som läses rad för rad istället, en Uppslagstransformation är ofta den enklare designen.







