Normalizer Transformation i Informatica med EXEMPEL
โก Smart sammanfattning
Normaliseringstransformationen i Informatica รคr en aktiv transformation som konverterar en enskild rad som innehรฅller upprepade kolumner till flera rader, och den genererar ocksรฅ nyckelkolumnerna som identifierar varje fรถrekomst den producerar.

Vad รคr normaliseringstransformation?
Normaliserare รคr en aktiv transformation som anvรคnds fรถr att konvertera en enskild rad till flera rader och vice versa. Det รคr ett smart sรคtt att representera dina data pรฅ ett mer organiserat sรคtt.
Om det i en enda rad finns upprepade data i flera kolumner kan den delas upp i flera rader. Ibland har vi data i flera fรถrekommande kolumner. Till exempel:
| Elevs namn | Klass 9 Poรคng | Klass 10 Poรคng | Klass 11 Poรคng | Klass 12 Poรคng |
| Student 1 | 50 | 60 | 65 | 80 |
| Student 2 | 70 | 64 | 83 | 77 |
I det hรคr fallet upprepas klasspoรคngkolumnen i fyra kolumner. Med hjรคlp av Normalizer kan vi dela upp dessa i fรถljande datamรคngd.
| Elevs namn | Klass | Betyg |
| 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 |
Tvรฅ rader med fem kolumner har blivit รฅtta rader med tre kolumner. Eftersom antalet rader som lรคmnar transformationen skiljer sig frรฅn antalet som gรฅr in i den, รคr Normalizer en aktiv transformation, och samma regel gรคller fรถr fรถrsรคljningsexemplet som skapas i nรคsta avsnitt.
Hur man anvรคnder normaliseringstransformation i Informatica
Fรถljande sex steg skapar en kartaping som lรคser en platt fil med kvartalsvisa butiksfรถrsรคljningar och skriver en mรฅlrad per kvartal.
Steg 1) Skapa kรคlltabellen "sales_source" och mรฅltabellen "sales_target" med hjรคlp av skriptet och importera dem i Informatik.
Ladda ner filen Sales_Source.txt ovan
Steg 2) Skapa en kartaping med kรคllan "sales_source" och mรฅltabellen "sales_target". Kartanping Designer-canvasen innehรฅller sedan kรคlldefinitionen, dess Kรคllkval och mรฅldefinitionen.
Steg 3) Skapa en ny transformation frรฅn menyn Transformation. I fรถnstret Skapa transformation:
- Vรคlj Normaliserare som transformation
- Ange namn, "nrm_sales"
- Vรคlj skapa alternativ
Fรถnstret ser ut som skรคrmdumpen nedan, med listan รถver transformationstyper till vรคnster och namnrutan under.
Steg 4) Transformationen kommer att skapas, vรคlj alternativet "klar". Den tomma nrm_sales-transformationen placeras nu pรฅ arbetsytan mellan kรคllkvalificeraren och mรฅlet.
Steg 5) Double klicka pรฅ Normalizer-transformationen och gรถr sedan fรถljande:
- Vรคlj fliken Normaliserare
- Klicka pรฅ ikonen fรถr att skapa tvรฅ kolumner
- Ange kolumnnamn
- Stรคll in antalet fรถrekomster till 4 fรถr fรถrsรคljning och 0 fรถr butiksnamn
- Vรคlj OK-knappen
Vรคrdet Occurs รคr den enskilt viktigaste posten pรฅ den hรคr fliken: det anger fรถr designern hur mรฅnga gรฅnger kolumnen upprepas i en kรคllrad. Butiksnamnet visas en gรฅng per rad, sรฅ dess vรคrde Occurs fรถrblir 0.
Kolumner kommer att genereras i transformationen. Du kommer att se 4 fรถrsรคljningskolumner nรคr vi har satt antalet fรถrekomster till 4. Bredvid dem lรคgger designern till den genererade nyckeln och genererade kolumn-ID-portar som beskrivs i nรคsta avsnitt.
Steg 6) Sedan i kartaping:
- Lรคnka de fyra kolumnerna i kรคllkvalificeraren fรถr de fyra kvartalen till respektive normaliseringskolumner.
- Lรคnka kolumnen butiksnamn till normaliseringskolumnen
- Lรคnka butiksnamn och fรถrsรคljningskolumner frรฅn normaliserare till mรฅltabell
- Lรคnka GK_sales-kolumnen frรฅn normalizer till mรฅltabell
Nรคr varje lรคnk รคr ritad, den fรคrdiga kartanping ser ut sรฅ hรคr.
Spara kartanping och kรถr den efter att ha skapat den session och arbetsflรถde. Fรถr varje kvartalsfรถrsรคljning av en butik kommer en separat rad att skapas av normaliseringstransformationen.
Resultatet av vรฅr kartaping kommer att bli som โ
| Affรคrsnamn | Kvartal | Utfรถrsรคljning |
| DELHI | 1 | 150 |
| DELHI | 2 | 240 |
| DELHI | 3 | 455 |
| DELHI | 4 | 100 |
| MUMBAI | 1 | 100 |
| MUMBAI | 2 | 500 |
| MUMBAI | 3 | 350 |
| MUMBAI | 4 | 340 |
Kรคlldata hade upprepade kolumner, nรคmligen KVARTAL1, KVARTAL2, KVARTAL3 och KVARTAL4. Med hjรคlp av Normalizer har vi ordnat om data sรฅ att de passar in i en enda kolumn av KVARTAL, och fรถr en kรคllpost skapas fyra poster i mรฅlet.
Pรฅ detta sรคtt kan du normalisera data och skapa flera poster fรถr en enda datakรคlla.
Normaliseringstransformationsportar och egenskaper
Kolumner skrivs aldrig in pรฅ fliken Portar. De definieras pรฅ fliken Normaliserare, och Designern skapar sedan matchande portar automatiskt. Tabellen nedan fรถrklarar vad varje post och varje genererad port gรถr.
| Port eller attribut | Vad den gรถr |
| intrรคffar | Antal fรถrekomster av kolumnen pรฅ en kรคllrad. Vรคrdet 0 markerar en engรฅngsfรถrekommande kolumn, till exempel butiksnamn. |
| Nivรฅ | Grupperar kolumner i en posthierarki. Den anvรคnds fรถr COBOL-kรคllor och fรถrblir pรฅ 0 fรถr en platt struktur. |
| Ingรฅngsportar | En pipeline-normaliserare skapar en indataport per fรถrekomst, sรฅ ett Occurs-vรคrde pรฅ 4 producerar fyra indataportar. |
| utgรฅngsport | En kolumn som fรถrekommer flera gรฅnger har en enda utdataport som returnerar en rad per fรถrekomst. |
| GK_ | Genererad nyckel. Integrationstjรคnsten รถkar detta sekvensnummer varje gรฅng den bearbetar en kรคllrad. |
| GCID_ | Genererat kolumn-ID. Det รคr indexet fรถr fรถrekomsten, sรฅ en kolumn som fรถrekommer fyra gรฅnger returnerar 1, 2, 3 eller 4. |
Skillnaden mellan de tvรฅ genererade portarna รคr vรคrd att komma ihรฅg, eftersom bรฅda ser ut som rรคknare. GCID startar om vid 1 fรถr varje kรคllrad, medan GK fortsรคtter att klรคttra รถver hela sessionen. I fรถrsรคljningskartanping, GK_sales รคr porten som รคr lรคnkad till mรฅlet, sรฅ var och en av de รฅtta utdataraderna har en distinkt nyckel.
Tvรฅ instรคllningar pรฅ fliken Egenskaper styr hur tangenten beter sig mellan kรถrningar. ร terstรคlla returnerar det genererade nyckelvรคrdet i slutet av sessionen till det vรคrde det hade innan sessionen startade. Omstart startar den genererade nyckelsekvensen vid 1 varje gรฅng sessionen kรถrs, och รฅsidosรคtter sekvensvรคrdet som visas pรฅ fliken Portar. Fullstรคndiga attributdefinitioner publiceras i PowerCenter Transformation Guide.
VSAM-normaliserare kontra pipeline-normaliserare
PowerCenter levererar tvรฅ versioner av samma transformation, och exemplet ovan anvรคnder den andra. Valet mellan dem avgรถrs helt av kรคllan.
| Aspect | VSAM-normaliserare | Pipeline Normalizer |
| Roll pรฅ kartanping | Fungerar som kรคllkvalificerare fรถr en COBOL-kรคlldefinition | Sitter var som helst i pipelinen, nedstrรถms en vanlig kรคllkvalificerare |
| Hur den skapas | Skapas automatiskt nรคr COBOL-kรคllan dras in i kartanping | Skapad frรฅn Transformationsmenyn, som i steg 3 ovan |
| Inmatningsportar fรถr en upprepande kolumn | En inmatningsport fรถr hela den flerfaldigt fรถrekommande kolumnen | En inmatningsport fรถr varje fรถrekomst av kolumnen |
| Redigera kolumnerna | รndra COBOL-kรคllan och รฅterskapa transformationen | Redigera kolumnerna pรฅ fliken Normaliserare nรคr som helst |
| Typiska data | Stordatorfiler med hjรคlp av OCCURS- och REDEFINES-klausuler | Upprepade kolumner i relationstabeller och platta filer |
En COBOL-fil kan ocksรฅ innehรฅlla flera posttyper i samma fysiska fil, vilket รคr anledningen till att VSAM-versionen lรคser en kopiebok snarare รคn en kolumnlista. Fรถr vardagsbruk ETL arbeta mot databaser och avgrรคnsade filer, รคr pipeline Normalizer den man bรถr anvรคnda.
Vanliga fel vid normaliseringstransformation och hur man รฅtgรคrdar dem
De flesta Normalizer-problem tractillbaka till tvรฅ eller tre instรคllningar. Listan nedan tรคcker de som dyker upp oftast under utvecklingen.
- Portlistan matchar inte kรคllan. Fรถr fรฅ eller fรถr mรฅnga inmatningsportar betyder nรคstan alltid att vรคrdet fรถr Fรถrekommer รคr fel. รppna fliken Normaliserare igen och stรคll in Fรถrekommer till exakt antal upprepade kolumner, lรคnka sedan om kartan.ping, eftersom รคndringen Occurs รฅterskapar portarna.
- Intrรคffar i en engรฅngsfรถrekommande kolumn. Om butiksnamnet fรฅr ett Occurs-vรคrde stรถrre รคn 0 multipliceras rader som aldrig var avsedda att upprepas. Engรฅngsfรถrekommande kolumner behรฅller vรคrdet 0.
- Datumkolumner kan inte definieras. Fliken Normaliserare accepterar endast kolumnerna String, Nstring och Number, sรฅ ett datum mรฅste bรคras som en strรคng och konverteras i en Expression-transformation innan det nรฅr mรฅlet.
- Radantalet ser fel ut i sessionsloggen. Att lรคsa tvรฅ kรคllrader och skriva รฅtta mรฅlrader รคr korrekt beteende fรถr ett Occurs-vรคrde pรฅ 4, inte en defekt. Normaliseraren รคr aktiv just fรถr att dessa antal skiljer sig รฅt.
- Genererade nycklar upprepas eller hoppar mellan kรถrningar. Detta รคr paret ร terstรคll och Starta om pรฅ fliken Egenskaper. Omstart tvingar sekvensen tillbaka till 1 fรถr varje session, vilket sรคllan รคr รถnskvรคrt nรคr nyckeln landar i en datalagertabell.
- Redigeringar pรฅ fliken Portar kommer inte att sparas. Portar genereras, inte redigeras. Varje kolumnรคndring hรถr hemma pรฅ fliken Normaliserare, och fรถr en VSAM-normaliserare hรถr รคndringen hemma i sjรคlva COBOL-kรคllan.
Nรคr flera upprepande grupper mรฅste delas upp samtidigt รคr det vanligtvis renare att anvรคnda en Normalizer per grupp och kombinera resultaten nedstrรถms รคn att รถverbelasta en enda transformation. Om kravet gรฅr รฅt andra hรฅllet, och mรฅnga rader komprimeras till en, Aggregatortransformation รคr rรคtt verktyg istรคllet.






