Transformacija normalizatora u Informatici s PRIMJEROM
⚡ Pametni sažetak
Normalizatorska transformacija u Informatici je aktivna transformacija koja pretvara jedan redak koji sadrži ponavljajuće stupce u više redaka, a također generira ključne stupce koji identificiraju svaku pojavu koju proizvodi.
Što je transformacija normalizatora?
Normalizator je aktivna transformacija koja se koristi za pretvaranje jednog retka u više redaka i obrnuto. To je pametan način predstavljanja podataka na organiziraniji način.
Ako se u jednom retku podaci ponavljaju u više stupaca, tada se može podijeliti u više redaka. Ponekad imamo podatke u više stupaca koji se pojavljuju. Na primjer:
| Ime studenta | Rezultat 9. razreda | Rezultat 10. razreda | Rezultat 11. razreda | Rezultat 12. razreda |
| Student 1 | 50 | 60 | 65 | 80 |
| Student 2 | 70 | 64 | 83 | 77 |
U ovom slučaju, stupac s rezultatima razreda ponavlja se u četiri stupca. Pomoću Normalizatora možemo ih podijeliti u sljedeći skup podataka.
| Ime studenta | Klasa | Bodovi |
| 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 |
Dva reda od pet stupaca postala su osam redova od tri stupca. Budući da se broj redaka koji izlaze iz transformacije razlikuje od broja koji u nju ulaze, Normalizator je aktivna transformacija i isto pravilo vrijedi i za primjer prodaje izgrađen u sljedećem odjeljku.
Kako koristiti normalizatorsku transformaciju u Informatici
Sljedećih šest koraka izrađuje mapuping koji čita ravnu datoteku kvartalne prodaje u trgovini i zapisuje jedan ciljni redak po kvartalu.
Korak 1) Stvorite izvornu tablicu "sales_source" i ciljnu tablicu "sales_target" pomoću skripte i uvezite ih Informatika.
Preuzmite gornju datoteku Sales_Source.txt
Korak 2) Izradi kartuping s izvornom tablicom „sales_source“ i ciljnom tablicom „sales_target“. Mapaping Dizajnersko platno zatim sadrži definiciju izvora, njezinu Kvalifikator izvora i definiciju cilja.
Korak 3) Iz izbornika Transformacija stvorite novu transformaciju. U prozoru Stvori transformaciju:
- Odaberite Normalizator kao transformaciju
- Unesite naziv, “nrm_sales”
- Odaberite opciju za stvaranje
Prozor izgleda kao na snimci zaslona ispod, s popisom vrsta transformacije s lijeve strane i okvirom za naziv ispod.
Korak 4) Transformacija će biti kreirana, odaberite opciju "gotovo". Prazna transformacija nrm_sales sada se nalazi na platnu između kvalifikatora izvora i cilja.
Korak 5) Double kliknite na transformaciju Normalizatora, zatim:
- Odaberite karticu Normalizator
- Kliknite na ikonu za stvaranje dva stupca
- Unesite nazive stupaca
- Postavite broj pojavljivanja na 4 za prodaju i 0 za naziv trgovine
- Odaberite gumb OK
Vrijednost "Pojavljuje se" je najvažniji unos na ovoj kartici: ona govori dizajneru koliko se puta stupac ponavlja u jednom izvornom retku. Naziv trgovine pojavljuje se jednom po retku, pa vrijednost "Pojavljuje se" ostaje na 0.
Stupci će se generirati u transformaciji. Vidjet ćete 4 broja stupaca prodaje jer smo broj pojavljivanja postavili na 4. Uz njih, Dizajner dodaje generirani ključ i generirane portove ID-a stupca opisane u sljedećem odjeljku.
Korak 6) Zatim u kartaping:
- Povežite četiri stupca kvalifikatora izvora četiri četvrtine sa stupcima normalizatora.
- Povežite stupac naziva trgovine sa stupcem normalizatora
- Povežite stupce store_name & sales iz normalizatora s ciljnom tablicom
- Povežite stupac GK_sales iz normalizatora s ciljnom tablicom
Nakon što je svaka veza nacrtana, karta je dovršenaping izgleda ovako.
Spremi kartuping i izvršite ga nakon kreiranja Sjednica i tijek rada. Za svaku tromjesečnu prodaju trgovine transformacijom normalizatora kreirat će se zaseban redak.
Izlaz naše karteping bit će kao –
| Naziv trgovine | Četvrtina | Prodaja |
| DELHI | 1 | 150 |
| DELHI | 2 | 240 |
| DELHI | 3 | 455 |
| DELHI | 4 | 100 |
| MUMBAI | 1 | 100 |
| MUMBAI | 2 | 500 |
| MUMBAI | 3 | 350 |
| MUMBAI | 4 | 340 |
Izvorni podaci imali su ponavljajuće stupce, i to TROMJESEČJE1, TROMJESEČJE2, TROMJESEČJE3 i TROMJESEČJE4. Pomoću Normalizatora preuredili smo podatke kako bi stali u jedan stupac TROMJESEČJA, a za jedan izvorni zapis u cilju su stvorena četiri zapisa.
Na taj način možete normalizirati podatke i stvoriti više zapisa za jedan izvor podataka.
Portovi i svojstva transformacije normalizatora
Stupci se nikada ne upisuju na kartici Portovi. Definiraju se na kartici Normalizator, a Dizajner zatim automatski stvara odgovarajuće portove. Tablica u nastavku objašnjava što svaki unos i svaki generirani port radi.
| Port ili atribut | Ono što se također |
| Pojavljuje se | Broj instanci stupca u jednom izvornom retku. Vrijednost 0 označava stupac koji se pojavljuje samo jednom, kao što je naziv trgovine. |
| Nivo | Grupira stupce u hijerarhiju zapisa. Koristi se za COBOL izvore i ostaje na 0 za ravnu strukturu. |
| Ulazna vrata | Normalizator cjevovoda stvara jedan ulazni port po pojavi, tako da vrijednost Occurs od 4 proizvodi četiri ulazna porta. |
| Izlazni priključak | Višestruko pojavljivani stupac ima jedan izlazni port koji vraća jedan redak po pojavljivanju. |
| GK_ | Generirani ključ. Integration Service povećava ovaj redni broj svaki put kada obrađuje izvorni redak. |
| GCID_ | Generirani ID stupca. To je indeks pojavljivanja, pa stupac koji se pojavljuje četiri puta vraća 1, 2, 3 ili 4. |
Razlika između dva generirana porta vrijedi zapamtiti, jer oba izgledaju kao brojači. GCID ponovno počinje od 1 za svaki izvorni redak, dok GK nastavlja rasti tijekom cijele sesije. Na karti prodajeping, GK_sales je port povezan s ciljem, tako da svaki od osam izlaznih redaka nosi zaseban ključ.
Dvije postavke na kartici Svojstva kontroliraju kako se ta tipka ponaša između izvršavanja. Reset vraća generiranu vrijednost ključa na kraju sesije na vrijednost koju je imao prije početka sesije. Restart pokreće generirani niz tipki od 1 svaki put kada se sesija pokrene, poništavajući vrijednost niza prikazanu na kartici Portovi. Potpune definicije atributa objavljene su u Vodič za transformaciju PowerCentera.
VSAM normalizator u odnosu na normalizator cjevovoda
PowerCenter isporučuje dvije verzije iste transformacije, a gornji primjer koristi drugu. Odabir između njih u potpunosti određuje izvor.
| Aspekt | VSAM normalizator | Normalizator cjevovoda |
| Uloga na kartiping | Djeluje kao kvalifikator izvora za COBOL definiciju izvora | Nalazi se bilo gdje u cjevovodu, nizvodno od normalnog kvalifikatora izvora |
| Kako se stvara | Automatski se stvara kada se COBOL izvorni kod povuče na kartuping | Izrađeno iz izbornika Transformacija, kao u 3. koraku iznad |
| Ulazni portovi za ponavljajući stupac | Jedan ulazni port za cijeli višestruko pojavljivajući stupac | Jedan ulazni port za svaku pojavu stupca |
| Uređivanje stupaca | Promijenite COBOL izvorni kod i ponovno stvorite transformaciju | Uredite stupce na kartici Normalizator u bilo kojem trenutku |
| Tipični podaci | Datoteke glavnog računala koje koriste klauzule OCCURS i REDEFINES | Ponavljanje stupaca u relacijskim tablicama i ravnim datotekama |
COBOL datoteka također može sadržavati nekoliko vrsta zapisa u istoj fizičkoj datoteci, zbog čega VSAM verzija čita bilježnicu umjesto popisa stupaca. Za svakodnevne ETL Za rad s bazama podataka i razgraničenim datotekama, Pipeline Normalizer je onaj kojem treba pristupiti.
Uobičajene pogreške transformacije normalizatora i kako ih ispraviti
Većina problema s normalizatorom tracnatrag na dvije ili tri postavke. Donji popis pokriva one koje se najčešće pojavljuju tijekom razvoja.
- Popis portova ne odgovara izvoru. Premalo ili previše ulaznih portova gotovo uvijek znači da je vrijednost Occurs (Pojavljivanja) pogrešna. Ponovno otvorite karticu Normalizator i postavite Occurs (Pojavljivanja) na točan broj ponavljajućih stupaca, a zatim ponovno povežite mapu.ping, jer promjena Događa se ponovno gradi portove.
- Pojavljuje se u stupcu koji se pojavljuje samo jednom. Davanje vrijednosti Occurs za naziv trgovine većoj od 0 množi retke koji se nikada nisu trebali ponavljati. Stupci koji se pojavljuju samo jednom ostaju na 0.
- Stupci datuma ne mogu se definirati. Kartica Normalizator prihvaća samo stupce tipa String, Nstring i Number, tako da se datum mora prenijeti kao string i pretvoriti u transformaciji Expression prije nego što dosegne cilj.
- Broj redaka izgleda pogrešno u zapisniku sesije. Čitanje dvaju izvornih redaka i pisanje osam ciljnih redaka je ispravno ponašanje za vrijednost Occurs od 4, a ne kvar. Normalizator je aktivan upravo zato što se ti brojevi razlikuju.
- Generirani ključevi se ponavljaju ili skaču između izvršavanja. Ovo je par Reset i Restart na kartici Svojstva. Restart prisiljava slijed natrag na 1 za svaku sesiju, što je rijetko poželjno kada se ključ nalazi u skladišnoj tablici.
- Uređenja na kartici Portovi neće se zadržati. Portovi se generiraju, a ne autoriziraju. Svaka promjena stupca pripada kartici Normalizator, a za VSAM Normalizator promjena pripada samom COBOL izvornom kodu.
Kada se nekoliko ponavljajućih grupa mora podijeliti odjednom, obično je čišće koristiti jedan Normalizator po grupi i kombinirati rezultate nizvodno nego preopteretiti jednu transformaciju. Tamo gdje zahtjev ide u suprotnom smjeru, sažimajući više redaka u jedan, Transformacija agregatora je umjesto toga pravi alat.







