Transformarea routerului în Informatica: Exemplu de condiții multiple
⚡ Rezumat inteligent
Transformarea routerului în Informatica este un obiect activ, conectat, care testează rândurile primite în funcție de mai multe condiții de filtrare a grupului simultan și trimite fiecare rând către grupul de ieșire corespunzător sau către grupul implicit.
Ce este transformarea routerului?
Transformarea routerului este o transformare activă și conectată, similară transformării Filtru, utilizată pentru a filtra datele sursă.
Funcționalitatea suplimentară oferită pe lângă filtrare este aceea că datele eliminate (datele filtrate) pot fi, de asemenea, colectate pe hartă.ping, precum și condițiile multiple de filtrare pot fi aplicate pentru a obține mai multe seturi de date.
De exemplu, atunci când filtrăm datele pentru deptno = 10, putem obține și acele înregistrări în care deptno este diferit de 10. Așadar, transformarea Router oferă mai multe grupuri de ieșire, iar fiecare grup de ieșire poate avea propria condiție de filtrare.
În plus, există și un grup implicit. Acest grup implicit conține acele seturi de înregistrări care nu îndeplinesc niciuna dintre condițiile de grup. De exemplu, dacă ați creat două grupuri pentru condițiile de filtrare deptno=10 și respectiv deptno=20, atunci acele înregistrări care nu au deptno 10 și 20 vor fi transmise în acest grup implicit.
Pe scurt, datele respinse de grupurile de filtrare vor fi colectate de acest grup implicit și, uneori, poate fi necesară stocarea acestor date respinse. În astfel de scenarii, grupul de ieșire implicit poate fi util.
Pentru a permite mai multe condiții de filtrare, transformarea Router oferă opțiunea de grupare.
- Există un grup de intrare implicit care preia date de intrare.
- Există, de asemenea, un grup de ieșire implicit care furnizează toate acele date care nu sunt transmise de nicio condiție de filtrare.
- Pentru fiecare condiție de filtrare, în transformarea Router este creat un grup de ieșiri. Puteți conecta diferite ținte la aceste grupuri diferite.
Componentele transformării routerului
Înainte de construirea hărțiiping, este util să cunoașteți cele patru părți pe care Designer le creează pentru dvs. O transformare Router este alcătuită dintr-un grup de intrări, un set de grupuri de ieșiri, porturile din interiorul acestora și condițiile care decid unde merge fiecare rând.
| Component | Ce face |
|---|---|
| Grup de intrare | Punctul unic de intrare pentru transformare. Fiecare rând primit ajunge aici o singură dată, indiferent câte grupuri de ieșire există. |
| Grup de ieșiri definit de utilizator | Un grup pe care îl creați și îl denumiți singur, cum ar fi deptno_20. Fiecare are propria condiție de filtrare a grupului. |
| Grup de ieșiri implicit | Creat automat imediat ce există primul grup definit de utilizator. Nu are nicio condiție de filtrare și nu poate fi editat sau șters. |
| Condiția filtrului de grup | O expresie booleană scrisă în Editorul de expresii. Rândurile pentru care aceasta este evaluată ca TRUE trec prin acel grup. |
Designerul copiază definițiile porturilor din grupul de intrare în fiecare grup de ieșire, astfel încât porturile să nu fie recreate grup cu grup. Două reguli decurg din acest design:
- Rândurile pot fi duplicate. Dacă un rând îndeplinește mai mult de o condiție de filtrare a grupurilor, acesta este transmis o dată fiecărui grup care corespunde. Acesta este motivul obișnuit pentru care o destinație ajunge să aibă mai multe rânduri decât sursa.
- Rândurile pot fi eliminate. Dacă grupul implicit este lăsat neconectat, rândurile care ajung la acesta dispar pur și simplu din canal, aceasta fiind cea mai rapidă modalitate de a elimina datele nedorite.
Transformarea routerului vs. transformarea filtrului
Ambele obiecte testează datele în funcție de o condiție și ambele sunt transformări active, așadar alegerea dintre ele se reduce la câte condiții sunt implicate și la importanța rândurilor respinse.
| Punct de comparație | Transformarea filtrului | Transformarea routerului |
|---|---|---|
| Condiții per obiect | O | Unul sau mai mulți, fiecare în propriul grup |
| Rânduri respinse | Abandonat și indisponibil | Colectate în grupul implicit |
| Grupuri de ieșire | O singură conductă de ieșire | O conductă per grup, plus grupul implicit |
| Citiri sursă | O citire per filtru atunci când condițiile sunt înlănțuite | O singură citire pentru toate condițiile |
| Utilizare tipică | Eliminarea rândurilor care nu sunt niciodată necesare | Împărțirea unei surse în mai multe ținte |
Testarea a trei condiții cu transformări Filtru înseamnă trei obiecte, iar într-un design înlănțuit aceleași rânduri sursă sunt evaluate în mod repetat. Un Router face aceeași muncă într-o singură trecere, motiv pentru care este, în general, opțiunea mai eficientă odată ce apare o a doua condiție. Pentru o singură condiție detașabilă, cea mai simplă... Transformarea filtrului este încă mai potrivit.
Cum se creează o transformare de router în Informatica
Ghidul de mai jos construiește un Router care trimite angajații departamentului 20 către o masă țintă. Urmați cei nouă pași în ordine din Hartă.ping Designer.
Pas 1) Crearea unei Hartăping având sursa „EMP” și ținta „EMP_TARGET”. Hartaping Apoi, pânza de designer conține definiția sursă, calificatorul sursă și definiția țintă, așa cum se arată mai jos.
Pas 2) Apoi, pe hartăping
- Selectați meniul Transformare
- Selectați opțiunea de creare
Calea de meniu utilizată pentru a porni expertul este evidențiată în următoarea captură de ecran.
Pas 3) În fereastra de creare a transformării
- Selectați transformarea routerului
- Introduceți un nume pentru transformarea „rtr_deptno_10”
- Selectați opțiunea Creare
Pas 4) Transformarea Router va fi creată în hartăpingSelectați opțiunea „Terminat” din fereastră. Fereastra „Creează transformare” utilizată în ambii pași este afișată mai jos.
Pas 5) Trageți și plasați toate coloanele din Calificator sursă la transformarea Router. Fiecare port este acum legat la noul obiect, așa cum se arată în captura de ecran.
Pas 6) Double Faceți clic pe transformarea Router, apoi pe proprietatea de transformare a acesteia
- Selectați fila grup
- Introdu numele grupului „deptno_20”
- Faceți clic pe condiția filtrului de grup
În continuare se afișează fila Grupuri cu noul grup adăugat.
Pas 7) În Editorul de expresii, introduceți condiția de filtrare deptno=20 și selectați butonul OK. Editorul care deține această condiție este afișat mai jos.
Pas 8) Selectați butonul OK din fereastra grupului. Condiția apare acum lângă grup, așa cum se arată în următoarea captură de ecran.
Pas 9) Conectați porturile din grupul deptno_20 al transformării Router la porturile tabelului țintă. Harta finalizatăping rulează de la sursă, prin grup, până la EMP_TARGET.
Acum, când executați această hartăping, înregistrările filtrate vor fi încărcate în tabelul țintă.
Cele mai bune practici și erori frecvente pentru transformarea routerului
Hartaping Mai sus folosește un grup, care ascunde majoritatea comportamentului care cauzează ulterior tichete de asistență. Punctele de mai jos acoperă ce se schimbă odată ce apare un al doilea grup.
- Fiți atenți la rândurile duplicate. Condițiile de grup nu se exclud reciproc. Scrierea valorii sal>1000 într-un grup și a valorii deptno=20 în altul înseamnă că un angajat care corespunde ambelor valori este încărcat de două ori. Faceți condițiile exclusive sau acceptați duplicarea în mod deliberat.
- Conectați grupul implicit atunci când respingerile contează. Rândurile care nu îndeplinesc nicio condiție se pierd, cu excepția cazului în care grupul implicit este conectat la o țintă sau la un fișier de respingere. Încărcările auditabile le păstrează de obicei.
- Denumiți grupurile după regulă, nu după țintă. Grupul exemplu deptno_20 se citește clar; un grup numit group1 nu se citește. Rețineți că transformarea în sine este denumită rtr_deptno_10 în această demonstrație, în timp ce grupul filtrează în funcție de deptno 20, exact genul de nepotrivire pe care un standard de denumire îl previne.
- Filtrează înainte de a direcționa acolo unde poți. Rândurile pe care niciun grup nu le va dori vreodată sunt mai ieftine de eliminat din interogarea Source Qualifier decât de transportat în Router.
- Nu tratați Router-ul ca pe o joncțiune. Împarte o conductă în mai multe. Reunirea ramurilor necesită o transformare a Uniunii, iar combinarea a două surse diferite necesită... Transformarea tamplarului.
Un grup a cărui condiție returnează NULL în loc de TRUE sau FALSE este tratat ca nepotrivit, astfel încât rândurile cu valori nule din coloana testată cad în grupul implicit. Gestionarea explicită a valorilor nule în condiție evită această surpriză în timpul reglarea performanței și testare.









