Ranger transformation i Informatica med EKSEMPEL
⚡ Smart opsummering
Rangtransformation i Informatica er et aktivt, forbundet objekt, der kun beholder de øverste eller nederste N rækker i hver gruppe og tildeler hver overlevende række en position via dens automatiske RANKINDEX-outputport.

Hvad er rangtransformation?
Rangtransformation er en aktiv og forbundet transformation, der udfører filtrering af data baseret på gruppe og rang. Hvis du for eksempel vil have ti poster med medarbejdere med den højeste løn, kan den slags filtrering udføres med rangtransformationen.
Rangtransformation giver også mulighed for at rangere baseret på grupper. Hvis du for eksempel vil have de ti højest lønnede medarbejdere fordelt på afdelinger, vil den gruppe...ping kan gøres med denne transformation.
Rangtransformation er en aktiv transformation, da den påvirker antallet af outputrækker.
Rank-transformationen har en outputport, hvormed den tildeler en rang til rækkerne. Denne port hedder RANKINDEX, og designeren opretter den automatisk, så snart transformationen tilføjes til kortping.
Fordi rangeringen skal sammenligne hver række i en gruppe, før den kan afgøre, hvilke rækker der vinder, cacher integrationstjenesten de indgående data. Gruppeværdier går ind i en indekscache, og resten af rækkedataene går ind i en datacache, på samme måde som en cachelagret Snedker transformation holder sin masterpipeline.
Porte i en rangtransformation
Før det udtænkte eksempel, er det nyttigt at vide, hvad hvert portflag på fanen Porte rent faktisk gør, fordi to af dem udfører det egentlige arbejde med denne transformation.
| Port typen | Hvad gør den |
|---|---|
| Indgang (I) | Modtager en kolonne fra den opstrøms transformation. Hver kolonne, der er linket til Rank-transformationen, er en inputport. |
| Udgang (O) | Sender en kolonne videre til den næste transformation eller til målet. |
| Variabel (V) | Indeholder en lokal beregning inde i transformationen, præcis som i en udtrykstransformation. |
| Rang (R) | Markerer den ene kolonne, som rangeringen beregnes på. Kun en enkelt port i transformationen kan bære dette flag. |
| Gruppe By | Genstarter rangeringen for hver enkelt værdi, så et top-tre-filter returnerer tre rækker pr. gruppe i stedet for tre rækker i alt. |
| RANGINDEKS | En port, der kun er beregnet til output, oprettet af designeren. Den gemmer rangeringen af hver række i sin gruppe og kan forblive uforbundet. |
Rangering kan kun foretages på én port, så et krav som "højeste løn, derefter længste anciennitet" kræver, at den afgørende værdi udarbejdes opstrøms i stedet for en port med anden rang.
Sådan bruger du rangtransformation i Informatica
Vores krav er at indlæse de 3 højest lønnede medarbejdere for hver afdeling; vi vil implementere dette ved hjælp af rangtransformation. Arbejd dig igennem de otte trin nedenfor i kortet.ping Designer.
Trin 1) Opret et kortping har kilde-EMP og mål-EMP_TARGET. Begge definitioner er nu placeret på lærredet, som vist nedenfor.
Trin 2) Så på kortetping
- Vælg transformationsmenu
- Vælg oprettelsesmulighed
Transformationsmenuen med Opret-indstillingen vises derefter.
Trin 3) I opret transformationsvinduet
- Vælg rang transformation
- Indtast transformationsnavnet "rnk_salary"
- Vælg knappen Opret
Trin 4) Rangtransformationen vil blive oprettet på kortetping, vælg knappen Færdig i vinduet. Det tomme rnk_salary-objekt vises nu på lærredet.
Trin 5) Tilslut alle portene fra kildekvalifikator til Rang-transformationen, så alle medarbejderkolonner er tilgængelige for rangering.
Trin 6) Double Klik på rangtransformationen, og vinduet "rediger transformation" åbnes. I dette vindue
- Vælg egenskabsmenu
- Vælg "Top" fra egenskaben Top/Bund
- Indtast 3 i antallet af rækker
Fanen Egenskaber viser nu Top med tre rangeringer, som skærmbilledet viser.
Trin 7) I vinduet "rediger transformation" igen
- Vælg fanen porte
- Vælg gruppe efter mulighed for kolonnen Afdelingsnummer
- Vælg Rang i lønkolonnen
- Vælg OK knap
Fanen Porte har nu gruppeflaget på afdelingsnummeret og R-flaget på løn.
Trin 8) Forbind portene fra Rank-transformationen til måltabellen. Kortetping kører nu fra EMP gennem rnk_salary til EMP_TARGET.
Gem nu kortetping og udføre den efter at have oprettet en Session og workflowKildekvalifikatoren henter alle poster, men rangtransformationen overfører kun poster med tre høje lønninger for hver afdeling.
Egenskaber for rangtransformation
Fanen Egenskaber, der blev brugt i trin 6, indeholder mere end de to indstillinger, som eksemplet ændrer. Indstillingerne nedenfor styrer, hvor mange rækker der overlever, hvordan strenge sammenlignes, og hvor cachefilerne skrives.
| Ejendom | Hvad den kontrollerer |
|---|---|
| Top bund | Om de højeste eller laveste værdier bevares for den rangerede kolonne. Eksemplet bruger Top. |
| Antal rangordninger | Hvor mange rækker returneres pr. gruppe? Eksemplet bruger 3, så hver afdeling returnerer tre medarbejdere. |
| Sammenligning af store og små bogstaver | Om strengsammenligninger respekterer store og små bogstaver under rangering. Det betyder kun noget, når rangporten indeholder tekst. |
| Cache-mappe | Mappe hvor indeks- og datacachefilerne oprettes. Standardværdien er procesvariablen $PMCacheDir. |
| Størrelse på rangdatacache | Størrelsen på den datacache, der indeholder rækkedataene. Standardindstillingen er Auto, hvilket giver integrationstjenesten mulighed for at dimensionere den. |
| Størrelse på rangindekscache | Størrelsen på indekscachen, der indeholder gruppeværdierne. Standardindstillingen er Auto. |
| Transformationsomfang | Anvender rangeringen på hver transaktion eller på alle indgående data. |
| Tracniveau | Mængden af detaljer, der skrives til sessionsloggen: Kortfattet, Normal, Udførlig initialisering eller Udførlige data. |
Cachestørrelse er den indstilling, der er værd at genoverveje på store kildekoder. Når cacherne er for små, overfører Integration Service til disken, hvilket er en af de første ting, der kontrolleres under præstationsindstilling af et kortping.
Rangtransformation vs. aggregatortransformation
Begge transformationer er aktive, begge cacher deres input, og begge tilbyder Group By-porte, så det er nemt at finde den forkerte. Forskellen er, hvad der kommer ud af dem.
| Punkt af sammenligning | Rangtransformation | Aggregatortransformation |
|---|---|---|
| Formål | Returnerer de øverste eller nederste N komplette rækker i hver gruppe | Returnerer beregnede værdier såsom SUM, AVG, MAX eller MIN pr. gruppe |
| Returnerede rækker | Op til antallet af rangordninger pr. gruppe, med alle deres kolonner intakte | Normalt én opsummeringsrække pr. gruppe |
| Ekstra port tilføjet | RANKINDEX, der holder positionen for hver række | Ingen |
| Rangeret eller aggregeret kolonne | Én port markeret som rangporten | Et hvilket som helst antal porte, der bærer aggregerede udtryk |
Enkelt sagt, en Aggregatortransformation svarer på "hvad er den højeste løn i denne afdeling", mens rangtransformation svarer på "hvilke medarbejdere tjener den". Når kun en delmængde af rækker skal kasseres under en simpel betingelse, og der ikke er nogen rækkefølge involveret, vil en Filtertransformation er det billigere valg, fordi det slet ikke kræver nogen cache.








