Aggregatortransformation i Informatica med exempel
โก Smart sammanfattning
Aggregatortransformation i Informatica รคr det aktiva objektet som utfรถr berรคkningar som summa, medelvรคrde och antal รถver en grupp rader, och hรฅller dessa rader i en aggregerad cache tills varje grupp รคr komplett.

Vad รคr Aggregator Transformation?
Aggregatortransformation รคr en aktiv transformation som utfรถr aggregerade berรคkningar som summa, medelvรคrde och antal.
Om du till exempel vill berรคkna summan av lรถnerna fรถr alla anstรคllda per avdelning kan du anvรคnda Aggregator-transformationen.
De aggregerade operationerna utfรถrs รถver en grupp rader, sรฅ en tillfรคllig platshรฅllare krรคvs fรถr att lagra alla dessa poster och utfรถra berรคkningarna.
Fรถr detta anvรคnds aggregatorcachen. Detta รคr ett tillfรคlligt huvudminne som allokerats till aggregatortransformationen fรถr att utfรถra sรฅdana operationer, och det bestรฅr av tvรฅ delar: indexcachen lagrar gruppvรคrdena medan datacachen lagrar raddata som aggregeras.
Transformationen รคr aktiv eftersom den รคndrar antalet rader i pipelinen. Flera tusen medarbetarposter kan komma in i den och endast en rad per avdelning lรคmnar den.
Hur man anvรคnder aggregatortransformation i Informatica
I det hรคr exemplet kommer vi att berรคkna summan av lรถneavdelningen. Fรถr detta krรคver vi en ny kolumn fรถr att lagra denna summa. Sรฅ fรถrst och frรคmst kommer vi att fรถrbereda en ny kolumn.
Steg 1) Skapa en ny databasmรฅltabell, till exempel "sum_sal_deptwise", med hjรคlp av skriptet nedan. Du kommer att se den nya databasmรฅltabellen som skapats under Targets-mappen i nรคsta steg.
Ladda ner filen Create_table_sal_deptwise.txt ovan
Steg 2) Skapa en ny kartaping "m_sum_sal_deptwise".
Fรถr att skapa den nya kartanping, vi behรถver kรคlltabellen (EMP) och mรฅltabellen (sum_sal_deptwise) i Mapping Designer, sรฅ vi behรถver
- Importera mรฅltabellen "sum_sal_deptwise" till kartanping.
- Importera kรคlltabellen "emp".
Bรฅda definitionerna visas nu pรฅ arbetsytan, som visas nedan.
Steg 3) Pรฅ kartanping,
- Frรฅn Kรคllkval, ta bort kolumnerna anstรคllningsnamn, enamn, jobb, chef, hiredato och meddelande, sรฅ att endast kolumnerna avd.nummer och sal lรคmnas kvar.
- Skapa en ny aggregeringstransformation med hjรคlp av verktygsmenyn som visas pรฅ skรคrmbilden. Nรคr du klickar pรฅ aggregeringsikonen skapas en ny aggregeringstransformation.
Det nya AGGTRANS-objektet visas bredvid den trimmade kรคllkvalificeraren.
Steg 4) Dra och slรคpp kolumnerna SAL och DEPTNO frรฅn kรคllkvalificeraren (SQ_EMP) till aggregeringstransformationen. De tvรฅ portarna รคr nu lรคnkade till AGGTRANS.
Steg 5) Double-klicka pรฅ Aggregator-transformationen fรถr att รถppna dess egenskaper och klicka sedan
- Lรคgg till en ny port i transformationen
- Byt namn pรฅ porten till SUM_SAL
- รndra datatypen fรถr denna nya port till dubbel
- Gรถr den hรคr porten till en utgรฅngsport genom att markera kryssrutan fรถr utgรฅngsporten.
- Klicka pรฅ uttrycksalternativet
Fliken Portar listar nu SAL, DEPTNO och den nya utgรฅngsporten SUM_SAL.
Steg 6) I fรถnstret Uttrycksredigerare
- Addera uttrycket sum(SAL); du mรฅste skriva uttrycket sjรคlv.
- Vรคlj OK-knappen, detta kommer att visa fรถnstret Redigera transformationer.
Uttrycksredigeraren visar det aggregerade uttryck som รคr tilldelat SUM_SAL.
Steg 7) I fรถnstret Redigera transformationer vรคljer du alternativet "Gruppera efter" genom att markera kryssrutan mot kolumnen avdelningsnr och klicka pรฅ OK. Genom att vรคlja gruppera efter mot avdelningsnr instruerar vi Informatica att gruppera lรถner efter avdelningsnr.
Steg 8) Lรคnka kolumnerna deptno och sum_sal frรฅn Aggregator-transformationen till mรฅltabellen. Kartanping รคr dรฅ komplett frรฅn kรคlla till mรฅl.
Spara nu kartanping och kรถr den efter att ha skapat en ny session fรถr den hรคr kartanpingMรฅltabellen skulle innehรฅlla summan av lรถnerna per avdelning. Pรฅ sรฅ sรคtt kan vi anvรคnda aggregeringstransformationen fรถr att berรคkna aggregerade resultat.
Gruppera efter portar i aggregatortransformation
Steget ovan markerade en enskild port som Gruppera efter, vilket รคr det som omvandlade en fรถretagsomfattande totalsumma till en totalsumma per avdelning. Alla input-, input/output-, output- eller variabla portar kan markeras pรฅ samma sรคtt.
Tre regler styr resultatuppsรคttningen:
- En rad per grupp. Nรคr vรคrden grupperas genererar integrationstjรคnsten en rad fรถr varje unik kombination av gruppen efter portar.
- Ingen gruppering efter, en rad. Om ingen port รคr markerad behandlas hela indata som en enda grupp och en rad returneras fรถr alla indatarader.
- Den sista raden vinner. Tillsammans med det aggregerade resultatet skickar integrationstjรคnsten vanligtvis den sista raden som mottagits i gruppen, sรฅvida inte en funktion som FIRST namnger en annan rad.
Dรคr flera hamnar รคr markerade avgรถr hamnordningen gruppenping ordning, och ordningen kan รคndra resultatet. Gruppping av DEPTNO och dรฅ รคr JOB inte samma sak som groupping av JOBB och sedan AVD.NR, eftersom vรคrdena i den andra kolumnen inte nรถdvรคndigtvis รคr unika.
Egenskaper fรถr aggregeringstransformation
Fliken Egenskaper i fรถnstret Redigera transformationer innehรฅller instรคllningarna som avgรถr var cachen finns och hur mycket av den som anvรคnds. Tabellen nedan listar dem.
| Att lรคgga plattor | Vad den kontrollerar |
|---|---|
| Cachekatalog | Lokal katalog dรคr integrationstjรคnsten skapar index- och datacachefiler. Standardvรคrdet รคr processvariabeln $PMCacheDir som anges i Workflow Manager. |
| Tracingnivรฅ | Mรคngd detaljer som skrivits till sessionsloggen fรถr denna transformation. |
| Sorterad inmatning | Anger att inkommande data redan รคr sorterad efter grupp efter portar. Vรคlj det bara nรคr kartanping levererar verkligen sorterad data. |
| Storlek pรฅ aggregeringsdatacache | Storleken pรฅ datacachen. Standardvรคrdet รคr 2 000 000 byte, och Auto lรฅter integrationstjรคnsten ange storleken. |
| Storlek pรฅ aggregatorindexcache | Storleken pรฅ indexcachen. Standardvรคrdet รคr 1 000 000 byte, och Auto lรฅter integrationstjรคnsten ange storleken. |
| Transformationsomfattning | Tillรคmpar logiken pรฅ varje transaktion, eller pรฅ all inkommande data. All inmatning tar bort grรคnserna fรถr inkommande transaktioner. |
Nรคr stegvis aggregering รคr aktiverat skriver integrationstjรคnsten en sรคkerhetskopia av cachefilerna vid varje kรถrning, sรฅ cachekatalogen mรฅste innehรฅlla tvรฅ uppsรคttningar filer istรคllet fรถr en.
Regler fรถr aggregerade uttryck och prestandatips
Ett aggregerat uttryck kan kombinera en aggregerad funktion med villkorliga klausuler och icke-aggregerade funktioner, vilket mรถjliggรถr villkorliga summor och antal inom en port. Tvรฅ regler begrรคnsar vad som kan skrivas.
- En nivรฅ av nestning. Endast en aggregerad funktion kan kapslas inuti en annan, och det inre uttrycket utvรคrderas fรถrst.
- Ingen blandning. En transformation kan innehรฅlla funktioner pรฅ en nivรฅ eller kapslade funktioner, aldrig bรฅda. Om den innehรฅller bรฅda markerar designern kartanping ogiltig, sรฅ dela upp logiken รถver tvรฅ Aggregator-transformationer.
Pรฅ finjusteringssidan gรถr tre instรคllningar det mesta av jobbet:
- Sorterad inmatning. Nรคr rader anlรคnder sorterade efter grupp och portar kan varje grupp slรคppas sรฅ snart den sista raden anlรคnder, vilket innebรคr att betydligt mindre data cachas och sessionen kรถrs snabbare. Sorterad inmatning kan inte kombineras med stegvis aggregering.
- Stegvis aggregering. Nya kรคllrader skickas genom kartanping och kombineras med den historiska cachen istรคllet fรถr att omrรคkna historiken, vilket passar en nattlig belastning pรฅ en lรถpande totalsumma.
- Filtrera tidigt. Rader som aldrig kommer att bidra till en totalsumma bรถr tas bort fรถre aggregatorn, antingen i kรคllkvalificeringsfrรฅgan eller i en Filtertransformation, eftersom varje rad som nรฅr aggregatorn kostar cacheminne. Detta รคr en av standardkontrollerna under prestandajustering.







