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.

  • ???? N de sus sau de jos: Proprietatea Top/Bottom și proprietatea Number of Ranks decid împreună ce rânduri supraviețuiesc filtrului.
  • 🗂️ Clasament pe grupe: Clasamentul Group By repornește pentru fiecare grupă, astfel încât fiecare departament să își poată returna propriile locuri în top 3.
  • 🔢 Port de rang: Exact un port poartă steagul R, iar acea singură coloană este valoarea pe baza căreia se calculează clasamentul.
  • 📍 INDEX DE RANG: Designerul adaugă automat acest port doar de ieșire pentru a menține poziția fiecărui rând în cadrul grupului său.
  • 🧪 Exemplu lucrat: Opt Hartăping Pașii de proiectare încarcă în EMP_TARGET cei mai bine plătiți trei angajați din fiecare departament.
  • 💾 În cache și activ: Valorile grupurilor și datele de rând sunt păstrate într-un index și într-o memorie cache de date, iar numărul de rânduri se modifică.

Transformarea rangului în Informatica

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.

Hartăping Designer care prezintă definiția sursei EMP și definiția țintei EMP_TARGET

Pas 2) Apoi, pe hartăping

  1. Selectați meniul de transformare
  2. Selectați opțiunea de creare

În continuare este afișat meniul Transformare cu opțiunea Creare.

Meniul Transformare deschis în Hartăping Designer cu opțiunea Creare evidențiată

Pas 3) În fereastra de creare a transformării

  1. Selectați transformarea rangului
  2. Introduceți numele transformării „rnk_salary”
  3. Selectați butonul Creare

Fereastra Creare Transformare cu Rangul selectat și numele rnk_salary introdus

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

Transformarea de rang rnk_salary a fost creată și plasată pe hartăping 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.

Toate porturile Calificatorului Sursă sunt legate la transformarea Rangului rnk_salary

Pas 6) Double Faceți clic pe transformarea Rang și se va deschide fereastra „editare transformare”. În această fereastră

  1. Selectați meniul proprietăți
  2. Selectați opțiunea „Sus” din proprietatea Sus/Jos
  3. 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.

Fila Proprietăți a transformării Rang cu Top selectat și trei introduse ca număr de ranguri

Pas 7) În fereastra „editează transformarea” din nou

  1. Selectați fila porturi
  2. Selectați gruparea după opțiune pentru coloana Număr departament
  3. Selectați Rang în coloana Salariu
  4. Selectați butonul ok

Fila Porturi are acum indicatorul de grup pe numărul departamentului și indicatorul R pe salariu.

Fila Porturi a transformării Rang cu gruparea după setată pe numărul departamentului și rangul setat pe coloana salariu

Pas 8) Conectați porturile din transformarea Rank la tabelul țintă. Hartaping acum rulează de la EMP prin rnk_salary în EMP_TARGET.

Porturi clasate legate de transformarea rnk_salary Rank la tabelul 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.

Întrebări frecvente

Nu. Rangul este doar conectat, deci trebuie să se afle în fluxul de date dintre două obiecte. Portul RANKINDEX poate rămâne neconectat, dar transformarea în sine nu poate fi apelată așa cum este apelată o funcție de căutare neconectată.

Rândurile legate primesc aceeași valoare în indicele de rang, iar transformarea sare apoi peste următoarea valoare. Prin urmare, doi angajați care împart locul al doilea afișează ambii 2, iar rândul următor afișează 4 în loc de 3.

Întreaga sursă este tratată ca un singur grup, deci transformarea returnează doar Numărul de ranguri în total. Setarea a trei ranguri fără un port de grup oferă cei trei angajați cu cele mai mari salarii din companie, nu pe departament.

Da. Porturile numerice, de tip șir de caractere și de tip dată/oră pot fi toate semnalizate ca port de rang. Pentru text, proprietatea de comparare a șirurilor de caractere, care ține cont de majuscule și minuscule, decide dacă majusculele și minusculele afectează ordinea, așa că verificați-o înainte de rularea sesiunii.

Nu este garantat. Transformarea selectează rândurile care supraviețuiesc, nu promite ordinea în care ajung la țintă. Adăugați o transformare Sorter pe portul RANKINDEX atunci când ordinea de încărcare contează.

A SQL Funcția window etichetează fiecare rând și lasă filtrarea unei interogări externe. Transformarea Informatica etichetează și filtrează într-o singură trecere și funcționează pe fișiere plate și alte surse nerelaționale unde nu este disponibil niciun motor de baze de date.

Modelele de învățare automată evaluează înregistrările în funcție de probabilitatea de abandon, fraudă sau conversie, iar scorul respectiv devine coloana clasată. Consultanții AI profilează, de asemenea, dimensiunile grupurilor, astfel încât setările cache și numărul de ranguri sunt alese din date reale, mai degrabă decât din presupuneri.

Copilot redactează interogarea echivalentă a funcției fereastră sau Python groupby rapid, ceea ce este util pentru validarea rezultatelor. Nu poate citi harta dvs.ping, așadar tratați fiecare sugestie ca pe o schiță și comparați numărul de rânduri cu jurnalul de sesiuni.

Rezumați această postare cu: