Normalizer Transformation in Informatica cu EXEMPLU
โก Rezumat inteligent
Transformarea normalizatorului รฎn Informatica este o transformare activฤ care converteศte un singur rรขnd care conศine coloane repetitive รฎn mai multe rรขnduri ศi genereazฤ, de asemenea, coloanele cheie care identificฤ fiecare apariศie pe care o produce.

Ce este transformarea normalizatorului?
Normalizatorul este o transformare activฤ, utilizatฤ pentru a converti un singur rรขnd รฎn mai multe rรขnduri ศi invers. Este o modalitate inteligentฤ de a reprezenta datele รฎntr-un mod mai organizat.
Dacฤ รฎntr-un singur rรขnd existฤ date repetitive รฎn mai multe coloane, atunci acesta poate fi รฎmpฤrศit รฎn mai multe rรขnduri. Uneori avem date รฎn mai multe coloane care apar. De exemplu:
| Numele studentului | Scor clasa 9 | Scor clasa 10 | Scor clasa 11 | Scor clasa 12 |
| Elevul 1 | 50 | 60 | 65 | 80 |
| Elevul 2 | 70 | 64 | 83 | 77 |
รn acest caz, coloana cu scorul clasei se repetฤ รฎn patru coloane. Folosind Normalizatorul, putem รฎmpฤrศi acestea รฎn urmฤtorul set de date.
| Numele studentului | Clasฤ | Scor |
| Elevul 1 | 9 | 50 |
| Elevul 1 | 10 | 60 |
| Elevul 1 | 11 | 65 |
| Elevul 1 | 12 | 80 |
| Elevul 2 | 9 | 70 |
| Elevul 2 | 10 | 64 |
| Elevul 2 | 11 | 83 |
| Elevul 2 | 12 | 77 |
Douฤ rรขnduri de cรขte cinci coloane au devenit opt โโrรขnduri de cรขte trei coloane. Deoarece numฤrul de rรขnduri care ies din transformare diferฤ de numฤrul de rรขnduri care intrฤ รฎn aceasta, Normalizatorul este o transformare activฤ, iar aceeaศi regulฤ se aplicฤ exemplului de vรขnzฤri construit รฎn secศiunea urmฤtoare.
Cum se utilizeazฤ transformarea normalizatorului รฎn Informatica
Urmฤtorii ศase paศi construiesc o hartฤping care citeศte un fiศier plat cu vรขnzฤrile trimestriale din magazine ศi scrie cรขte un rรขnd ศintฤ pe trimestru.
Pas 1) Creaศi tabelul sursฤ โsales_sourceโ ศi tabelul ศintฤ โsales_targetโ folosind scriptul ศi importaศi-le รฎn Informaticฤ.
Descฤrcaศi fiศierul Sales_Source.txt de mai sus
Pas 2) Creaศi o hartฤping avรขnd sursa โsales_sourceโ ศi tabela ศintฤ โsales_targetโ. Hartaping Canvasul de designer conศine apoi definiศia sursei, Calificator sursฤ ศi definiศia ศintei.
Pas 3) Din meniul Transformare, creaศi o nouฤ transformare. รn fereastra Creare transformare:
- Selectaศi Normalizatorul ca transformare
- Introduceศi numele, โnrm_salesโ
- Selectaศi opศiunea de creare
Fereastra aratฤ ca รฎn captura de ecran de mai jos, cu lista tipurilor de transformare รฎn stรขnga ศi caseta cu numele dedesubt.
Pas 4) Transformarea va fi creatฤ, selectaศi opศiunea โTerminatโ. Transformarea nrm_sales goalฤ se aflฤ acum pe pรขnza dintre Calificatorul Sursฤ ศi ศintฤ.
Pas 5) Double faceศi clic pe transformarea Normalizer, apoi:
- Selectaศi fila Normalizator
- Faceศi clic pe pictogramฤ pentru a crea douฤ coloane
- Introduceศi numele coloanelor
- Setaศi numฤrul de apariศii la 4 pentru vรขnzฤri ศi 0 pentru numele magazinului
- Selectaศi butonul OK
Valoarea โOcursโ este cea mai importantฤ intrare din aceastฤ filฤ: รฎi spune designerului de cรขte ori se repetฤ coloana รฎntr-un rรขnd sursฤ. Numele magazinului apare o datฤ pe rรขnd, deci valoarea sa โOcursโ rฤmรขne la 0.
รn cadrul transformฤrii vor fi generate coloane. Veศi vedea 4 coloane de vรขnzฤri, deoarece am setat numฤrul de apariศii la 4. Alฤturi de acestea, Designer adaugฤ cheia generatฤ ศi porturile ID ale coloanei generate, descrise รฎn secศiunea urmฤtoare.
Pas 6) Apoi รฎn Hartฤping:
- Conectaศi cele patru coloane ale calificatorului sursฤ din cele patru sferturi de coloanele de normalizare, respectiv.
- Conectaศi coloana cu numele magazinului la coloana normalizatorului
- Conectaศi coloanele store_name ศi vรขnzฤri de la normalizator la tabelul ศintฤ
- Conectaศi coloana GK_sales de la normalizator la tabelul ศintฤ
Odatฤ ce fiecare legฤturฤ este desenatฤ, harta completฤping arata asa.
Salvaศi hartaping ศi executaศi-l dupฤ creare sesiune ศi flux de lucru. Pentru fiecare vรขnzฤri trimestriale ale unui magazin, un rรขnd separat va fi creat prin transformarea normalizatorului.
Rezultatul hฤrศii noastreping va fi ca โ
| Numele magazinului | Trimestru | Vรขnzฤri |
| DELHI | 1 | 150 |
| DELHI | 2 | 240 |
| DELHI | 3 | 455 |
| DELHI | 4 | 100 |
| Mumbai | 1 | 100 |
| Mumbai | 2 | 500 |
| Mumbai | 3 | 350 |
| Mumbai | 4 | 340 |
Datele sursฤ aveau coloane repetitive, ศi anume TRIMESTRUL1, TRIMESTRUL2, TRIMESTRUL3 ศi TRIMESTRUL4. Cu ajutorul Normalizatorului, am rearanjat datele pentru a se potrivi รฎntr-o singurฤ coloanฤ a TRIMESTRULUI, iar pentru o รฎnregistrare sursฤ sunt create patru รฎnregistrฤri รฎn ศintฤ.
รn acest fel, puteศi normaliza datele ศi puteศi crea mai multe รฎnregistrฤri pentru o singurฤ sursฤ de date.
Porturi ศi proprietฤศi ale transformฤrii normalizatorului
Coloanele nu sunt niciodatฤ tastate รฎn fila Porturi. Acestea sunt definite รฎn fila Normalizator, iar Designer creeazฤ apoi automat porturile corespunzฤtoare. Tabelul de mai jos explicฤ ce face fiecare intrare ศi fiecare port generat.
| Port sau atribut | Ce face |
| apare | Numฤrul de instanศe ale coloanei รฎntr-un rรขnd sursฤ. O valoare de 0 marcheazฤ o coloanฤ cu o singurฤ apariศie, cum ar fi numele magazinului. |
| Nivel | Grupeazฤ coloanele รฎntr-o ierarhie de รฎnregistrฤri. Se utilizeazฤ pentru sursele COBOL ศi rฤmรขne la 0 pentru o structurฤ platฤ. |
| Porturi de intrare | Un normalizator de pipeline creeazฤ un port de intrare per apariศie, astfel รฎncรขt o valoare Occurs de 4 produce patru porturi de intrare. |
| port de ieศire | O coloanฤ cu apariศii multiple are un singur port de ieศire care returneazฤ un rรขnd per apariศie. |
| GK_ | Cheie generatฤ. Serviciul de integrare incrementeazฤ acest numฤr de secvenศฤ de fiecare datฤ cรขnd proceseazฤ un rรขnd sursฤ. |
| GCID_ | ID-ul coloanei generate. Este indexul apariศiei, deci o coloanฤ care apare de patru ori returneazฤ 1, 2, 3 sau 4. |
Diferenศa dintre cele douฤ porturi generate meritฤ ศinutฤ minte, deoarece ambele aratฤ ca niศte contoare. GCID reporneศte de la 1 pentru fiecare rรขnd sursฤ, รฎn timp ce GK continuฤ sฤ creascฤ pe parcursul รฎntregii sesiuni. รn harta vรขnzฤrilorping, GK_sales este portul legat la ศintฤ, deci fiecare dintre cele opt rรขnduri de ieศire poartฤ o cheie distinctฤ.
Douฤ setฤri din fila Proprietฤศi controleazฤ modul รฎn care se comportฤ acea cheie รฎntre execuศii. Reseteaza returneazฤ valoarea cheii generate la sfรขrศitul sesiunii la valoarea pe care o avea รฎnainte de รฎnceperea sesiunii. Repornire porneศte secvenศa de taste generatฤ de la 1 de fiecare datฤ cรขnd sesiunea ruleazฤ, suprascriind valoarea secvenศei afiศatฤ รฎn fila Porturi. Definiศiile complete ale atributelor sunt publicate รฎn Ghid de transformare PowerCenter.
Normalizator VSAM vs. Normalizator de conducte
PowerCenter livreazฤ douฤ versiuni ale aceleiaศi transformฤri, iar exemplul de mai sus foloseศte a doua. Alegerea รฎntre ele este decisฤ รฎn รฎntregime de sursฤ.
| Aspect | Normalizator VSAM | Normalizator de conducte |
| Rolul pe hartฤping | Acศioneazฤ ca ศi calificator sursฤ pentru o definiศie sursฤ COBOL | Se aflฤ oriunde รฎn conductฤ, รฎn aval de un calificator sursฤ normal |
| Cum este creat | Creat automat cรขnd sursa COBOL este trasฤ รฎn hartฤping | Creat din meniul Transformare, ca รฎn Pasul 3 de mai sus |
| Porturi de intrare pentru o coloanฤ repetitivฤ | Un port de intrare pentru รฎntreaga coloanฤ cu apariศii multiple | Un port de intrare pentru fiecare apariศie a coloanei |
| Editarea coloanelor | Schimbaศi sursa COBOL ศi recreaศi transformarea | Editaศi oricรขnd coloanele din fila Normalizator |
| Date tipice | Fiศiere mainframe care utilizeazฤ clauzele OCCURS ศi REDEFINES | Coloane repetitive รฎn tabele relaศionale ศi fiศiere plate |
Un fiศier COBOL poate conศine, de asemenea, mai multe tipuri de รฎnregistrฤri รฎn acelaศi fiศier fizic, motiv pentru care versiunea VSAM citeศte un caiet de copii รฎn loc de o listฤ de coloane. Pentru utilizarea de zi cu zi ETL Pentru a lucra รฎmpotriva bazelor de date ศi a fiศierelor delimitate, Normalizatorul de conducte este cel pe care trebuie sฤ รฎl utilizaศi.
Erori comune ale transformฤrii normalizatorului ศi cum sฤ le remediaศi
Majoritatea problemelor cu normalizatorul tracRevenim la douฤ sau trei setฤri. Lista de mai jos le prezintฤ pe cele care apar cel mai des รฎn timpul dezvoltฤrii.
- Lista de porturi nu corespunde cu sursa. Prea puศine sau prea multe porturi de intrare รฎnseamnฤ aproape รฎntotdeauna cฤ valoarea Occurs este greศitฤ. Redeschideศi fila Normalizer ศi setaศi Occurs la numฤrul exact de coloane repetitive, apoi reconectaศi harta.ping, deoarece modificarea parametrilor โOccursโ reconstruieศte porturile.
- Apare setat pe o coloanฤ cu o singurฤ apariศie. Dacฤ se atribuie numelui magazinului o valoare โOccursโ mai mare decรขt 0, se รฎnmulศesc rรขndurile care nu ar fi trebuit sฤ se repete. Coloanele care apar o singurฤ datฤ rฤmรขn la 0.
- Coloanele cu date nu pot fi definite. Fila Normalizator acceptฤ doar coloane de tip String, Nstring ศi Number, deci o datฤ trebuie transportatฤ ca ศir de caractere ศi convertitฤ รฎntr-o transformare Expression รฎnainte de a ajunge la ศintฤ.
- Numฤrul de rรขnduri pare greศit รฎn jurnalul de sesiune. Citirea a douฤ rรขnduri sursฤ ศi scrierea a opt rรขnduri ศintฤ este un comportament corect pentru o valoare Occurs de 4, nu un defect. Normalizatorul este activ tocmai pentru cฤ aceste numฤrฤri diferฤ.
- Cheile generate se repetฤ sau sar รฎntre rulฤri. Aceasta este perechea Resetare ศi Repornire din fila Proprietฤศi. Repornirea forศeazฤ secvenศa รฎnapoi la 1 pentru fiecare sesiune, ceea ce este rareori dorit atunci cรขnd cheia ajunge รฎntr-un tabel de tip warehouse.
- Modificฤrile din fila Porturi nu vor fi pฤstrate. Porturile sunt generate, nu create. Fiecare modificare de coloanฤ aparศine filei Normalizator, iar pentru un Normalizator VSAM modificarea aparศine sursei COBOL รฎn sine.
Cรขnd mai multe grupuri repetitive trebuie รฎmpฤrศite simultan, este de obicei mai util sฤ se utilizeze un Normalizator per grup ศi sฤ se combine rezultatele รฎn aval decรขt sฤ se supraรฎncarce o singurฤ transformare. รn cazul รฎn care cerinศa funcศioneazฤ รฎn sens invers, restrรขngerea mai multor rรขnduri รฎntr-unul singur, o Transformarea agregatorului este รฎn schimb instrumentul potrivit.






