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.

  • 🔁 Redovi izvan stupaca: Četiri stupca kvartalne prodaje u jednom izvornom retku postaju četiri ciljna retka, po jedan za svako tromjesečje.
  • 🔢 Događa se pokreće sve: Vrijednost Occurs na kartici Normalizator određuje koliko se ulaznih portova i koliko izlaznih redaka stvara.
  • 🧪 Obrađeni primjer: Šest mapaping Koraci dizajnera premještaju ravnu datoteku sales_source u tablicu sales_target putem transformacije nrm_sales.
  • 🔑 Generirani portovi: GK_ vraća inkrementirajući ključ za svaki izvorni redak, dok GCID_ vraća indeks pojavljivanja od 1 do N.
  • 🗂️ Dva okusa: VSAM Normalizator čita COBOL izvore, dok Normalizator pipeline obrađuje relacijske i ravne datoteke podataka.
  • ⚠️ Uobičajena zamka: Postavljanje vrijednosti 'Otvara se' na stupcu koji se pojavljuje samo jednom ili ostavljanje vrijednosti 'na nuli' za stupac koji se ponavlja prekida popis portova.

Transformacija normalizatora u informatici

Š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.

Kartaping Dizajnersko platno s definicijom sales_source, njezinim kvalifikatorom izvora i tablicom sales_target

Korak 3) Iz izbornika Transformacija stvorite novu transformaciju. U prozoru Stvori transformaciju:

  1. Odaberite Normalizator kao transformaciju
  2. Unesite naziv, “nrm_sales”
  3. Odaberite opciju za stvaranje

Prozor izgleda kao na snimci zaslona ispod, s popisom vrsta transformacije s lijeve strane i okvirom za naziv ispod.

Izradi prozor za transformaciju s odabranim Normalizatorom i unesenim nazivom nrm_sales

Korak 4) Transformacija će biti kreirana, odaberite opciju "gotovo". Prazna transformacija nrm_sales sada se nalazi na platnu između kvalifikatora izvora i cilja.

Kartaping platno koje prikazuje novokreiranu transformaciju nrm_sales Normalizatora bez stupaca

Korak 5) Double kliknite na transformaciju Normalizatora, zatim:

  1. Odaberite karticu Normalizator
  2. Kliknite na ikonu za stvaranje dva stupca
  3. Unesite nazive stupaca
  4. Postavite broj pojavljivanja na 4 za prodaju i 0 za naziv trgovine
  5. 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.

Kartica Normalizator prozora Uredi transformacije sa stupcem prodaje postavljenim na četiri pojavljivanja i nazivom trgovine postavljenim na nulu

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.

Generirani popis portova za nrm_sales prikazuje četiri ulazna porta za prodaju plus portove GK i GCID

Korak 6) Zatim u kartaping:

  1. Povežite četiri stupca kvalifikatora izvora četiri četvrtine sa stupcima normalizatora.
  2. Povežite stupac naziva trgovine sa stupcem normalizatora
  3. Povežite stupce store_name & sales iz normalizatora s ciljnom tablicom
  4. Povežite stupac GK_sales iz normalizatora s ciljnom tablicom

Nakon što je svaka veza nacrtana, karta je dovršenaping izgleda ovako.

Završena kartaping s četiri četvrtinska porta i nazivom trgovine povezanim s nrm_sales te portovima store_name, sales i GK_sales povezanim s sales_target

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.

Pitanja i odgovori

Ne. Transformacija dijeli samo jedan redak na više. Sažimanje više redaka u jedan vrši se pomoću Agregatora ili pomoću Izraza koji rotira vrijednosti pomoću varijabilnih portova, ovisno o tome kako su oblikovani izlazni stupci.

Samo niz znakova, niz znakova i broj. Na kartici Normalizator nema opcije Datum i vrijeme, pa vrijednosti datuma moraju proći kroz transformaciju kao nizovi znakova i pretvoriti se u transformaciju izraza s obje strane.

Da. Mapa integracije podataka u oblakuping dizajner nudi transformaciju Normalizatora s istom svrhom, konfiguriranu putem vrijednosti koja se pojavljuje po polju. Izgled kartice razlikuje se od PowerCentera, pa mapapingse obnavljaju umjesto da se kopiraju.

Unija spaja retke koji dolaze iz nekoliko cjevovoda u jedan tok s dijeljenim popisom portova. Normalizator radi na jednom cjevovodu i množi retke iz ponavljajućih stupaca unutar svakog dolaznog zapisa.

Normalizator cjevovoda može se izraditi u Transformation Developeru ili promovirati s karteping, a zatim podijeljen. VSAM normalizator ne može jer je vezan za COBOL izvornu definiciju koja ga je generirala.

Sama transformacija je jeftina jer ne sadrži predmemoriju. Trošak se pojavljuje nizvodno: vrijednost Occurs od četiri učetverostručuje volumen retka svake kasnije transformacije koju ciljni pisač mora obraditi.

Modeli profiliranja skeniraju izvorne stupce i označavaju ponavljajuće grupe poput QUARTER1 do QUARTER4 koje pripadaju retcima, a ne stupcima. Prijedlog je početna točka - vrijednosti koje se pojavljuju i rukovanje ključevima i dalje zahtijevaju potvrdu programera.

Pomaže na kartiping a ne unutar njega - pisanjem SQL-a koji odmotava tablicu za usporedbu, generiranjem testnih podataka ili izradom parametarskih datoteka. Samo platno Designera nije nešto što Copilot može uređivati.

Sažmite ovu objavu uz: