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.

  • ๐Ÿ” Rรขnduri din coloane: Patru coloane de vรขnzฤƒri trimestriale dintr-un rรขnd sursฤƒ devin patru rรขnduri ศ›intฤƒ, cรขte unul pentru fiecare trimestru.
  • ๐Ÿ”ข Se รฎntรขmplฤƒ totul: Valoarea Occurs din fila Normalizer decide cรขte porturi de intrare ศ™i cรขte rรขnduri de ieศ™ire sunt create.
  • ๐Ÿงช Exemplu lucrat: ศ˜ase Hartฤƒping Paศ™ii de designer mutฤƒ un fiศ™ier plat sales_source รฎntr-un tabel sales_target prin transformarea nrm_sales.
  • ๐Ÿ”‘ Porturi generate: GK_ returneazฤƒ o cheie incrementalฤƒ pentru fiecare rรขnd sursฤƒ, รฎn timp ce GCID_ returneazฤƒ indicele de apariศ›ie de la 1 la N.
  • ๐Ÿ—‚๏ธ Douฤƒ arome: Normalizorul VSAM citeศ™te surse COBOL, รฎn timp ce normalizatorul de pipeline gestioneazฤƒ date relaศ›ionale ศ™i fiศ™iere plate.
  • โš ๏ธ Capcanฤƒ comunฤƒ: Setarea valorii โ€žOccursโ€ pe o coloanฤƒ cu o singurฤƒ apariศ›ie sau lฤƒsarea acesteia la zero pentru o coloanฤƒ repetitivฤƒ รฎntrerupe lista de porturi.

Normalizer Transformation รฎn Informatica

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.

Hartฤƒping Canvasul de designer cu definiศ›ia sales_source, calificatorul sฤƒu sursฤƒ ศ™i tabelul sales_target

Pas 3) Din meniul Transformare, creaศ›i o nouฤƒ transformare. รŽn fereastra Creare transformare:

  1. Selectaศ›i Normalizatorul ca transformare
  2. Introduceศ›i numele, โ€žnrm_salesโ€
  3. 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.

Fereastra Creare Transformare cu Normalizatorul selectat ศ™i numele nrm_sales introdus

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ฤƒ.

Hartฤƒping pรขnzฤƒ care prezintฤƒ transformarea nrm_sales Normalizer nou creatฤƒ, fฤƒrฤƒ coloane รฎncฤƒ

Pas 5) Double faceศ›i clic pe transformarea Normalizer, apoi:

  1. Selectaศ›i fila Normalizator
  2. Faceศ›i clic pe pictogramฤƒ pentru a crea douฤƒ coloane
  3. Introduceศ›i numele coloanelor
  4. Setaศ›i numฤƒrul de apariศ›ii la 4 pentru vรขnzฤƒri ศ™i 0 pentru numele magazinului
  5. 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.

Fila Normalizator din fereastra Editare transformฤƒri cu coloana vรขnzฤƒri setatฤƒ la patru apariศ›ii ศ™i numele magazinului setat la zero

รŽ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.

Listฤƒ de porturi generatฤƒ pentru nrm_sales, care aratฤƒ patru porturi de intrare pentru vรขnzฤƒri, plus porturile GK ศ™i GCID

Pas 6) Apoi รฎn Hartฤƒping:

  1. Conectaศ›i cele patru coloane ale calificatorului sursฤƒ din cele patru sferturi de coloanele de normalizare, respectiv.
  2. Conectaศ›i coloana cu numele magazinului la coloana normalizatorului
  3. Conectaศ›i coloanele store_name ศ™i vรขnzฤƒri de la normalizator la tabelul ศ›intฤƒ
  4. Conectaศ›i coloana GK_sales de la normalizator la tabelul ศ›intฤƒ

Odatฤƒ ce fiecare legฤƒturฤƒ este desenatฤƒ, harta completฤƒping arata asa.

Hartฤƒ completatฤƒping cu cele patru porturi secundare ศ™i numele magazinului legate รฎn nrm_sales ศ™i porturile store_name, sales ศ™i GK_sales legate la sales_target

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.

รŽntrebฤƒri frecvente

Nu. Transformarea รฎmparte doar un rรขnd รฎn mai multe. Restrรขngerea mai multor rรขnduri รฎntr-unul singur se face cu un agregator sau cu o expresie care pivoteazฤƒ valorile folosind porturi variabile, รฎn funcศ›ie de forma coloanelor de ieศ™ire.

Numai ศ™iruri de caractere, ศ™iruri N ศ™i numฤƒr. Nu existฤƒ opศ›iunea Datetime รฎn fila Normalizer, aศ™adar valorile datei trebuie sฤƒ treacฤƒ prin transformare ca ศ™iruri de caractere ศ™i sฤƒ fie convertite รฎntr-o transformare Expression pe ambele pฤƒrศ›i ale acesteia.

Da. Hartฤƒ de integrare a datelor รฎn cloudping designer oferฤƒ o transformare Normalizer cu acelaศ™i scop, configuratฤƒ printr-o valoare care apare per cรขmp. Aspectul filelor diferฤƒ de PowerCenter, aศ™adar hartapingsunt reconstruite รฎn loc sฤƒ fie copiate.

O uniune รฎmbinฤƒ rรขndurile care sosesc din mai multe conducte รฎntr-un singur flux cu o listฤƒ de porturi partajatฤƒ. Un normalizator lucreazฤƒ pe o singurฤƒ conductฤƒ ศ™i รฎnmulศ›eศ™te rรขndurile din coloanele repetitive din interiorul fiecฤƒrei รฎnregistrฤƒri primite.

Un normalizator de canalizare poate fi construit รฎn Transformation Developer sau promovat dintr-o hartฤƒ.pingศ™i apoi partajat. Un normalizator VSAM nu poate, deoarece este legat de definiศ›ia sursฤƒ COBOL care l-a generat.

Transformarea รฎn sine este ieftinฤƒ deoarece nu deศ›ine memoria cache. Costul apare รฎn aval: o valoare Occurs de patru cvadrupleazฤƒ volumul de rรขnduri la fiecare transformare ulterioarฤƒ ศ™i pe care trebuie sฤƒ-l gestioneze scriitorul ศ›intฤƒ.

Modelele de profilare scaneazฤƒ coloanele sursฤƒ ศ™i semnalizeazฤƒ grupuri repetitive, cum ar fi TRIMESTRUL1 pรขnฤƒ la TRIMESTRUL4, care aparศ›in unor rรขnduri ศ™i nu unor coloane. Sugestia este un punct de plecare โ€” valorile โ€žoccuresโ€ ศ™i gestionarea cheilor necesitฤƒ รฎn continuare confirmarea de cฤƒtre un dezvoltator.

Ajutฤƒ pe hartฤƒping mai degrabฤƒ decรขt รฎn โ€‹โ€‹interiorul acestuia โ€” scriind codul SQL care anuleazฤƒ pivotarea unui tabel pentru comparaศ›ie, generรขnd date de testare sau elaborรขnd fiศ™iere de parametri. Canvasul Designer รฎn sine nu este ceva ce Copilot poate edita.

Rezumaศ›i aceastฤƒ postare cu: