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.

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.
Steg 2) Sedan på kartanping
- Välj Transformation-menyn
- Välj skapa alternativ
Menysökvägen som används för att starta guiden är markerad i nästa skärmbild.
Steg 3) I fönstret Skapa transformation
- Välj routertransformation
- Ange ett namn för transformationen "rtr_deptno_10"
- 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.
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.
Steg 6) Double klicka på Routertransformationen och sedan i dess transformationsegenskap
- Välj gruppfliken
- Ange gruppnamnet "deptno_20"
- Klicka på gruppfiltervillkoret
Fliken Grupper med den nya gruppen tillagd visas härnäst.
Steg 7) I uttrycksredigeraren anger du filtervillkoret deptno=20 och väljer OK-knappen. Redigeraren som innehåller detta villkor visas nedan.
Steg 8) Välj OK-knappen i gruppfönstret. Villkoret visas nu mot gruppen, som nästa skärmdump visar.
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.
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.








