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.

  • 🥇 Øverste eller nederste N: Egenskaberne Top/Bottom og Number of Ranks bestemmer tilsammen, hvilke rækker der overlever filteret.
  • 🗂️ Rangering efter gruppe: Gruppér efter porte genstarter rangeringen for hver gruppe, så hver afdeling kan returnere sin egen top tre.
  • 🔢 Rangport: Præcis én port bærer R-flaget, og den ene kolonne er den værdi, rangeringen beregnes ud fra.
  • 📍 RANKINDEX: Designeren tilføjer automatisk denne output-only-port for at holde positionen af ​​hver række i dens gruppe.
  • 🧪 Udarbejdet eksempel: Otte kortping Designertrinene indlæser de tre højest betalte medarbejdere pr. afdeling i EMP_TARGET.
  • 💾 Cachelagret og aktiv: Gruppeværdier og rækkedata opbevares i et indeks og en datacache, og rækkeantallet ændres.

Rangtransformation i Informatica

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.

Kortping Designer, der viser EMP-kildedefinitionen og EMP_TARGET-måldefinitionen

Trin 2) Så på kortetping

  1. Vælg transformationsmenu
  2. Vælg oprettelsesmulighed

Transformationsmenuen med Opret-indstillingen vises derefter.

Transformationsmenuen åbnet i kortetping Designer med Opret-indstillingen fremhævet

Trin 3) I opret transformationsvinduet

  1. Vælg rang transformation
  2. Indtast transformationsnavnet "rnk_salary"
  3. Vælg knappen Opret

Opret transformationsvindue med valgt Rang og indtastet navnet rnk_salary

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.

Rangtransformation rnk_salary oprettet og placeret på kortetping canvas

Trin 5) Tilslut alle portene fra kildekvalifikator til Rang-transformationen, så alle medarbejderkolonner er tilgængelige for rangering.

Alle kildekvalifikatorporte linket til rnk_salary Rank-transformationen

Trin 6) Double Klik på rangtransformationen, og vinduet "rediger transformation" åbnes. I dette vindue

  1. Vælg egenskabsmenu
  2. Vælg "Top" fra egenskaben Top/Bund
  3. Indtast 3 i antallet af rækker

Fanen Egenskaber viser nu Top med tre rangeringer, som skærmbilledet viser.

Fanen Egenskaber for Rangtransformationen med Top valgt og tre indtastet som antal ranger

Trin 7) I vinduet "rediger transformation" igen

  1. Vælg fanen porte
  2. Vælg gruppe efter mulighed for kolonnen Afdelingsnummer
  3. Vælg Rang i lønkolonnen
  4. Vælg OK knap

Fanen Porte har nu gruppeflaget på afdelingsnummeret og R-flaget på løn.

Fanen Porte i Rangtransformationen med gruppering efter angivet på afdelingsnummeret og rang angivet på lønkolonnen

Trin 8) Forbind portene fra Rank-transformationen til måltabellen. Kortetping kører nu fra EMP gennem rnk_salary til EMP_TARGET.

Rangerede porte linket fra rnk_salary Rank-transformationen til EMP_TARGET-tabellen

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.

Ofte Stillede Spørgsmål

Nej. Rank er kun forbundet, så den skal sidde i dataflowet mellem to objekter. RANKINDEX-porten kan lades være uforbundet, men selve transformationen kan ikke kaldes på samme måde som et uforbundet opslag kaldes.

Rækker med lige dele får samme værdi i rangindekset, og transformationen springer derefter den næste værdi over. To medarbejdere, der deler andenpladsen, viser derfor begge 2, og den følgende række viser 4 i stedet for 3.

Hele kilden behandles som én gruppe, så transformationen returnerer kun det samlede antal ranger. Hvis man angiver tre ranger uden en gruppeport, får man de tre højest betalte medarbejdere på tværs af virksomheden, ikke pr. afdeling.

Ja. Numeriske, streng- og dato/tids-porte kan alle markeres som rangporten. For tekst afgør egenskaben Case-Sensitive String Comparison, om store og små bogstaver påvirker rækkefølgen, så tjek det, før sessionen kører.

Ikke garanteret. Transformationen vælger, hvilke rækker der overlever, den lover ikke den rækkefølge, de når målet i. Tilføj en Sorter-transformation på RANKINDEX-porten, når indlæsningsrækkefølgen har betydning.

A SQL Window-funktionen mærker hver række og overlader filtrering til en ekstern forespørgsel. Informatica-transformationen mærker og filtrerer i én omgang, og den fungerer på flade filer og andre ikke-relationelle kilder, hvor der ikke er nogen databasemotor tilgængelig.

Maskinlæringsmodeller scorer poster på sandsynlighed for churn, svindel eller konvertering, og denne score bliver den rangerede kolonne. AI-rådgivere profilerer også gruppestørrelser, så cacheindstillinger og antallet af rangeringer vælges ud fra reelle data i stedet for gætværk.

Copilot udarbejder den tilsvarende vinduesfunktionsforespørgsel eller Python groupby hurtigt, hvilket er nyttigt til at validere resultater. Den kan ikke læse dit kortping, så behandl hvert forslag som et kladde, og sammenlign antallet af rækker med sessionsloggen.

Opsummer dette indlæg med: