Routertransformation i Informatica: Exempel på flera villkor

⚡ Smart sammanfattning

Routertransformation i Informatica är ett aktivt, anslutet objekt som testar inkommande rader mot flera gruppfiltervillkor samtidigt och skickar varje rad till matchande utdatagrupp, eller till standardgruppen.

  • 🔀 Flera villkor: En router ersätter en kedja av filtertransformationer genom att testa flera villkor i ett enda pass.
  • 📦 Gruppstruktur: En enda ingångsgrupp matar de användardefinierade utgångsgrupperna plus en automatisk standardgrupp.
  • 🗃️ Standardgrupp: Rader som inte uppfyller alla villkor hamnar här, så avvisade data kan fortfarande samlas in istället för att förloras.
  • 🧪 Utarbetat exempel: En grupp med namnet deptno_20 som har villkoret deptno=20 laddar endast avdelning 20 rader i EMP_TARGET.
  • ♻️ överlappningping regler: En rad som uppfyller två villkor skickas en gång till varje matchande utdatagrupp.
  • Effektivitet: Källkoden läses en gång, vilket gör en router billigare än flera filtertransformationer som läser samma rader.

Routertransformation i Informatica

Vad är routertransformation?

Routertransformation är en aktiv och ansluten transformation som liknar filtertransformation och används för att filtrera källdata.

Den ytterligare funktionen som tillhandahålls utöver filtrering är att även kasserad data (bortfiltrerad data) kan samlas in i kartan.ping, såväl som att flera filtervillkor kan tillämpas för att få flera datamängder.

Till exempel, när vi filtrerar data för deptno = 10, kan vi också få de poster där deptno inte är lika med 10. Så, routertransformation ger flera utgångsgrupper, och varje utgångsgrupp kan ha sitt eget filtervillkor.

Dessutom finns det en standardgrupp. Denna standardgrupp innehåller de postmängder som inte uppfyller något av gruppvillkoren. Om du till exempel har skapat två grupper för filtervillkoren avd.nr=10 respektive avd.nr=20, kommer de poster som inte har avd.nr 10 och 20 att skickas till denna standardgrupp.

Kort sagt, data som avvisas av filtergrupperna kommer att samlas in av denna standardgrupp, och ibland kan det finnas ett behov av att lagra dessa avvisade data. I sådana scenarier kan standardutdatagruppen vara användbar.

För att tillåta flera filtervillkor tillhandahåller routertransformationen gruppalternativet.

  • Det finns en standardinmatningsgrupp som tar emot indata.
  • Det finns också en standardutdatagrupp som tillhandahåller all den data som inte skickas via något filtervillkor.
  • För varje filtervillkor skapas en utdatagrupp i Routertransformationen. Du kan ansluta olika mål till dessa olika grupper.

Komponenter i routertransformation

Innan kartan byggsping, det är bra att känna till de fyra delar som designern skapar åt dig. En routertransformation består av en ingångsgrupp, en uppsättning utgångsgrupper, portarna inuti dem och de villkor som avgör var varje rad ska placeras.

Komponent Vad den gör
Ingångsgrupp Den enda startpunkten för transformationen. Varje inkommande rad anländer hit en gång, oavsett hur många utdatagrupper som finns.
Användardefinierad utgångsgrupp En grupp du skapar och namnger själv, till exempel avd.nr_20. Varje grupp har sitt eget gruppfiltervillkor.
Standardutgångsgrupp Skapas automatiskt så snart den första användardefinierade gruppen finns. Den har inget filtervillkor och kan inte redigeras eller tas bort.
Gruppfiltervillkor Ett booleskt uttryck skrivet i uttrycksredigeraren. Rader för vilka det utvärderas till SANT lämnas genom den gruppen.

