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.

  • 🧩 Mästare och detalj: Två inmatningspipelines matar transformationen, och fliken Portar avgör vilken som fungerar som master.
  • 💾 Mastern är cachad: Huvudpipelinen är alltid inbyggd i ett index- och datacache, så den mindre källan hör hemma där.
  • 🔗 Fyra kopplingstyper: Normal, Master Outer, Detalj Outer och Fullständig Outer avgör vilka omatchade rader som överlever kopplingen.
  • 🧪 Utarbetat exempel: EMP och DEPT sammanfogas på deptno med en vanlig koppling och laddas in i EMP_DEPTNAME.
  • ⚖️ Endast jämlikhet: Ett kopplingsvillkor jämför portar med equals-operatorn, och båda portarna måste dela en datatyp.
  • Sorterad inmatning: Att försortera båda pipelines på villkorsportarna avbryter diskinmatning och -utmatning under sessionen.

Joiner Transformation i Informatica

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.

  1. 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.
  2. Detalj yttre sammanfogning – I en detaljbaserad outer join returneras endast matchande rader från detaljkällan, och alla rader från huvudkällan returneras.
  3. Full ytterskarv – I en fullständig outer join returneras alla poster från båda källorna.
  4. 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.

Kartaping Designer-arbetsyta med EMP- och DEPT-källorna och måldefinitionen EMP_DEPTNAME

Steg 3) Från Transformationsmenyn väljer du alternativet Skapa. I fönstret Skapa transformation som visas nedan,

  1. Välj snickaromvandling
  2. Ange transformationsnamnet "jnr_emp_dept"
  3. Välj skapa alternativ

Skapa transformationsfönster med Joiner vald och namnet jnr_emp_dept angivet

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.

Kolumner från båda källkvalificerarna dras in i jnr_emp_dept Joiner-transformationen

Steg 5) Double klicka på Joiner-transformationen och sedan i fönstret Redigera transformationer

  1. Välj fliken villkor
  2. Klicka på ikonen Lägg till nytt villkor
  3. Välj avdnr i huvud- och detaljkolumnlistan

Fliken Villkor innehåller nu villkoret för en enda koppling på avd.

Fliken Villkor för Joiner-transformationen med avd.nr valt i huvud- och detaljkolumnerna

Steg 6) Sedan i samma fönster

  1. Välj egenskapsfliken
  2. Välj Normal koppling som kopplingstyp
  3. Välj OK-knappen

Fliken Egenskaper med den inställda kopplingstypen visas härnäst.

Fliken Egenskaper för Joiner-transformationen med kopplingstypen inställd på Normal koppling

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

  1. Välj fliken portar
  2. Välj valfri kolumn för en viss källa som du vill göra till en master
  3. Välj OK

Fliken Portar markerar den valda pipelinen som master, som visas nedan.

Fliken Portar i Joiner-transformationen med huvudflaggan inställd mot en källpipeline

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.

Kopplade kolumner länkade från jnr_emp_dept till måltabellen 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.

Vanliga frågor

Två. Varje Joiner accepterar en master- och en detail-pipeline, så att koppla samman tre källor innebär att kedja två av dem: utdata från den första blir en indata-pipeline för den andra. Generellt sett behöver n källor n minus ett.

När båda tabellerna finns i samma relationsdatabas. Källkvalificeraren skickar den kopplingen ner till databasen, vilket helt undviker cachning. Använd endast kopplingen när de två källorna är heterogena eller redan finns i separata pipelines.

Indexcachen lagrar huvudportvärdena som namnges i kopplingsvillkoret, och datacachen lagrar återstående huvudradsdata som returneras av kopplingen. Båda byggs endast från huvudpipelinen, aldrig från detaljpipelinen.

Nej. Ett nullvärde i endera porten gör att villkoret misslyckas, precis som det gör i SQL, så dessa rader behandlas som omatchade. Ersätt nullvärden med ett standardvärde uppströms när de ska anslutas.

Ja. Lägg till källdefinitionen på kartanping två gånger så att det finns två separata pipelines, mata sedan en till mastersidan och en till detaljsidan. Detta är det vanliga sättet att återställa en chefskolumn till ett anställds namn.

Ja, och det heterogena fallet är den främsta anledningen till att transformationen existerar. En platt filpipeline och en relationell pipeline ansluts på matchande portar precis som två databastabeller skulle göra, eftersom anslutningen sker inuti integrationstjänsten.

AI-assistenter profilerar båda källorna för att föreslå potentiella kopplingsnycklar, uppskatta radantal så att den mindre sidan väljs som huvudsida och flagga sneda kolumner eller kolumner med högt nullvärde som skulle explodera resultatmängden. Maskininlärningsbaserade rådgivare rangordnar också alternativ för cachestorlek.

Copilot utarbetar motsvarande SQL och datatypkonverteringar snabbt, vilket förkortar arbetet med att förbereda portar. Den kan inte se dina cachestorlekar eller radantal, så verifiera alla förslag mot kartan.ping innan du sparar den.

Sammanfatta detta inlägg med: