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.

  • ๐Ÿ” Rรฆkker ud af kolonner: Fire kvartalsvise salgskolonner i รฉn kilderรฆkke bliver til fire mรฅlrรฆkker, รฉn for hvert kvartal.
  • ๐Ÿ”ข Opstรฅr driver alt: Vรฆrdien Occurs pรฅ fanen Normalizer bestemmer, hvor mange inputporte og hvor mange outputrรฆkker der oprettes.
  • ๐Ÿงช Udarbejdet eksempel: Seks kortping Designertrin flytter en sales_source flad fil til en sales_target-tabel via transformationen nrm_sales.
  • ๐Ÿ”‘ Genererede porte: GK_ returnerer en stigende nรธgle for hver kilderรฆkke, mens GCID_ returnerer forekomstindekset fra 1 til N.
  • ๐Ÿ—‚๏ธ To smagsvarianter: VSAM Normalizer lรฆser COBOL-kilder, mens pipeline Normalizer hรฅndterer relationelle og flade fildata.
  • โš ๏ธ Almindelig fรฆlde: Hvis indstillingen Forekommer pรฅ en enkeltstรฅende kolonne, eller hvis den efterlades pรฅ nul for en gentagende kolonne, afbrydes portlisten.

Normaliseringstransformation i Informatica

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.

Kortping Designer-lรฆrred med definitionen af โ€‹โ€‹sales_source, dens kildekvalifikator og tabellen sales_target

Trin 3) Opret en ny transformation fra menuen Transformation. I vinduet Opret transformation:

  1. Vรฆlg Normalizer som transformation
  2. Indtast navn, "nrm_sales"
  3. Vรฆlg oprettelsesmulighed

Vinduet ser ud som skรฆrmbilledet nedenfor, med listen over transformationstyper til venstre og navneboksen nedenunder.

Opret transformationsvindue med Normalizer valgt og navnet nrm_sales indtastet

Trin 4) Transformationen oprettes, vรฆlg indstillingen "udfรธrt". Den tomme nrm_sales-transformation placeres nu pรฅ lรฆrredet mellem kildekvalifikatoren og mรฅlet.

Kortping Lรฆrred, der viser den nyoprettede nrm_sales Normalizer-transformation uden kolonner endnu

Trin 5) Double Klik pรฅ Normalizer-transformationen, og gรธr derefter fรธlgende:

  1. Vรฆlg fanen Normalisering
  2. Klik pรฅ ikonet for at oprette to kolonner
  3. Indtast kolonnenavne
  4. Indstil antallet af forekomster til 4 for salg og 0 for butiksnavn
  5. 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.

Fanen Normalisering i vinduet Rediger transformationer med salgskolonnen indstillet til fire forekomster og butiksnavnet indstillet til nul

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.

Genereret portliste over nrm_sales, der viser fire salgsinputporte plus GK- og GCID-portene

Trin 6) Sรฅ i kortping:

  1. Link de fire kolonner i kildekvalifikationen for de fire kvartaler til henholdsvis normaliseringskolonnerne.
  2. Link butiksnavnkolonnen til normaliseringskolonnen
  3. Link butiksnavn og salgskolonner fra normalizer til mรฅltabel
  4. Link GK_sales kolonne fra normalizer til mรฅltabel

Nรฅr hvert link er tegnet, er det fรฆrdige kortping ser sรฅdan ud.

Fรฆrdiggjort kortping med de fire kvartalsporte og butiksnavnet linket til nrm_sales og store_name-, sales- og GK_sales-portene linket til sales_target

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.

Ofte Stillede Spรธrgsmรฅl

Nej. Transformationen opdeler kun รฉn rรฆkke i mange. Sammenfoldning af mange rรฆkker til รฉn udfรธres med en aggregator eller med et udtryk, der drejer vรฆrdier ved hjรฆlp af variable porte, afhรฆngigt af hvordan outputkolonnerne er formet.

Kun streng, Nstreng og tal. Der er ingen dato- og klokkeslรฆtsindstilling pรฅ fanen Normalisering, sรฅ datovรฆrdier skal gennemgรฅ transformationen som strenge og konverteres i en udtrykstransformation pรฅ begge sider af den.

Ja. Kort over integration af cloud-dataping designer tilbyder en Normalizer-transformation med samme formรฅl, konfigureret via en forekomstvรฆrdi pr. felt. Fanebladlayoutet adskiller sig fra PowerCenter, sรฅ kortpings genopbygges i stedet for at kopieres pรฅ tvรฆrs.

En Union fletter rรฆkker, der ankommer fra flere pipelines, sammen til รฉn strรธm med en delt portliste. En Normalizer arbejder pรฅ รฉn pipeline og multiplicerer rรฆkker ud af gentagne kolonner i hver indgรฅende post.

En pipeline Normalizer kan bygges i Transformation Developer eller promoveres fra et kortping, og derefter delt. En VSAM Normalizer kan ikke, fordi den er knyttet til den COBOL-kildedefinition, der genererede den.

Selve transformationen er billig, fordi den ikke indeholder nogen cache. Omkostningerne opstรฅr efterfรธlgende: en Occurs-vรฆrdi pรฅ fire firedobler rรฆkkevolumenet for hver senere transformation, og det skal mรฅlskriveren hรฅndtere.

Profileringsmodeller scanner kildekolonner og markerer gentagne grupper som f.eks. KVARTAL1 til KVARTAL4, der hรธrer hjemme i rรฆkker i stedet for kolonner. Forslaget er et udgangspunkt โ€“ forekommende vรฆrdier og nรธglehรฅndtering krรฆver stadig en udvikler til at bekrรฆfte dem.

Det hjรฆlper rundt pรฅ kortetping snarere end indeni den โ€” at skrive den SQL, der fjerner pivoteringen af โ€‹โ€‹en tabel til sammenligning, generere testdata eller udarbejde parameterfiler. Designer-lรฆrredet i sig selv er ikke noget, Copilot kan redigere.

Opsummer dette indlรฆg med: