Rangordna transformation i Informatica med EXEMPEL
⚡ Smart sammanfattning
Ranktransformation i Informatica är ett aktivt, anslutet objekt som endast behåller de översta eller nedersta N raderna i varje grupp och tilldelar varje överlevande rad en position via sin automatiska RANKINDEX-utdataport.
Vad är Rank Transformation?
Rangtransformation är en aktiv och sammankopplad transformation som utför filtrering av data baserat på grupp och rangordning. Om du till exempel vill få tio poster med anställda med högst lön kan den typen av filtrering göras med rangtransformationen.
Rangomvandling ger också funktionen att rangordna baserat på grupper. Om du till exempel vill få de tio högsta avlönade per avdelning, den gruppenping kan göras med denna omvandling.
Rangtransformation är en aktiv transformation, eftersom den påverkar antalet utdatarader.
Rank-transformationen har en utdataport genom vilken den tilldelar en rangordning till raderna. Den porten heter RANKINDEX, och Designern skapar den automatiskt så snart transformationen läggs till i kartaping.
Eftersom rankningen måste jämföra varje rad i en grupp innan den kan avgöra vilka rader som vinner, cachar integrationstjänsten inkommande data. Gruppvärdena hamnar i en indexcache och resten av raddata hamnar i en datacache, på samma sätt som en cachelagrad [kod/kod/etc]. Snickarförvandling innehar sin huvudpipeline.
Portar i en rangtransformation
Innan det bearbetade exemplet är det bra att veta vad varje portflagga på fliken Portar faktiskt gör, eftersom två av dem gör det verkliga arbetet med denna omvandling.
| Port typ | Vad den gör |
|---|---|
| Ingång (I) | Tar emot en kolumn från den uppströms transformationen. Varje kolumn som är länkad till Rank-transformationen är en indataport. |
| Utgång (O) | Skickar en kolumn vidare till nästa transformation eller till målet. |
| Variabel (V) | Håller en lokal beräkning inuti transformationen, precis som i en uttryckstransformation. |
| Rang (R) | Markerar den kolumn som rankningen beräknas på. Endast en enda port i transformationen kan bära denna flagga. |
| Grupp av | Startar om rankningen för varje distinkt värde, så ett filter för de tre bästa returnerar tre rader per grupp istället för tre rader totalt. |
| RANKINDEX | En port som endast är avsedd för utdata och skapas av designern. Den lagrar rankningspositionen för varje rad inom sin grupp och kan lämnas opererad. |
Rankning kan endast göras på en enda hamn, så ett krav som "högsta lön, sedan längsta tjänstgöring" behöver det avgörande värdet förberett uppströms snarare än en hamn med andra rang.
Hur man använder rangtransformation i Informatica
Vårt krav är att ladda de 3 högsta avlönade anställda för varje avdelning; vi kommer att implementera detta med hjälp av rangtransformation. Arbeta dig igenom de åtta stegen nedan i kartan.ping Designer.
Steg 1) Skapa en kartaping med käll-EMP och mål-EMP_TARGET. Båda definitionerna finns nu på arbetsytan, som visas nedan.
Steg 2) Sedan på kartanping
- Välj transformationsmeny
- Välj skapa alternativ
Transformationsmenyn med alternativet Skapa visas härnäst.
Steg 3) I fönstret Skapa transformation
- Välj rank transformation
- Ange transformationsnamnet "rnk_salary"
- Välj knappen Skapa
Steg 4) Ranktransformationen kommer att skapas på kartanping, välj knappen klar i fönstret. Det tomma rnk_salary-objektet visas nu på arbetsytan.
Steg 5) Anslut alla portar från källkvalificerare till Rank-transformationen, så att varje medarbetarkolumn är tillgänglig för rangordning.
Steg 6) Double Klicka på Rank-transformationen så öppnas fönstret "Redigera transformation". I det här fönstret
- Välj egenskapsmeny
- Välj "Top" alternativet från Top/Bottom-egenskapen
- Ange 3 i antalet led
Fliken Egenskaper visar nu Topp med tre rankningar, som skärmdumpen visar.
Steg 7) I fönstret "redigera transformation" igen
- Välj fliken portar
- Välj grupp för alternativ för kolumnen Avdelningsnummer
- Välj Rank i lönekolumnen
- Välj OK-knappen
Fliken Portar har nu gruppflaggan på avdelningsnumret och R-flaggan på lön.
Steg 8) Anslut portarna från Rank-transformationen till måltabellen. Kartanping körs nu från EMP via rnk_salary till EMP_TARGET.
Spara nu kartanping och kör den efter att ha skapat en session och arbetsflödeKällkvalificeraren hämtar alla poster, men Rank-transformationen godkänner endast poster med tre höga löner för varje avdelning.
Egenskaper för rangomvandling
Fliken Egenskaper som användes i steg 6 innehåller fler än de två inställningar som exemplet ändrar. Inställningarna nedan styr hur många rader som finns kvar, hur strängar jämförs och vart cachefilerna skrivs.
| Fast egendom | Vad den kontrollerar |
|---|---|
| Topp / botten | Om de högsta eller lägsta värdena behålls för den rankade kolumnen. Exemplet använder Topp. |
| Antal rangordningar | Hur många rader returneras per grupp. Exemplet använder 3, så varje avdelning returnerar tre anställda. |
| Jämförelse av skiftlägeskänsliga strängar | Huruvida strängjämförelser använder gemener och versaler vid rangordning. Det spelar bara roll när rangordningsporten innehåller text. |
| Cachekatalog | Katalogen där index- och datacachefilerna skapas. Standardvärdet är processvariabeln $PMCacheDir. |
| Storlek på rangdatacache | Storleken på datacachen som innehåller raddata. Standardinställningen är Auto, vilket låter integrationstjänsten ange storleken på den. |
| Storlek på cache för rangindex | Storleken på indexcachen som innehåller gruppvärdena. Standardinställningen är Auto. |
| Transformationsomfattning | Tillämpar rankningen på varje transaktion eller på all inkommande data. |
| Tracingnivå | Mängd detaljer som skrivs till sessionsloggen: Kortfattad, Normal, Utförlig initialisering eller Utförliga data. |
Cachestorlek är inställningen som är värd att återkomma till på stora källor. När cachen är för liten överför integrationstjänsten till disk, vilket är en av de första sakerna som kontrolleras under prestandajustering av en kartaping.
Rangtransformation kontra aggregatortransformation
Båda transformationerna är aktiva, båda cachar sina indata och båda erbjuder Group By-portar, så det är lätt att hitta fel port. Skillnaden är vad som kommer ut ur dem.
| Punkt av jämförelse | Rangomvandling | Aggregatortransformation |
|---|---|---|
| Syfte | Returnerar de översta eller nedersta N kompletta raderna i varje grupp | Returnerar beräknade värden såsom SUMMA, AVG, MAX eller MIN per grupp |
| Rader returnerade | Upp till antalet rangordningar per grupp, med alla deras kolumner intakta | Normalt en sammanfattningsrad per grupp |
| Extra port tillagd | RANKINDEX, som håller positionen för varje rad | Ingen |
| Rankad eller aggregerad kolumn | En port flaggad som rankport | Valfritt antal portar som bär aggregerade uttryck |
Enkelt uttryckt, en Aggregatortransformation svarar på "vilken är den högsta lönen på den här avdelningen", medan Rank-transformationen svarar på "vilka anställda tjänar den". När endast en delmängd av rader måste kasseras under ett enkelt villkor och ingen ordningsföljd är inblandad, en Filtertransformation är det billigare valet, eftersom det inte behöver någon cache alls.









