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.

  • ๐Ÿ” Rader ur kolumner: Fyra kolumner fรถr kvartalsfรถrsรคljning pรฅ en kรคllrad blir fyra mรฅlrader, en fรถr varje kvartal.
  • ๐Ÿ”ข Intrรคffar driver allt: Vรคrdet Occurs pรฅ fliken Normaliserare avgรถr hur mรฅnga indataportar och hur mรฅnga utdatarader som skapas.
  • ๐Ÿงช Utarbetat exempel: Sex kartaping Designersteg flyttar en sales_source-plattfil till en sales_target-tabell genom transformationen nrm_sales.
  • ๐Ÿ”‘ Genererade portar: GK_ returnerar en รถkande nyckel fรถr varje kรคllrad, medan GCID_ returnerar fรถrekomstindexet frรฅn 1 till N.
  • ๐Ÿ—‚๏ธ Tvรฅ smaker: VSAM Normalizer lรคser COBOL-kรคllor, medan pipeline Normalizer hanterar relations- och flatfilsdata.
  • โš ๏ธ Vanlig fรคlla: Om instรคllningen Occups (Om intrรคffar) anvรคnds fรถr en engรฅngskolumn, eller om den lรคmnas pรฅ noll fรถr en upprepande kolumn, bryts portlistan.

Normalizer Transformation i Informatica

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.

Kartaping Designer-arbetsyta med definitionen sales_source, dess kรคllkvalificerare och tabellen sales_target

Steg 3) Skapa en ny transformation frรฅn menyn Transformation. I fรถnstret Skapa transformation:

  1. Vรคlj Normaliserare som transformation
  2. Ange namn, "nrm_sales"
  3. Vรคlj skapa alternativ

Fรถnstret ser ut som skรคrmdumpen nedan, med listan รถver transformationstyper till vรคnster och namnrutan under.

Skapa transformationsfรถnster med Normaliserare vald och namnet nrm_sales angivet

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.

Kartaping arbetsyta som visar den nyligen skapade nrm_sales Normalizer-transformationen utan nรฅgra kolumner รคnnu

Steg 5) Double klicka pรฅ Normalizer-transformationen och gรถr sedan fรถljande:

  1. Vรคlj fliken Normaliserare
  2. Klicka pรฅ ikonen fรถr att skapa tvรฅ kolumner
  3. Ange kolumnnamn
  4. Stรคll in antalet fรถrekomster till 4 fรถr fรถrsรคljning och 0 fรถr butiksnamn
  5. 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.

Fliken Normalisering i fรถnstret Redigera transformationer med fรถrsรคljningskolumnen instรคlld pรฅ fyra fรถrekomster och butiksnamnet instรคllt pรฅ noll

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.

Genererad portlista fรถr nrm_sales som visar fyra fรถrsรคljningsinmatningsportar plus GK- och GCID-portarna

Steg 6) Sedan i kartaping:

  1. Lรคnka de fyra kolumnerna i kรคllkvalificeraren fรถr de fyra kvartalen till respektive normaliseringskolumner.
  2. Lรคnka kolumnen butiksnamn till normaliseringskolumnen
  3. Lรคnka butiksnamn och fรถrsรคljningskolumner frรฅn normaliserare till mรฅltabell
  4. 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.

Fรคrdig kartaping med de fyra kvartalsportarna och butiksnamnet lรคnkade till nrm_sales och store_name-, sales- och GK_sales-portarna lรคnkade till sales_target

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.

Vanliga frรฅgor

Nej. Transformationen delar bara upp en rad i mรฅnga. Att komprimera mรฅnga rader till en gรถrs med en aggregator eller med ett uttryck som pivoterar vรคrden med hjรคlp av variabla portar, beroende pรฅ hur utdatakolumnerna รคr formade.

Endast strรคng, Nstrรคng och tal. Det finns inget alternativ fรถr datum och tid pรฅ fliken Normaliserare, sรฅ datumvรคrden mรฅste passera genom transformationen som strรคngar och konverteras i en uttryckstransformation pรฅ vardera sidan om den.

Ja. Karta รถver molndataintegrationping designern erbjuder en Normalizer-transformation med samma syfte, konfigurerad genom ett intrรคffande vรคrde per fรคlt. Fliklayouten skiljer sig frรฅn PowerCenter, sรฅ mappapings byggs om snarare รคn kopieras รถver.

En Union sammanfogar rader som kommer frรฅn flera pipelines till en strรถm med en delad portlista. En Normalizer arbetar pรฅ en pipeline och multiplicerar rader frรฅn upprepade kolumner inuti varje inkommande post.

En pipeline-normaliserare kan byggas i Transformation Developer, eller befordras frรฅn en kartaping, och sedan delas. En VSAM-normaliserare kan inte det, eftersom den รคr knuten till COBOL-kรคlldefinitionen som genererade den.

Sjรคlva transformationen รคr billig eftersom den inte innehรฅller nรฅgon cache. Kostnaden uppstรฅr nedstrรถms: ett Occurs-vรคrde pรฅ fyra fyrdubblar radvolymen fรถr varje senare transformation som mรฅlskribenten mรฅste hantera.

Profileringsmodeller skannar kรคllkolumner och flaggar upprepande grupper som KVARTAL 1 till KVARTAL 4 som hรถr hemma i rader snarare รคn kolumner. Fรถrslaget รคr en utgรฅngspunkt โ€“ vรคrden som intrรคffar och nyckelhantering krรคver fortfarande en utvecklare fรถr att bekrรคfta dem.

Det hjรคlper runt kartanping snarare รคn inuti den โ€” att skriva SQL-koden som avpivoterar en tabell fรถr jรคmfรถrelse, generera testdata eller utarbeta parameterfiler. Designer-arbetsytan i sig รคr inte nรฅgot som Copilot kan redigera.

Sammanfatta detta inlรคgg med: