Joiner transformacija u Informatici s PRIMJEROM

⚡ Pametni sažetak

Transformacija spojnika u Informatici je aktivni, povezani objekt koji spaja dva heterogena izvora na temelju odgovarajućeg uvjeta, keširajući glavni cjevovod u memoriju dok detaljni cjevovod struji kroz njega.

  • 🧩 Majstor i detalj: Dva ulazna cjevovoda hrane transformaciju, a kartica Portovi odlučuje koji će djelovati kao glavni.
  • 💾 Glavni je predmemoriran: Glavni cjevovod je uvijek ugrađen u predmemoriju indeksa i podataka, tako da manji izvorni kod pripada tamo.
  • 🔗 Četiri vrste spajanja: Normalni, Glavni vanjski, Detaljni vanjski i Potpuni vanjski određuju koji će neusklađeni retci preživjeti spajanje.
  • 🧪 Obrađeni primjer: EMP i DEPT su spojeni na deptno normalnim spajanjem i učitani u EMP_DEPTNAME.
  • ⚖️ Samo jednakost: Uvjet spajanja uspoređuje portove s operatorom jednakosti, a oba porta moraju dijeliti isti tip podataka.
  • ⚡ Sortirani unos: Predsortiranje oba cjevovoda na uvjetnim portovima smanjuje ulaz i izlaz diska tijekom sesije.

Joiner transformacija u informatici

Što je Joiner transformacija?

Spojna transformacija je aktivna i povezana transformacija koja vam pruža mogućnost stvaranja spojeva u Informatici. Spojevi stvoreni pomoću Spojne transformacije slični su spojevima u bazama podataka. Prednost Spojne transformacije je u tome što se spojevi mogu stvoriti za heterogene sustave (različite baze podataka).

U Joiner transformaciji postoje dva izvora koja ćemo koristiti za spajanja. Ta dva izvora se nazivaju

  • Glavni izvor
  • Detalj Izvor

U svojstvima Joiner transformacije možete odabrati koji izvor podataka može biti glavni, a koji izvor može biti izvor detalja.

Tijekom izvršavanja, glavni izvor se predmemorira u memoriju radi spajanja. Stoga se preporučuje odabrati izvor s manjim brojem zapisa kao glavni izvor. Glavni cjevovod se čuva u dvije predmemorije: indeksnoj predmemoriji za vrijednosti korištene u uvjetu spajanja i podatkovnoj predmemoriji za ostatak podataka retka.

Vrste spajanja u transformaciji spojnika

Svojstvo Vrsta spajanja na kartici Svojstva određuje što se događa s retcima koji ne pronađu podudaranje. Sljedeći spojevi mogu se stvoriti pomoću transformacije Spojivač.

  1. Glavno vanjsko spajanje – U glavnom vanjskom spoju, spoj vraća sve zapise iz izvora detalja, a vraćaju se samo odgovarajući retci iz glavnog izvora.
  2. Vanjski spoj detalja – U vanjskom spajanju detalja, iz izvora detalja vraćaju se samo odgovarajući retci, a iz glavnog izvora vraćaju se svi retci.
  3. Potpuni vanjski spoj – U potpunom vanjskom spajanju vraćaju se svi zapisi iz oba izvora.
  4. Normalno pridruživanje – U normalnom spajanju, iz oba izvora se vraćaju samo odgovarajući retci.

Glavni vanjski i detaljni vanjski spojevi ekvivalentni su lijevim vanjskim spojevima u SQL: svaki zadržava svaki redak jednog izvora i samo podudaranja iz drugog. Tablica u nastavku uspoređuje četiri tipa s njihovim SQL ekvivalentima.

Vrsta pridruživanja Redci sačuvani od glavnog Redci su izostavljeni iz detalja SQL ekvivalent
Normalno pridruživanje Samo podudaranje Samo podudaranje Unutarnji spoj
Glavno vanjsko spajanje Samo podudaranje Svi retci Lijevi vanjski spoj na izvoru detalja
Vanjski spoj detalja Svi retci Samo podudaranje Lijevi vanjski spoj na glavnom izvoru
Potpuni vanjski spoj Svi retci Svi retci Potpuni vanjski spoj

Vrsta spajanja je svojstvo, a ne strukturni izbor, tako da se kasnije može promijeniti bez ponovne izgradnje mape.ping ili ponovno povezivanje bilo kojih portova.

Kako koristiti Joiner transformaciju u Informatici

U ovom primjeru, spojit ćemo tablice zaposlenika i odjela koristeći Joiner transformaciju. Prođite kroz osam koraka u nastavku na mapi.ping Dizajner.

Korak 1) Pomoću donjeg skripta stvorite novu ciljnu tablicu EMP_DEPTNAME u bazi podataka i uvezite tablicu u Informatica targets.

Preuzmite gornju datoteku emp_deptname.sql

Korak 2) Napravite novu kartaping i uvezite izvorne tablice „EMP“ i „DEPT“ te ciljnu tablicu koju smo kreirali u prethodnom koraku. Sve tri definicije sada se nalaze na platnu, kao što je prikazano dolje.

Kartaping Platno dizajnera s izvorima EMP i DEPT te definicijom cilja EMP_DEPTNAME

Korak 3) Iz izbornika Transformacija odaberite opciju Stvori. Zatim u prozoru Stvori transformaciju prikazanom dolje,

  1. Odaberite transformaciju spojnika
  2. Unesite naziv transformacije “jnr_emp_dept”
  3. Odaberite opciju za stvaranje

Stvori prozor za transformaciju s odabranim Spojnikom i unesenim nazivom jnr_emp_dept

Korak 4) Povucite i ispustite sve stupce iz oba Kvalifikatori izvora na Joiner transformaciju. Oba cjevovoda su sada povezana u jnr_emp_dept, kao što je prikazano na snimci zaslona.

Stupci iz oba izvorna kvalifikatora uvučeni su u transformaciju spojnika jnr_emp_dept

Korak 5) Double kliknite na transformaciju Joiner, zatim u prozoru Uredi transformacije

  1. Odaberite karticu stanja
  2. Kliknite ikonu za dodavanje novog uvjeta
  3. Odaberite deptno na popisu glavnih i detaljnih stupaca

Kartica Uvjet sada sadrži uvjet pojedinačnog spajanja na deptnbr.

Kartica Uvjet transformacije Spojničara s odabranim brojem odjela u glavnim i detaljnim stupcima

Korak 6) Zatim u istom prozoru

  1. Odaberite karticu svojstava
  2. Odaberite Normalno spajanje kao vrstu spajanja
  3. Odaberite gumb U redu

Sljedeća je prikazana kartica Svojstva s postavljenom vrstom spajanja.

Kartica Svojstva transformacije Spojnik s vrstom spajanja postavljenom na Normalno spajanje

Radi optimizacije performansi, glavni izvor dodjeljujemo cjevovodu izvorne tablice koja ima manje zapisa. Za izvršavanje ovog zadatka:

Korak 7) Double kliknite na transformaciju Joiner da biste otvorili prozor Uredi transformacije, a zatim

  1. Odaberite karticu portova
  2. Odaberite bilo koji stupac određenog izvora koji želite učiniti glavnim
  3. Odaberite OK

Kartica Portovi označava odabrani cjevovod kao glavni, kao što je prikazano dolje.

Kartica Portovi transformacije Joiner s glavnom zastavom postavljenom na jedan izvorni cjevovod

Korak 8) Povežite relevantne stupce iz Joiner transformacije s ciljnom tablicom. Mapaping sada se pokreće iz oba izvora kroz spajanje u EMP_DEPTNAME.

Spojeni stupci povezani iz jnr_emp_dept s ciljnom tablicom EMP_DEPTNAME

Sada spremite kartuping i izvršite ga nakon što stvorite Sjednica i tijek rada za to. Spoj će se stvoriti pomoću Informatica Joiner-a, a relevantni detalji će se dohvatiti iz obje tablice.

Svojstva Joinerove transformacije

Kartica Svojstva sadrži više od same vrste spajanja. Postavke u nastavku kontroliraju koliko memorije spajanje koristi i gdje se zapisuju datoteke predmemorije.

Postavljanje Što kontrolira
Vrsta pridruživanja Normalni, Glavni vanjski, Detaljni vanjski ili Puni vanjski. Odlučuje koji će se neusklađeni retci zadržati.
Uvjet pridruživanja Popis parova portova glavni-detaljni u usporedbi s operatorom jednakosti. Nekoliko uvjeta kombinira se s operatorom AND.
Sortirani unos Izjavljuje da oba cjevovoda već stižu sortirana prema uvjetnim portovima, što omogućuje Integration Serviceu da minimizira ulaz i izlaz diska.
Glavni redoslijed sortiranja Redoslijed sortiranja glavnih izvornih podataka, korišten zajedno sa sortiranim ulazom.
Direktorij predmemorije Direktorij u kojem se stvaraju datoteke indeksa i predmemorije podataka. Zadana vrijednost je procesna varijabla $PMCacheDir.
Veličina predmemorije podataka spojnika Veličina predmemorije podataka koja sadrži podatke glavnog retka. Zadana vrijednost je Automatski, što omogućuje Integracijskoj usluzi da odredi veličinu.
Veličina predmemorije indeksa spojnika Veličina indeksne predmemorije koja sadrži vrijednosti glavnog uvjeta. Zadana vrijednost je Automatski.
Opseg transformacije Primjenjuje spajanje na svaku transakciju, na sve dolazne podatke ili na opseg na razini retka.

Sortirani ulaz je postavka koju prvo vrijedi iskoristiti. Kada oba cjevovoda stignu poredana prema uvjetnim portovima, Integration Service ne mora zadržati cijeli glavni izvor prije početka podudaranja, što je isti princip koji se primjenjuje tijekom podešavanje izvedbe drugih predmemoriranih transformacija.

Pravila i ograničenja transformacije spojara

Neka ograničenja se pojavljuju tek kada se kartaping je validiran, pa je jeftinije znati ih prije nego što se portovi povežu.

  • Samo jednakost. Uvjet spajanja uspoređuje portove s operatorom jednakosti. Operatori usporedbe kao što su veće od, manje od ili nije jednako nisu prihvaćeni u uvjetu.
  • Odgovarajući tipovi podataka. Oba porta u uvjetu moraju imati isti tip podataka. Dizajner to potvrđuje, pa se neusklađeni stupci prvo moraju pretvoriti, obično u transformaciji izraza.
  • Nema strategije ažuriranja uzvodno. Transformacija spajanja ne može se koristiti kada bilo koji ulazni cjevovod sadrži transformaciju strategije ažuriranja.
  • Nema sekvence Generator neposredno prije toga. Povezivanje sekvence Generator Transformacija neposredno uzvodno od Joiner-a nije podržana.
  • Keširanje se ne može isključiti. Glavni cjevovod je uvijek predmemoriran, zbog čega manji izvor pripada glavnoj strani i zašto je veličina predmemorije važna kod velikih spajanja.

Spajanje triju izvora zahtijeva dvije Joiner transformacije povezane zajedno, jer svaka prihvaća točno jedan glavni i jedan detaljni cjevovod. Gdje je drugi izvor mala referentna tablica koja se čita redak po redak, a Transformacija pretraživanja često je jednostavniji dizajn.

Pitanja i odgovori

Dva. Svaki Spojnik prihvaća jedan glavni i jedan detaljni cjevovod, pa spajanje triju izvora znači ulančavanje dvaju od njih: izlaz prvog postaje ulazni cjevovod drugog. Općenito, n izvora treba n minus jedan.

Kada se obje tablice nalaze u istoj relacijskoj bazi podataka, Kvalifikator izvora šalje taj spoj u bazu podataka, što u potpunosti izbjegava predmemoriranje. Spojitelja koristite samo kada su dva izvora heterogena ili su već u odvojenim cjevovodima.

Predmemorija indeksa pohranjuje vrijednosti glavnog porta navedene u uvjetu spajanja, a predmemorija podataka pohranjuje preostale podatke glavnog retka koje vraća spajanje. Oba se grade samo iz glavnog cjevovoda, nikada iz cjevovoda detalja.

Ne. Null vrijednost u bilo kojem portu uzrokuje neuspjeh uvjeta, točno kao što se događa u SQL-u, pa se ti retci tretiraju kao neusklađeni. Zamijenite null vrijednosti zadanom vrijednošću uzvodno kada se trebaju spojiti.

Da. Dodajte definiciju izvora na kartu.ping dvaput tako da postoje dva odvojena cjevovoda, a zatim jedan ubacite u glavnu stranu, a drugi u stranu s detaljima. Ovo je uobičajeni način razrješavanja stupca voditelja natrag u ime zaposlenika.

Da, i taj heterogeni slučaj je glavni razlog zašto transformacija postoji. Cjevovod ravnih datoteka i relacijski cjevovod spajaju se na odgovarajućim portovima baš kao što bi se spajale dvije tablice baze podataka, jer se spajanje događa unutar Integration Servicea.

AI asistenti profiliraju oba izvora kako bi predložili kandidate za ključeve spajanja, procijenili broj redaka tako da se manja strana odabere kao glavna i označili iskrivljene ili stupce s visokim null-om koji bi mogli eksplodirati skup rezultata. Savjetnici temeljeni na strojnom učenju također rangiraju opcije veličine predmemorije.

Copilot brzo izrađuje ekvivalentni SQL i konverzije tipova podataka, što skraćuje posao pripreme portova. Ne može vidjeti veličine vaše predmemorije ili broj redaka, stoga provjerite svaki prijedlog u odnosu na mapu.ping prije nego što ga spremite.

Sažmite ovu objavu uz: