Normalizer Transformation i Informatica med EKSEMPEL
โก Smart opsummering
Normaliseringstransformationen i Informatica er en aktiv transformation, der konverterer en enkelt rรฆkke, der indeholder gentagne kolonner, til flere rรฆkker, og den genererer ogsรฅ de nรธglekolonner, der identificerer hver forekomst, den producerer.

Hvad er normaliseringstransformation?
Normalisering er en aktiv transformation, der bruges til at konvertere en enkelt rรฆkke til flere rรฆkker og omvendt. Det er en smart mรฅde at reprรฆsentere dine data pรฅ en mere organiseret mรฅde.
Hvis der i en enkelt rรฆkke er gentagne data i flere kolonner, kan den opdeles i flere rรฆkker. Nogle gange har vi data i flere forekommende kolonner. For eksempel:
| Elevnavn | Klasse 9 Score | Klasse 10 Score | Klasse 11 Score | Klasse 12 Score |
| Student 1 | 50 | 60 | 65 | 80 |
| Student 2 | 70 | 64 | 83 | 77 |
I dette tilfรฆlde gentages klassescorekolonnen i fire kolonner. Ved hjรฆlp af Normalizer kan vi opdele disse i fรธlgende datasรฆt.
| Elevnavn | Klasse | Score |
| Student 1 | 9 | 50 |
| Student 1 | 10 | 60 |
| Student 1 | 11 | 65 |
| Student 1 | 12 | 80 |
| Student 2 | 9 | 70 |
| Student 2 | 10 | 64 |
| Student 2 | 11 | 83 |
| Student 2 | 12 | 77 |
To rรฆkker med fem kolonner er blevet til otte rรฆkker med tre kolonner. Da antallet af rรฆkker, der forlader transformationen, er forskelligt fra antallet, der gรฅr ind i den, er Normalizer en aktiv transformation, og den samme regel gรฆlder for salgseksemplet, der er bygget i nรฆste afsnit.
Sรฅdan bruger du normaliseringstransformation i Informatica
De fรธlgende seks trin opbygger et kortping der lรฆser en flad fil med kvartalsvise butikssalg og skriver รฉn mรฅlrรฆkke pr. kvartal.
Trin 1) Opret kildetabellen "sales_source" og mรฅltabellen "sales_target" ved hjรฆlp af scriptet og importer dem i computer.
Download ovenstรฅende Sales_Source.txt-fil
Trin 2) Opret et kortping med kilden โsales_sourceโ og mรฅltabellen โsales_targetโ. Kortetping Designer-lรฆrredet indeholder derefter kildedefinitionen, dens Kildekvalifikation og mรฅldefinitionen.
Trin 3) Opret en ny transformation fra menuen Transformation. I vinduet Opret transformation:
- Vรฆlg Normalizer som transformation
- Indtast navn, "nrm_sales"
- Vรฆlg oprettelsesmulighed
Vinduet ser ud som skรฆrmbilledet nedenfor, med listen over transformationstyper til venstre og navneboksen nedenunder.
Trin 4) Transformationen oprettes, vรฆlg indstillingen "udfรธrt". Den tomme nrm_sales-transformation placeres nu pรฅ lรฆrredet mellem kildekvalifikatoren og mรฅlet.
Trin 5) Double Klik pรฅ Normalizer-transformationen, og gรธr derefter fรธlgende:
- Vรฆlg fanen Normalisering
- Klik pรฅ ikonet for at oprette to kolonner
- Indtast kolonnenavne
- Indstil antallet af forekomster til 4 for salg og 0 for butiksnavn
- Vรฆlg knappen OK
Vรฆrdien "Forekommer" er den vigtigste post pรฅ denne fane: den fortรฆller designeren, hvor mange gange kolonnen gentages i รฉn kilderรฆkke. Butiksnavnet vises รฉn gang pr. rรฆkke, sรฅ dens vรฆrdi "Forekommer" forbliver pรฅ 0.
Kolonner vil blive genereret i transformationen. Du vil se 4 salgskolonner, nรฅr vi sรฆtter antallet af forekomster til 4. Ved siden af โโdem tilfรธjer designeren den genererede nรธgle og genererede kolonne-ID-porte, som beskrevet i nรฆste afsnit.
Trin 6) Sรฅ i kortping:
- Link de fire kolonner i kildekvalifikationen for de fire kvartaler til henholdsvis normaliseringskolonnerne.
- Link butiksnavnkolonnen til normaliseringskolonnen
- Link butiksnavn og salgskolonner fra normalizer til mรฅltabel
- Link GK_sales kolonne fra normalizer til mรฅltabel
Nรฅr hvert link er tegnet, er det fรฆrdige kortping ser sรฅdan ud.
Gem kortetping og udfรธre den efter oprettelse Session og workflow. For hvert kvartalssalg af en butik vil der blive oprettet en separat rรฆkke ved normaliseringstransformationen.
Resultatet af vores kortping vil vรฆre ligesom โ
| Store navn | Quarter | Sales |
| DELHI | 1 | 150 |
| DELHI | 2 | 240 |
| DELHI | 3 | 455 |
| DELHI | 4 | 100 |
| MUMBAI | 1 | 100 |
| MUMBAI | 2 | 500 |
| MUMBAI | 3 | 350 |
| MUMBAI | 4 | 340 |
Kildedataene havde gentagne kolonner, nemlig KVARTAL1, KVARTAL2, KVARTAL3 og KVARTAL4. Ved hjรฆlp af Normalizer har vi omarrangeret dataene, sรฅ de passer ind i en enkelt KVARTAL-kolonne, og for รฉn kildepost er der oprettet fire poster i mรฅlet.
Pรฅ denne mรฅde kan du normalisere data og oprette flere poster for en enkelt datakilde.
Normaliseringstransformationsporte og -egenskaber
Kolonner indtastes aldrig pรฅ fanen Porte. De defineres pรฅ fanen Normalisering, og Designeren opretter derefter automatisk de matchende porte. Tabellen nedenfor forklarer, hvad hver post og hver genereret port gรธr.
| Port eller attribut | Hvad gรธr den |
| Opstรฅr | Antal forekomster af kolonnen i รฉn kilderรฆkke. En vรฆrdi pรฅ 0 markerer en enkeltstรฅende kolonne, f.eks. butiksnavn. |
| Niveau | Grupperer kolonner i et posthierarki. Det bruges til COBOL-kilder og forbliver pรฅ 0 for en flad struktur. |
| Input-porte | En pipeline-normalisering opretter รฉn inputport pr. forekomst, sรฅ en Occurs-vรฆrdi pรฅ 4 producerer fire inputporte. |
| Udgangsport | En kolonne med flere forekomster har en enkelt outputport, der returnerer รฉn rรฆkke pr. forekomst. |
| GK_ | Genereret nรธgle. Integrationstjenesten รธger dette sekvensnummer, hver gang den behandler en kilderรฆkke. |
| GCID_ | Genereret kolonne-ID. Det er indekset for forekomsten, sรฅ en kolonne, der forekommer fire gange, returnerer 1, 2, 3 eller 4. |
Forskellen mellem de to genererede porte er vรฆrd at huske, fordi begge ligner tรฆllere. GCID genstarter ved 1 for hver kilderรฆkke, mens GK fortsรฆtter med at klatre hen over hele sessionen. I salgskortetping, GK_sales er den port, der er knyttet til mรฅlet, sรฅ hver af de otte outputrรฆkker har en distinkt nรธgle.
To indstillinger pรฅ fanen Egenskaber styrer, hvordan tasten opfรธrer sig mellem kรธrsel. Nulstil returnerer den genererede nรธglevรฆrdi ved slutningen af โโsessionen til den vรฆrdi, den havde, fรธr sessionen startede. Genstart starter den genererede nรธglesekvens ved 1 hver gang sessionen kรธrer, og tilsidesรฆtter dermed den sekvensvรฆrdi, der vises pรฅ fanen Porte. De fulde attributdefinitioner er offentliggjort i PowerCenter Transformationsguide.
VSAM Normalizer vs. Pipeline Normalizer
PowerCenter leverer to versioner af den samme transformation, og eksemplet ovenfor bruger den anden. Valget mellem dem afgรธres udelukkende af kilden.
| Aspect | VSAM Normalizer | Pipeline Normalizer |
| Rolle pรฅ kortetping | Fungerer som kildekvalifikator for en COBOL-kildedefinition | Placeres hvor som helst i pipelinen, nedstrรธms for en normal kildekvalifikator |
| Hvordan det skabes | Oprettes automatisk, nรฅr COBOL-kilden trรฆkkes ind i kortetping | Oprettet fra menuen Transformation, som i trin 3 ovenfor |
| Inputporte for en gentagende kolonne | รn inputport til hele den flerforekommende kolonne | รn inputport for hver forekomst af kolonnen |
| Redigering af kolonnerne | รndr COBOL-kilden og genskab transformationen | Rediger kolonnerne pรฅ fanen Normalisering nรฅr som helst |
| Typiske data | Mainframe-filer ved hjรฆlp af OCCURS- og REDEFINES-klausuler | Gentagne kolonner i relationelle tabeller og flade filer |
En COBOL-fil kan ogsรฅ indeholde flere posttyper i den samme fysiske fil, hvilket er grunden til, at VSAM-versionen lรฆser en kopibog i stedet for en kolonneliste. Til hverdagsbrug ETL arbejde mod databaser og afgrรฆnsede filer, er pipeline Normalizer den, man skal bruge.
Almindelige Normalizer Transformation-fejl og hvordan man retter dem
De fleste Normalizer-problemer tractilbage til to eller tre indstillinger. Listen nedenfor dรฆkker dem, der oftest dukker op under udviklingen.
- Portlisten stemmer ikke overens med kilden. For fรฅ eller for mange inputporte betyder nรฆsten altid, at vรฆrdien for Forekommer er forkert. ร bn fanen Normalisering igen, og indstil Forekommer til det nรธjagtige antal gentagne kolonner, og gentilknyt derefter kortet.ping, fordi รฆndring af Occurs genopbygger portene.
- Forekommer i en enkeltstรฅende kolonne. Hvis du giver butiksnavnet en Occurs-vรฆrdi stรธrre end 0, multipliceres rรฆkker, der aldrig skulle gentages. Kolonner, der kun forekommer, forbliver pรฅ 0.
- Datokolonner kan ikke defineres. Fanen Normalisering accepterer kun kolonnerne String, Nstring og Number, sรฅ en dato skal overfรธres som en streng og konverteres i en Expression-transformation, fรธr den nรฅr mรฅlet.
- Rรฆkkeantallet ser forkert ud i sessionsloggen. At lรฆse to kilderรฆkker og skrive otte mรฅlrรฆkker er korrekt adfรฆrd for en Occurs-vรฆrdi pรฅ 4, ikke en defekt. Normaliseringsfunktionen er aktiv netop fordi disse tรฆllinger er forskellige.
- Genererede nรธgler gentages eller hopper mellem kรธrsler. Dette er parret Nulstil og Genstart pรฅ fanen Egenskaber. Genstart tvinger sekvensen tilbage til 1 for hver session, hvilket sjรฆldent er รธnskeligt, nรฅr nรธglen lander i en varehustabel.
- Rettelser pรฅ fanen Porte gemmes ikke. Porte genereres, ikke redigeres. Enhver kolonneรฆndring hรธrer hjemme pรฅ fanen Normalizer, og for en VSAM Normalizer hรธrer รฆndringen hjemme i selve COBOL-kilden.
Nรฅr flere gentagne grupper skal opdeles pรฅ รฉn gang, er det normalt renere at bruge รฉn Normalizer pr. gruppe og kombinere resultaterne efterfรธlgende end at overbelaste en enkelt transformation. Hvor kravet gรฅr den anden vej, og mange rรฆkker skal kollapses til รฉn, er en Aggregatortransformation er det rigtige vรฆrktรธj i stedet.






