Transformacija kvalifikatora izvora u Informatici s PRIMJEROM
⚡ Pametni sažetak
Transformacija kvalifikatora izvora u Informatici predstavlja retke koje Integration Service čita iz relacijskog izvora ili ravne datoteke te omogućuje programeru da nadjača zadani upit, filtrira, sortira i deduplicira te podatke.

Što je transformacija kvalifikatora izvora?
Transformacija kvalifikatora izvora je aktivna, povezana transformacija koja predstavlja retke koje Integration Service čita kada se sesija pokrene. Kad god se relacijski izvor ili ravna datoteka dodaju mapiping, potrebna je transformacija Kvalifikatora izvora, a Dizajner je automatski dodaje. Pomoću Kvalifikatora izvora možete definirati i poništiti način dohvaćanja podataka iz izvora.
Transformacija također pretvara izvorne tipove podataka izvora u tipove podataka za transformaciju Informatica, tako da svaka transformacija postavljena nakon nje radi s jednim platformski neutralnim skupom tipova.
Budući da kvalifikator izvora gradi upit koji zapravo dolazi do baze podataka, to je prvo mjesto koje treba tražiti kada kartaping čita više redaka ili više stupaca nego što je potrebno. Primjer u nastavku sužava upit na četiri stupca.
Kako izmijeniti kvalifikator izvora u Informatici
U sljedećem primjeru modificirat ćemo Izvorni kvalifikator naše mapeping „m_emp_emp_target“, tako da umjesto vraćanja svih stupaca vraća samo odabrane stupce.
Korak 1) Otvori kartuping „m_emp_emp_target“ na Kartiping Dizajner. Kartaping otvara se s EMP izvorom, SQ_EMP kvalifikatorom izvora i EMP_TARGET ciljem na platnu.
Korak 2) Double-kliknite transformaciju Izvornog kvalifikatora „SQ_EMP“. Otvara se prozor Uredi transformacije za taj objekt. Zatim
- Kliknite karticu Svojstva
- kliknite SQL Opcija izmjene upita, ovo će otvoriti prozor SQL editora
Kartica Svojstva navodi redak SQL upita prikazan u nastavku.
Korak 3) U prozoru SQL editora
- Unesite sljedeći upit
SELECT EMPNO, ENAME, JOB, MGR FROM EMP
bilješke – iz izvora odabiremo stupce EMPNO, ENAME, JOB i MGR, pa smo u upitu za odabir zadržali samo one
- Odaberite gumb U redu
SQL editor sada sadrži prilagođeni upit umjesto generiranog.
Korak 4) U prozoru Uredi transformacije,
- U izborniku odaberite karticu Portovi
- Pod karticom Portovi vidjet ćete sve portove. Zadržite samo portove EMPNO, ENAME, JOB i MGR, a ostale portove izbrišite.
Kartica Portovi navodi svaki port koji je transformacija nosila prije brisanja.
Korak 5) Nakon brisanja portova, odaberite gumb U redu. Na popisu ostaju samo četiri preostala porta.
Sada ponovno kliknite karticu Svojstva u prozoru Uredi transformacije i vidjet ćete samo podatke koje ste odabrali.
Klikom na gumb "U redu" otvorit će se prozor SQL editora.
- Potvrdit će da su odabrani podaci ispravni i spremni za učitavanje u ciljnu tablicu.
- Kliknite gumb U redu za daljnji nastavak
Prozor za potvrdu ponavlja četiri stupca koja će sada biti pročitana.
Spremi kartuping (pomoću prečaca Ctrl+S) i izvršite tijek radaNakon izvršenja, samo će odabrani stupci biti učitani u cilj.
Na taj način možete u kvalifikatoru izvora poništiti koje stupce treba dohvatiti iz izvora, a to je jedini način da kontrolirate koji se specifični stupci unose unutar mape.ping.
Svojstva kvalifikatora izvora
Možete koristiti različita svojstva kvalifikatora izvora kako biste odredili koju vrstu izvornih podataka treba transformirati i poslati u ciljnu tablicu.
- Filtar izvora – Pomoću svojstva Izvorni filter možete smanjiti broj izvornih zapisa. Na primjer, ako želite dohvatiti samo zaposlenike odjela 10, možete unijeti uvjet filtera odjel=10 u svojstvo Izvorni filter i izvršiti podatke. U uvjet uključite naziv tablice i naziv porta, a izostavite ključnu riječ WHERE – filtar koji sadrži WHERE prekida sesiju.
- Broj sortiranih portova – U transformaciji Kvalifikatora izvora također možete sortirati ulazne zapise prema položaju porta. Integracijska usluga dodaje klauzulu ORDER BY zadanom upitu, brojeći portove od vrha transformacije, tako da su podaci već sortirani kada dosegnu transformacije unutar mape.ping.
Budući da se podaci mogu sortirati na jednom portu ili na nekoliko portova, morate navesti broj portova koji će se koristiti u sortiranju. Ako navedete vrijednost 1, sortirat će se samo podaci empno. Ako navedete vrijednost 2, podaci će se sortirati i na empno i na ename.
- Odaberite Različito – pomoću ovog svojstva možete dohvatiti samo različite zapise iz izvora. Kada odaberete opciju Odaberi različite, Integration Service dodaje naredbu SELECT DISTINCT, tako da kvalifikator izvora dohvaća samo različite kombinacije izvornih podataka.
Kartica Svojstva prikazana u nastavku sadrži ove opcije zajedno s ostatkom popisa svojstava.
Potpuni popis svojstava dostupnih na relacijskom kvalifikatoru izvora sažet je u donjoj tablici.
| Svojstvo | Ono što se također |
|---|---|
| SQL upit | Zamjenjuje zadani upit koji generira Integration Service. Prilagođeni upit nadjačava korisnički definirano spajanje i izvorni filtar. |
| Korisnički definirano spajanje | Pruža uvjet koji se koristi za spajanje podataka iz nekoliko izvora predstavljenih istim kvalifikatorom izvora. |
| Filtar izvora | Navodi uvjet filtra koji Integration Service primjenjuje prilikom ispitivanja redaka. |
| Broj sortiranih portova | Broj stupaca koji se koriste za sortiranje redaka pročitanih iz relacijskih izvora, dodanih upitu kao ORDER BY. |
| TracRazina | Količina detalja zapisanih u zapisnik sesije za ovu transformaciju. |
| Odaberite Različito | Vraća samo jedinstvene retke dodavanjem SELECT DISTINCT upitu. |
| Prije SQL-a | Naredbe se izvršavaju na izvornoj bazi podataka prije nego što Integration Service pročita izvor. |
| Post-SQL | Naredbe se izvode na izvornoj bazi podataka nakon što Integration Service zapiše u cilj. |
| Izlaz je deterministički | Izjavljuje da izvor vraća iste podatke između izvršavanja kada je ulaz konzistentan. |
| Izlaz je ponovljiv | Izjavljuje da izvor vraća retke istim redoslijedom između izvršavanja, što omogućuje Integration Serviceu da preskoči pripremu za oporavak. |
Pravila i smjernice za nadjačavanje SQL-a kvalifikatora izvora
SQL nadjačavanje je moćno jer zamjenjuje sve što je Designer generirao, i to je ujedno razlog zašto se tiho prekida kada se ignoriraju dolje navedena pravila.
- Prvo spojite portove. Povežite svaki ulazni i izlazni port koji namjeravate koristiti prije unosa upita, jer se generirani upit gradi iz povezanih portova.
- Zadržite SELECT listu po redoslijedu portova. Naredba SELECT mora navesti nazive portova redoslijedom kojim se pojavljuju u transformaciji. Ako se redoslijed ne podudara, sesija može propasti ili vratiti neočekivane rezultate.
- Kvalificirajte svaki stupac. Svaki naziv stupca mora imati prefiks tablice, prikaza ili sinonima kojem pripada, na primjer ORDERS.ORDER_ID.
- Generiraj prije uređivanja. Klikom na Generiraj SQL prikazuje se zadani upit koji već sadrži izvorni filter i klauzulu sorted-ports, tako da se nadjačavanje može izgraditi iz radne naredbe.
- Potvrdite izjavu. SQL Editor ima gumb Validate koji pokreće upit i izvještava je li sintaksa ispravna prije nego što se sesija uopće pokrene.
- Citiraj rezervirane riječi. Svaka rezervirana riječ baze podataka korištena u upitu mora biti stavljena u navodnike.
- Pazite na prioritet. Prilagođeni upit poništava izvorni filter i broj sortiranih portova, a SQL upit unesen u Sjednica svojstva nadjačavaju i uvjet filtera i upit definiran u mapiping.
Za Microsoft SQL Server izvori postoji jedno dodatno pravilo: broj stupaca u SELECT naredbi mora odgovarati broju portova u transformaciji, inače sesija ne uspijeva prilikom dohvaćanja redaka.
Kako spojiti dva izvora s jednim kvalifikatorom izvora
Jedan kvalifikator izvora može čitati više od jedne tablice. Kada su dvije povezane tablice iz istog relacijskog izvora povezane s jednim kvalifikatorom izvora, Integration Service ih spaja unutar upita izvora, a ne unutar mape.ping, što znači da baza podataka obavlja posao i manje redaka putuje do sesije.
Zadani spoj je unutarnji ekvispoj zapisan u WHERE klauzulu kao Izvor1.naziv_stupca = Izvor2.naziv_stupca. Da bi se taj spoj generirao, spojeni stupci moraju imati odnos primarni ključ-strani ključ i odgovarajuće tipove podataka. Tamo gdje uvezeni metapodaci nemaju takav odnos, možete ga stvoriti u Analizator izvora povezivanjem odgovarajućih stupaca dviju izvornih definicija.
Kada nedostaje odnos ili spajanje mora biti vanjsko spajanje, umjesto toga upotrijebite svojstvo Korisnički definirano spajanje. Uvjet unesen tamo zamjenjuje informacije o spajanju koje se nalaze u metapodacima, a Integration Service ih dodaje generiranom upitu.
Vrijedi zapamtiti dva ograničenja. Obje tablice moraju dolaziti iz istog relacijskog izvora, a izvori različitih tipova - ravna datoteka i tablica ili dvije različite baze podataka - moraju biti spojeni s Pretvorba stolara umjesto.
Kvalifikator izvora vs. filtar vs. transformacija spojnika
Tri objekta mogu smanjiti ili kombinirati retke, a odabir pogrešnog je čest uzrok sporih sesija. Tablica u nastavku ih prikazuje jedan pored drugog.
| Aspekt | Kvalifikator izvora | Transformacija filtra | Pretvorba stolara |
|---|---|---|---|
| Gdje se posao odvija | U izvornoj bazi podataka, unutar generiranog upita | U Integracijskoj usluzi, redak po redak | U Integracijskoj usluzi, korištenje predmemorije |
| Glavna svrha | Čitanje izvornih redaka, nadjačavanje upita, filtriranje, sortiranje, uklanjanje duplikata | Izbacite retke koji ne ispunjavaju jedan uvjet | Spojite dva cjevovoda u jedan skup redova |
| Vrste izvora | Relacijske tablice i ravne datoteke jednog izvora | Bilo koji podaci o cjevovodu | Heterogeni izvori, uključujući ravne datoteke i različite baze podataka |
| Pridružite se podršci | Unutarnji ekvispoj ili korisnički definirani spoj unutar jednog relacijskog izvora | nijedan | Normalni, glavni vanjski, detaljni vanjski i potpuni vanjski spojevi |
| Redovi koji prelaze mrežu | Samo retci koje upit vraća | Svaki izvorni redak se prvo čita | Svaki izvorni redak se prvo čita |
Praktično pravilo je jednostavno: filtrirajte i pridružite se čim izvor dopušta te posegnite za Filter ili Joiner samo za posao koji izvorna baza podataka ne može obaviti. Ubacivanje uvjeta u Izvorni kvalifikator jedna je od najjeftinijih dostupnih pobjeda tijekom podešavanje izvedbe.