Designern kopierar portdefinitionerna från ingångsgruppen till varje utgångsgrupp, så portarna behöver inte återskapas grupp för grupp. Två regler följer av denna design:

  • Rader kan dupliceras. Om en rad uppfyller mer än ett gruppfiltervillkor skickas den en gång till varje grupp som matchar. Detta är den vanliga anledningen till att ett mål får fler rader än källan.
  • Rader kan tas bort. Om standardgruppen lämnas okopplad försvinner raderna som når den helt enkelt från pipelinen, vilket är det snabbaste sättet att kassera oönskad data.

Routertransformation kontra filtertransformation

Båda objekten testar data mot ett villkor, och båda är aktiva transformationer, så valet mellan dem beror på hur många villkor som är involverade och om de avvisade raderna spelar roll.

Punkt av jämförelse Filtertransformation Routertransformation
Villkor per objekt One En eller många, var och en i sin egen grupp
Avvisade rader Borttagen och otillgänglig Samlat i standardgruppen
Utgångsgrupper En enda utmatningspipeline En pipeline per grupp, plus standardgruppen
Källläsningar En avläsning per filter när villkoren är kedjade En avläsning för alla förhållanden
Typisk användning Tar bort rader som aldrig behövs Dela upp en källa i flera mål

Att testa tre villkor med filtertransformationer innebär tre objekt, och i en kedjad design utvärderas samma källrader upprepade gånger. En router gör samma arbete i ett enda pass, vilket är anledningen till att det generellt är det mer effektiva alternativet när ett andra villkor uppträder. För ett enda bortkastningsvillkor är det enklare Filtertransformation passar fortfarande bättre.

Hur man skapar en routertransformation i Informatica

Genomgången nedan bygger en router som skickar anställda på avdelning 20 till en måltabell. Följ de nio stegen i ordning i kartan.ping Designer.

Steg 1) Skapa en kartaping med källan "EMP" och målet "EMP_TARGET". Kartanping Designer-arbetsplattan innehåller sedan källdefinitionen, dess källkvalificerare och måldefinitionen, som visas nedan.

Kartaping Designer-arbetsyta som innehåller EMP-källan, dess källkvalificerare och måldefinitionen för EMP_TARGET

Steg 2) Sedan på kartanping

  1. Välj Transformation-menyn
  2. Välj skapa alternativ

Menysökvägen som används för att starta guiden är markerad i nästa skärmbild.

Transformationsmenyn öppnades i kartanping Designer med alternativet Skapa valt

Steg 3) I fönstret Skapa transformation

  1. Välj routertransformation
  2. Ange ett namn för transformationen "rtr_deptno_10"
  3. Välj Skapa alternativ

Steg 4) Routertransformationen kommer att skapas på kartanpingVälj alternativet "Klar" i fönstret. Fönstret "Skapa transformation" som används i båda stegen visas nedan.

Skapa transformationsfönstret med routern vald och namnet rtr_deptno_10 angivet.

Steg 5) Dra och släpp alla kolumner från Källkval till routertransformation. Varje port är nu länkad till det nya objektet, som skärmdumpen visar.

Alla kolumner för källkvalificering dras in i routertransformationen rtr_deptno_10

Steg 6) Double klicka på Routertransformationen och sedan i dess transformationsegenskap

  1. Välj gruppfliken
  2. Ange gruppnamnet "deptno_20"
  3. Klicka på gruppfiltervillkoret

Fliken Grupper med den nya gruppen tillagd visas härnäst.

Fliken Grupper i routertransformationen med den användardefinierade gruppen deptno_20 tillagd

Steg 7) I uttrycksredigeraren anger du filtervillkoret deptno=20 och väljer OK-knappen. Redigeraren som innehåller detta villkor visas nedan.

Uttrycksredigeraren som innehåller gruppfiltervillkoret deptno=20 för gruppen deptno_20

Steg 8) Välj OK-knappen i gruppfönstret. Villkoret visas nu mot gruppen, som nästa skärmdump visar.

Gruppfiltervillkor sparat mot gruppen deptno_20 i fönstret Redigera transformationer

Steg 9) Anslut portarna från gruppen deptno_20 i Routertransformationen till måltabellens portar. Den färdiga kartanping körs från källan genom gruppen till EMP_TARGET.

