Ranger transformasjon i Informatica med EKSEMPEL
⚡ Smart oppsummering
Rangtransformasjon i Informatica er et aktivt, tilkoblet objekt som bare beholder de øverste eller nederste N radene i hver gruppe, og tilordner hver overlevende rad en posisjon gjennom sin automatiske RANKINDEX-utgangsport.

Hva er rangeringstransformasjon?
Rangtransformasjon er en aktiv og tilkoblet transformasjon som utfører filtrering av data basert på gruppe og rang. Hvis du for eksempel ønsker å få ti poster med ansatte som har høyest lønn, kan den typen filtrering gjøres med rangtransformasjonen.
Rangtransformasjon gir også funksjonen for å rangere basert på grupper. Hvis du for eksempel vil få de ti beste lønnede ansatte avdelingsvis, vil den gruppenping kan gjøres med denne transformasjonen.
Rangeringstransformasjon er en aktiv transformasjon, da den påvirker antall utdatarader.
Rank-transformasjonen har en utgangsport som den bruker for å tilordne en rang til radene. Denne porten heter RANKINDEX, og designeren oppretter den automatisk så snart transformasjonen legges til i kartping.
Fordi rangeringen må sammenligne hver rad i en gruppe før den kan avgjøre hvilke rader som vinner, mellomlagrer integrasjonstjenesten de innkommende dataene. Gruppeverdier går inn i en indeksbuffer, og resten av raddataene går inn i en databuffer, på samme måte som en mellomlagret Snekker transformasjon har sin hovedpipeline.
Porter i en rangtransformasjon
Før det utarbeidede eksemplet, hjelper det å vite hva hvert portflagg på Porter-fanen faktisk gjør, fordi to av dem gjør den virkelige jobben med denne transformasjonen.
| port~~POS=TRUNC | Hva det gjør |
|---|---|
| Inngang (I) | Mottar en kolonne fra oppstrømstransformasjonen. Hver kolonne som er koblet til Rank-transformasjonen er en inndataport. |
| Utgang (O) | Sender en kolonne videre til neste transformasjon eller til målet. |
| Variabel (V) | Holder en lokal beregning inne i transformasjonen, akkurat som i en uttrykkstransformasjon. |
| Rangering (R) | Markerer den ene kolonnen rangeringen beregnes på. Bare én port i transformasjonen kan bære dette flagget. |
| Gruppe av | Starter rangeringen på nytt for hver enkelt verdi, slik at et topp-tre-filter returnerer tre rader per gruppe i stedet for tre rader totalt. |
| RANGERINGSINDEKS | En port kun for utdata opprettet av designeren. Den lagrer rangeringsposisjonen til hver rad i gruppen og kan stå ukoblet. |
Rangering kan kun gjøres på én enkelt port, så et krav som «høyeste lønn, deretter lengste tjenestetid» krever at den avgjørende verdien utarbeides oppstrøms i stedet for en port med andre rang.
Slik bruker du rangtransformasjon i Informatica
Kravet vårt er å laste inn de tre øverste lønnede ansatte for hver avdeling. Vi vil implementere dette ved hjelp av rangtransformasjon. Arbeid deg gjennom de åtte trinnene nedenfor i kartet.ping Designer.
Trinn 1) Lag et kartping har kilde-EMP og mål-EMP_TARGET. Begge definisjonene ligger nå på lerretet, som vist nedenfor.
Trinn 2) Så på kartetping
- Velg transformasjonsmeny
- Velg opprettingsalternativ
Transformasjonsmenyen med Opprett-alternativet vises deretter.
Trinn 3) I opprett transformasjonsvinduet
- Velg rangeringstransformasjon
- Skriv inn transformasjonsnavnet "rnk_salary"
- Velg Opprett-knappen
Trinn 4) Rangtransformasjonen vil bli opprettet på kartetping, velg ferdig-knappen i vinduet. Det tomme rnk_salary-objektet vises nå på lerretet.
Trinn 5) Koble til alle portene fra kildekvalifikator til Rang-transformasjonen, slik at hver ansattkolonne er tilgjengelig for rangering.
Trinn 6) Double Klikk på rangtransformasjonen, så åpnes vinduet «rediger transformasjon». I dette vinduet
- Velg egenskapsmenyen
- Velg "Top"-alternativet fra Top/Bottom-egenskapen
- Skriv inn 3 i antall rangeringer
Fanen Egenskaper viser nå Topp med tre rangeringer, som skjermbildet viser.
Trinn 7) I "rediger transformasjon"-vinduet igjen
- Velg kategorien porter
- Velg gruppe etter alternativ for kolonnen Avdelingsnummer
- Velg Rangering i lønnskolonnen
- Velg ok-knappen
Porter-fanen har nå gruppeflagget på avdelingsnummeret og R-flagget på lønn.
Trinn 8) Koble portene fra Rank-transformasjonen til måltabellen. Kartetping kjører nå fra EMP gjennom rnk_salary til EMP_TARGET.
Lagre kartet nåping og utfør den etter å ha opprettet en Session og arbeidsflytKildekvalifikatoren vil hente alle postene, men rangtransformasjonen vil bare overføre poster med tre høye lønninger for hver avdeling.
Egenskaper for rangtransformasjon
Egenskaper-fanen som ble brukt i trinn 6 inneholder mer enn de to innstillingene som eksemplet endrer. Innstillingene nedenfor kontrollerer hvor mange rader som overlever, hvordan strenger sammenlignes og hvor hurtigbufferfilene skrives.
| Eiendom | Hva den kontrollerer |
|---|---|
| Topp bunn | Om de høyeste eller laveste verdiene beholdes for den rangerte kolonnen. Eksemplet bruker Topp. |
| Antall rangeringer | Hvor mange rader returneres per gruppe? Eksemplet bruker 3, så hver avdeling returnerer tre ansatte. |
| Sammenligning av store og små bokstaver | Om strengsammenligninger bruker store og små bokstaver under rangering. Det spiller bare rolle når rangeringsporten inneholder tekst. |
| Hurtigbufferkatalog | Katalogen der indeks- og databufferfilene opprettes. Standardverdien er prosessvariabelen $PMCacheDir. |
| Størrelse på rangdatabuffer | Størrelsen på databufferen som inneholder raddataene. Standardinnstillingen er Auto, som lar integrasjonstjenesten angi størrelsen på den. |
| Størrelse på rangindeksbuffer | Størrelsen på indeksbufferen som inneholder gruppeverdiene. Standardinnstillingen er Auto. |
| Transformasjonsomfang | Bruker rangeringen på hver transaksjon eller på alle innkommende data. |
| Tracing-nivå | Mengde detaljer som skrives til øktloggen: Kortfattet, Normal, Utførlig initialisering eller Utførlige data. |
Cache-størrelse er innstillingen som er verdt å se på igjen på store kilder. Når cachene er for små, overfører Integration Service til disk, noe som er noe av det første som sjekkes under ytelsesjustering av et kartping.
Rangtransformasjon vs. aggregatortransformasjon
Begge transformasjonene er aktive, begge mellomlagrer inputen sin og begge tilbyr Group By-porter, så det er lett å finne feil port. Forskjellen er hva som kommer ut av dem.
| Sammenligningspunkt | Rangtransformasjon | Aggregatortransformasjon |
|---|---|---|
| Formål | Returnerer de øverste eller nederste N komplette radene i hver gruppe | Returnerer beregnede verdier som SUM, AVG, MAX eller MIN per gruppe |
| Rader returnert | Opptil antall ranger per gruppe, med alle kolonnene intakte | Normalt én sammendragsrad per gruppe |
| Ekstra port lagt til | RANKINDEX, som holder posisjonen til hver rad | none |
| Rangert eller aggregert kolonne | Én port markert som rangport | Et hvilket som helst antall porter som bærer aggregerte uttrykk |
Enkelt sagt, en Aggregatortransformasjon svarer på «hva er den høyeste lønnen i denne avdelingen», mens rangtransformasjon svarer på «hvilke ansatte tjener den». Når bare et delsett av rader må forkastes under en enkel betingelse og ingen rekkefølge er involvert, vil en Filtertransformasjon er det billigere valget, fordi det ikke trenger noen hurtigbuffer i det hele tatt.








