Transformarea controlului tranzacțiilor în Informatica (Exemplu)
⚡ Rezumat inteligent
Transformarea Controlul tranzacțiilor în Informatica este un obiect activ, conectat, care validează sau anulează rânduri în timp ce o hartăping rulează, folosind cinci variabile încorporate în cadrul unei condiții evaluate o dată pentru fiecare rând.

Ce este transformarea controlului tranzacțiilor?
Controlul tranzacțiilor este o transformare activă și conectată care ne permite să comităm sau să anulăm tranzacțiile în timpul execuției hărții.pingOperațiunile de commit și rollback sunt de o importanță semnificativă deoarece garantează disponibilitatea datelor.
Când se procesează un volum mare de date, poate exista o situație în care datele trebuie transferate către țintă. Dacă o transferare este efectuată prea frecvent, atunci va reprezenta o supraîncărcare pentru sistem. Dacă o transferare este efectuată prea târziu, atunci în caz de eșec există șanse de pierdere a datelor.
Așadar, pentru a oferi flexibilitate, este furnizată transformarea Transaction Control. În loc să lase punctul de validare la valoarea implicită a sesiunii, aceasta permite o condiție în interiorul Hartăping decide, rând cu rând, unde se termină o tranzacție și începe următoarea.
Comenzi TCL Commit și Rollback
Există cinci variabile încorporate disponibile în această transformare pentru a gestiona operațiunea. Condiția trebuie să returneze una dintre cele cinci pentru fiecare rând, iar o valoare în afara listei respective face ca Integration Service să eșueze sesiunea.
TC_CONTINUE_TRANSACTION
În TC_CONTINUE_TRANSACTION nu se efectuează nicio operațiune, procesul de încărcare a datelor continuă așa cum este. Aceasta este valoarea implicită a expresiei.
TC_COMMIT_BEFORE
În TC_COMMIT_BEFORE, când acest flag este găsit setat, se efectuează o validare înainte de procesarea rândului curent. Apoi începe o nouă tranzacție, iar rândul curent este scris în destinație.
TC_COMMIT_AFTER
În TC_COMMIT_AFTER, rândul curent este procesat, apoi se efectuează o validare și începe următoarea tranzacție.
TC_ROLLBACK_BEFORE
În TC_ROLLBACK_BEFORE, se efectuează mai întâi rollback-ul, apoi datele sunt procesate pentru scriere.
TC_ROLLBACK_AFTER
În TC_ROLLBACK_AFTER datele sunt procesate, apoi se efectuează revenirea la starea inițială.
Proprietățile transformării controlului tranzacțiilor
Obiectul este configurat din fereastra Editare transformări, care conține aceleași patru file ca și celelalte transformări PowerCenter. Cunoașterea fiecărei file deține fiecare setare va scuti de multă căutare în timpul pașilor de mai jos.
| Tab | Ce este configurat acolo |
| Transformare | Numele transformării, descrierea acesteia și dacă obiectul este reutilizabil. |
| porturile | Porturile de intrare și ieșire, create în mod normal prin glisarea coloanelor din transformarea din amonte. |
| Proprietăţi | Condiția de control al tranzacției, deschisă cu săgeata mică de lângă câmp, și TracNivelul de ing scris în jurnalul sesiunii. |
| Extensii de metadate | Metadate definite de utilizator păstrate odată cu transformarea în depozit. |
Două setări fac treaba cu adevărat. Condiția de control al tranzacțiilor conține expresia, care este de obicei un test IIF() ce returnează una dintre cele cinci variabile. Tracing Level decide câte detalii despre transformare apar în jurnalul sesiunii atunci când este investigată rularea.
O setare se află în afara transformării. Când o hartăping conține o transformare eficientă de Control al tranzacțiilor, sesiunea rulează cu Tip de confirmare setat la Definit de utilizator în fila Proprietăți din sesiune, in loc de Target sau tipuri de commit-uri sursă care utilizează un interval de commit fix.
Cum se utilizează transformarea controlului tranzacțiilor în Informatica
În acest exemplu, vom transfera date către țintă atunci când condiția dept no = 20 este găsită adevărată.
Pas 1) Creați o hartăping cu EMP ca sursă și EMP_TARGET ca țintă. Hartaping Apoi, pânza de designer conține sursa, calificatorul său de sursă și definiția țintei.
Pas 2) Creați o nouă transformare utilizând meniul Transformare, apoi în fereastra Creare Transformare:
- Selectați un Control al Tranzacțiilor ca nouă transformare
- Introduceți numele transformării „tc_commit_dept20”
- Selectați opțiunea de creare
Pas 3) Transformarea Control tranzacții va fi creată, selectați butonul Terminat. Noul obiect apare acum pe pânză lângă Calificatorul sursă.
Pas 4) Trageți și plasați toate coloanele din Source Qualifier în transformarea Transaction Control, apoi legați toate coloanele din transformarea Transaction Control la tabelul țintă. Canalul rulează acum source → Source Qualifier → tc_commit_dept20 → EMP_TARGET.
Pas 5) Double Faceți clic pe transformarea Transaction Control și apoi, în fereastra de editare a proprietăților:
- Selectați fila de proprietate
- Faceți clic pe pictograma editorului de control al tranzacțiilor
Pas 6) În editorul de expresii introduceți expresia –
iif(deptno=20,tc_commit_before,tc_continue_transaction)
și selectați OK. Aceasta înseamnă că, dacă se găsește departamentul 20, tranzacția se validează în țintă, altfel se continuă procesarea curentă.
Pas 7) Selectați OK în fereastra anterioară. Condiția este acum stocată în fila Proprietăți a transformării.
Acum salvați hartaping și executați-o după crearea sesiunii și a fluxurilor de lucru. Această hartăping va transfera datele către țintă ori de câte ori departamentul numărul 20 este găsit în date.
Transformări eficiente și ineficiente ale controlului tranzacțiilor
Transformarea este un generator de tranzacții. Elimină orice limită de tranzacție sosită din amonte și definește noi limite proprii pentru tot ce vine din aval, motiv pentru care poziția sa în conductă contează la fel de mult ca și condiția sa.
Acesta este numit eficace pentru o țintă atunci când limitele pe care le creează ating în continuare acea țintă și ineficace când o transformare ulterioară elimină aceste limite. Conform Ghidului de transformare Informatica PowerCenter, următoarele obiecte elimină limitele tranzacțiilor primite:
- Un agregator, tâmplar, rang, Sortator sau Transformare personalizată al cărei domeniu de transformare este Toate intrările
- O transformare personalizată configurată pentru a genera tranzacții
- O altă transformare a Controlului Transacțiilor
- O transformare a grupurilor de intrări multiple conectată la mai mult de un punct de control al tranzacțiilor din amonte
Faptul că obiectul este ineficient pentru țintă nu face ca acesta să fie inutil. O transformare downstream al cărei domeniu de transformare este Tranzacție utilizează în continuare limitele definite în amonte, astfel încât aceeași transformare poate fi eficientă pentru un Sorter și ineficientă pentru tabelul din spatele acestuia.
Într-o hartăping cu mai multe ținte, obiectul poate fi eficient pentru o țintă și ineficient pentru alta. Hartaping rămâne validă atât timp cât fiecare țintă este conectată la o transformare eficientă de Control al Transacțiunilor și devine invalidă imediat ce o țintă nu mai este conectată. Designerul raportează ce transformări sunt ineficiente pentru ținte atunci când hartaping este salvat sau validat.
Reguli și instrucțiuni pentru transformarea controlului tranzacțiilor
Majoritatea problemelor legate de această transformare apar la momentul execuției, mai degrabă decât la momentul proiectării, așa că punctele de mai jos merită verificate înainte de construirea sesiunii.
- Valoarea returnată este strictă. Dacă condiția se evaluează la orice alt rezultat decât commit, rollback sau continue, Integration Service eșuează sesiunea.
- TC_CONTINUE_TRANSACTION este varianta de rezervă. Fiecare ramură a IIF() trebuie să se termine undeva, iar continue este valoarea care lasă tranzacția curentă neatinsă.
- Tipul de țintă contează. O transformare Transaction Control conectată la orice altă destinație decât o destinație MQSeries relațională, XML sau dinamică este ineficientă pentru acea destinație.
- Condiția poate folosi doar ceea ce ajunge la ea. Doar porturile legate la transformare, porturile variabile ale acesteia și variabilele încorporate sunt disponibile în editorul de control al tranzacțiilor.
- Frecvența de validare este un compromis. O condiție care se declanșează pe aproape fiecare rând elimină avantajul memorării temporare, în timp ce o condiție care se declanșează aproape niciodată reintroduce fereastra de pierdere de date pentru care a fost adăugată transformarea.
- Verificați jurnalul sesiunii. Jurnalul înregistrează punctele de validare care au fost efectiv luate, aceasta fiind cea mai rapidă modalitate de a confirma că situația s-a comportat conform intenției în timpul reglarea performanței.