Portar i utdatagruppen deptno_20 länkade till måltabellen EMP_TARGET

Nu, när du kör den här kartanping, kommer de filtrerade posterna att laddas in i måltabellen.

Bästa praxis för routertransformation och vanliga fel

Kartanping ovan använder en grupp, vilket döljer det mesta av beteendet som orsakar supportärenden senare. Punkterna nedan beskriver vad som ändras när en andra grupp dyker upp.

  • Se upp för dubbletter av rader. Gruppvillkor utesluter inte varandra. Att skriva sal > 1000 i en grupp och deptno = 20 i en annan innebär att en anställd som matchar båda laddas två gånger. Gör villkoren exklusiva, eller acceptera dubbleringen medvetet.
  • Anslut standardgruppen när ärendet avvisas. Rader som inte uppfyller något villkor går förlorade om inte standardgruppen är kopplad till ett mål eller en avvisningsfil. Granskningsbara laddningar behåller dem vanligtvis.
  • Namnge grupper efter regeln, inte målet. Exempelgruppen avd.nr_20 är tydlig; en grupp som heter grupp1 gör det inte. Observera att själva transformationen heter rtr_avd.nr_10 i den här genomgången medan gruppen filtrerar på avd.nr 20, vilket är precis den typ av avvikelse som en namngivningsstandard förhindrar.
  • Filtrera innan du skickar rutten där det är möjligt. Rader som ingen grupp någonsin kommer att vilja ha är billigare att ta bort i källkvalificeringsfrågan än att bära med sig till routern.
  • Behandla inte routern som en koppling. Den delar upp en pipeline i flera. Att sammanföra grenarna igen kräver en unionsomvandling, och att kombinera två olika källor kräver Snickarförvandling.

En grupp vars villkor returnerar NULL snarare än SANT eller FALSKT behandlas som icke-matchande, så rader med nullvärden i den testade kolumnen hamnar i standardgruppen. Att hantera nullvärden explicit i villkoret undviker den överraskningen under prestandajustering och testning.

Vanliga frågor

Ja. Integrationstjänsten utvärderar varje gruppfiltervillkor mot varje rad, så en rad som uppfyller två villkor skickas en gång genom varje matchande grupp.ping villkor är den vanliga orsaken till oväntade dubbletter av rader.

Raderna som dirigeras till den tas bort från pipelinen. Att lämna standardgruppen okopplad är standardsättet att ignorera data som inget villkor vill ha, och det är också anledningen till att avvisade rader ibland försvinner obemärkt.

Nej. Den visas automatiskt när den första användardefinierade gruppen skapas, har inget gruppfiltervillkor och Designern tillåter inte att den redigeras eller tas bort. Endast användardefinierade grupper kan läggas till, bytas namn på eller tas bort.

Exakt en. Varje rad går in genom den enda inmatningsgruppen, och designern kopierar dess portdefinitioner till varje utmatningsgrupp så att portarna inte behöver återskapas för varje gren av kartan.ping.

Med en Union-transformation, som accepterar flera ingångsgrupper med matchande portar och returnerar en enda utgående pipeline, delar en router upp data; endast en Union sammanför grenarna till ett mål igen.

Ordningen på de anslutna utdatagrupperna anger i vilken ordning integrationstjänsten utvärderar villkoren. Den hindrar inte en rad från att matcha senare grupper, så ordningen påverkar sekvensen snarare än vilka rader som väljs.

AI-assistenter profilerar källdata för att visa hur värden faktiskt fördelas, föreslår sedan delningsvillkor och flaggar överlappningar som skulle duplicera rader. Maskininlärningsbaserade rådgivare identifierar också kolumner med höga nullfrekvenser innan dessa rader tyst når standardgruppen.

Copilot utarbetar snabbt booleska uttryck och matchande SQL, vilket sparar tid på repetitiva regler. Den kan inte se dina portnamn eller datavolymer, så validera alla förslag i uttrycksredigeraren innan du sparar kartan.ping.

Sammanfatta detta inlägg med: