Transformarea rangului in Informatica cu EXEMPLU
⚡ Rezumat inteligent
Transformarea de rang în Informatica este un obiect activ, conectat, care păstrează doar primele sau ultimele N rânduri ale fiecărui grup, atribuind fiecărui rând supraviețuitor o poziție prin portul său de ieșire automat RANKINDEX.
Ce este transformarea rangului?
Transformarea de rang este o transformare activă și conectată care efectuează filtrarea datelor pe baza grupului și a rangurilor. De exemplu, dacă doriți să obțineți zece înregistrări ale angajaților cu cel mai mare salariu, acest tip de filtrare poate fi realizat prin transformarea de rang.
Transformarea rangului oferă și funcția de a face clasamente pe baza grupurilor. De exemplu, dacă doriți să obțineți primii zece angajați salariați pe departamente, grupul respectiv...ping se poate face cu această transformare.
Transformarea rangului este o transformare activă, deoarece afectează numărul de rânduri de ieșire.
Transformarea Rank are un port de ieșire prin care atribuie un rang rândurilor. Portul respectiv se numește RANKINDEX, iar Designer îl creează automat imediat ce transformarea este adăugată la Hartăping.
Deoarece clasamentul trebuie să compare fiecare rând dintr-un grup înainte de a putea decide care rânduri câștigă, Integration Service stochează în cache datele primite. Valorile grupului intră într-o memorie cache a indexului, iar restul datelor de pe rând intră într-o memorie cache de date, în același mod în care o memorie cache Transformarea tamplarului deține conducta sa principală.
Porturi într-o transformare de rang
Înainte de exemplul lucrat, este util să știm ce face de fapt fiecare indicator de port din fila Porturi, deoarece două dintre ele fac adevărata muncă a acestei transformări.
| tip port | Ce face |
|---|---|
| Intrare (I) | Primește o coloană de la transformarea din amonte. Fiecare coloană legată la transformarea Rank este un port de intrare. |
| Ieșire (O) | Transmite o coloană către următoarea transformare sau către țintă. |
| Variabilă (V) | Conține un calcul local în interiorul transformării, exact ca într-o transformare de tip Expression. |
| Rang (R) | Marchează coloana pe baza căreia se calculează clasamentul. Doar un singur port din transformare poate purta acest steag. |
| A se grupa cu | Repornește clasamentul pentru fiecare valoare distinctă, astfel încât un filtru pentru primele trei returnează trei rânduri per grup în loc de trei rânduri în total. |
| RANKINDEX | Un port de ieșire creat de Designer. Acesta stochează poziția în clasament a fiecărui rând din grupul său și poate rămâne neconectat. |
Clasificarea se poate face doar pentru un singur port, așadar o cerință precum „cel mai mare salariu, apoi cea mai lungă perioadă de serviciu” necesită ca valoarea de departajare să fie pregătită în amonte, mai degrabă decât pentru un port de rangul doi.
Cum se utilizează transformarea rangului în Informatica
Cerința noastră este să încărcăm primii 3 angajați salariați pentru fiecare departament; vom implementa acest lucru folosind transformarea Rang. Parcurgeți cei opt pași de mai jos în Hartă.ping Designer.
Pas 1) Creați o hartăping având sursa EMP și ținta EMP_TARGET. Ambele definiții se află acum pe pânză, așa cum se arată mai jos.
Pas 2) Apoi, pe hartăping
- Selectați meniul de transformare
- Selectați opțiunea de creare
În continuare este afișat meniul Transformare cu opțiunea Creare.
Pas 3) În fereastra de creare a transformării
- Selectați transformarea rangului
- Introduceți numele transformării „rnk_salary”
- Selectați butonul Creare
Pas 4) Transformarea Rangului va fi creată pe hartăping, selectați butonul „Terminat” din fereastră. Obiectul gol rnk_salary apare acum pe pânză.
Pas 5) Conectați toate porturile de la calificator de sursă la transformarea Rang, astfel încât fiecare coloană de angajat să fie disponibilă pentru clasificare.
Pas 6) Double Faceți clic pe transformarea Rang și se va deschide fereastra „editare transformare”. În această fereastră
- Selectați meniul proprietăți
- Selectați opțiunea „Sus” din proprietatea Sus/Jos
- Introduceți 3 în numărul de ranguri
Fila Proprietăți afișează acum „Top” cu trei ranguri, așa cum se arată în captura de ecran.
Pas 7) În fereastra „editează transformarea” din nou
- Selectați fila porturi
- Selectați gruparea după opțiune pentru coloana Număr departament
- Selectați Rang în coloana Salariu
- Selectați butonul ok
Fila Porturi are acum indicatorul de grup pe numărul departamentului și indicatorul R pe salariu.
Pas 8) Conectați porturile din transformarea Rank la tabelul țintă. Hartaping acum rulează de la EMP prin rnk_salary în EMP_TARGET.
Acum, salvați hartaping și executați-l după crearea unui sesiune și flux de lucruCalificatorul sursă va prelua toate înregistrările, dar transformarea Rang va transmite doar înregistrările care au trei salarii mari pentru fiecare departament.
Proprietăți de transformare a rangului
Fila Proprietăți utilizată în Pasul 6 conține mai multe setări decât cele două pe care le modifică exemplul. Setările de mai jos controlează câte rânduri supraviețuiesc, cum sunt comparate șirurile și unde sunt scrise fișierele cache.
| Proprietatea | Ceea ce controlează |
|---|---|
| Sus jos | Dacă se păstrează cele mai mari sau cele mai mici valori pentru coloana clasată. Exemplul folosește Top. |
| Numărul de ranguri | Câte rânduri sunt returnate per grup. Exemplul folosește 3, deci fiecare departament returnează trei angajați. |
| Compararea șirurilor sensibile la majuscule/minuscule | Dacă comparațiile de șiruri respectă scrierea cu majuscule sau minuscule în timpul ierarhizării. Contează doar atunci când portul de clasificare conține text. |
| Directorul cache | Directorul în care sunt create fișierele index și cache de date. Implicit este variabila de proces $PMCacheDir. |
| Dimensiunea memoriei cache de date de rang | Dimensiunea memoriei cache de date care conține datele de pe rând. Implicit este Automată, ceea ce permite serviciului de integrare să o dimensioneze. |
| Dimensiunea memoriei cache a indexului de rang | Dimensiunea memoriei cache a indexului care conține valorile grupului. Implicit este Automat. |
| Domeniul de transformare | Aplică clasamentul fiecărei tranzacții sau tuturor datelor primite. |
| Tracing Level | Cantitatea de detalii scrise în jurnalul sesiunii: Concis, Normal, Inițializare detaliată sau Date detaliate. |
Dimensionarea memoriei cache este setarea care merită revizuită pe sursele mari. Când memoria cache este prea mică, paginile Integration Service sunt transferate pe disc, acesta fiind unul dintre primele lucruri verificate în timpul reglarea performanței a unei hărțiping.
Transformare de rang vs. transformare de agregator
Ambele transformări sunt active, ambele își stochează datele de intrare în cache și ambele oferă porturi Group By, așa că este ușor să o folosești pe cea greșită. Diferența constă în rezultatul lor.
| Punct de comparație | Transformarea rangului | Transformarea agregatorului |
|---|---|---|
| Scop | Returnează primele sau ultimele N rânduri complete ale fiecărui grup | Returnează valori calculate, cum ar fi SUM, AVG, MAX sau MIN per grup |
| Rânduri returnate | Până la numărul de ranguri per grup, cu toate coloanele intacte | În mod normal, un rând de rezumat per grup |
| Port suplimentar adăugat | RANKINDEX, menținând poziția fiecărui rând | Nici unul |
| Coloană clasată sau agregată | Un port semnalizat ca port de rang | Orice număr de porturi care transportă expresii agregate |
Mai simplu spus, an Transformarea agregatorului răspunde la „care este cel mai mare salariu din acest departament”, în timp ce transformarea Rang răspunde la „ce angajați îl câștigă”. Când trebuie eliminat doar un subset de rânduri cu o condiție simplă și nu este implicată nicio ordonare, o Transformarea filtrului este alegerea mai ieftină, deoarece nu necesită deloc memorie cache.









