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.

  • 🔄 Cinci variabile încorporate: TC_CONTINUE_TRANSACTION, TC_COMMIT_BEFORE, TC_COMMIT_AFTER, TC_ROLLBACK_BEFORE și TC_ROLLBACK_AFTER decid ce se întâmplă la fiecare rând.
  • ⚙️ Condiția se află în Proprietăți: Câmpul Condiție de control al tranzacțiilor din fila Proprietăți conține expresia IIF pe care o evaluează serviciul de integrare.
  • 🧪 Exemplu lucrat: Șapte Hartăping Pașii de designer validează datele EMP către EMP_TARGET ori de câte ori este găsit departamentul numărul 20.
  • Eficient sau ineficient: Orice transformare care elimină limitele tranzacțiilor după aceasta face ca obiectul să fie ineficient pentru ținta din spatele ei.
  • 🔧 Tipul de confirmare a sesiunii: O hartăping cu o transformare eficientă de Control al tranzacțiilor care se execută sub tipul de confirmare definit de utilizator.
  • ⚠️ Valoare returnată strictă: O condiție care returnează orice altă valoare decât commit, rollback sau continue face ca sesiunea să eșueze ca Integration Service.

Transaction Control Transformation în Informatica

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.

Hartăping Canvasul de designer cu sursa EMP, calificatorul sursă și definiția țintei EMP_TARGET

Pas 2) Creați o nouă transformare utilizând meniul Transformare, apoi în fereastra Creare Transformare:

  1. Selectați un Control al Tranzacțiilor ca nouă transformare
  2. Introduceți numele transformării „tc_commit_dept20”
  3. Selectați opțiunea de creare

Fereastra Creare Transformare cu opțiunea Control Transacțiuni selectată și numele tc_commit_dept20 introdus

Pas 3) Transformarea Control tranzacții va fi creată, selectați butonul Terminat. Noul obiect apare acum pe pânză lângă Calificatorul sursă.

Transformarea Control tranzacții tc_commit_dept20 creată 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.

Coloanele Calificatorului Sursă legate prin tc_commit_dept20 în tabelul EMP_TARGET

Pas 5) Double Faceți clic pe transformarea Transaction Control și apoi, în fereastra de editare a proprietăților:

  1. Selectați fila de proprietate
  2. Faceți clic pe pictograma editorului de control al tranzacțiilor

Fila Proprietăți din fereastra Editare transformări care afișează 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ă.

Editorul de expresii care conține condiția IIF ce se confirmă înaintea unui rând cu departamentul numărul 20

Pas 7) Selectați OK în fereastra anterioară. Condiția este acum stocată în fila Proprietăți a transformării.

Fila Proprietăți din fereastra Editare transformări după salvarea condiției de control al tranzacției

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.

Întrebări frecvente

Un interval de validare se validează după un număr fix de rânduri setat în sesiune. O condiție de control al tranzacțiilor se validează asupra datelor în sine, astfel încât punctul de validare urmează o regulă de business mai degrabă decât un număr de rânduri.

Ghidul de transformare Informatica PowerCenter precizează că o transformare Transaction Control conectată la orice altă țintă decât o țintă MQSeries relațională, XML sau dinamică este ineficientă pentru acea țintă.

Da. Construiește-l în Dezvoltatorul de Transformări sau bifează opțiunea Reutilizabilă din fila Transformare a unei hărți existente. Fiecare hartăping apoi împărtășește aceeași condiție, astfel încât o modificare a regulii le afectează pe toate simultan.

Învățarea automată pe baza jurnalelor de sesiune istorice poate semnala încărcări în care frecvența commit-urilor se corelează cu durate lungi de execuție sau cu furtuni de rollback. Sugestia este încă o ipoteză, așa că verificați-o cu o execuție reală înainte de a schimba condiția.

Copilot poate schița forma IIF() și vă poate reaminti de cele cinci nume de variabile, dar nu cunoaște numele porturilor sau regulile de business. Tratați rezultatul ca punct de plecare și validați-l în editorul de expresii.

Strategia de actualizare decide ce se întâmplă cu un rând, etichetându-l ca inserare, actualizare, ștergere sau respingere. Controlul tranzacțiilor decide când rândurile scrise devin permanente. Cele două răspund la întrebări diferite și sunt adesea folosite împreună.

Integrarea datelor în cloud livrează propria transformare Transaction Control cu ​​aceleași variabile de tip commit, rollback și continue. Ideea de design este preluată, dar obiectul este construit în harta cloud.ping Designer, mai degrabă decât în ​​clientul PowerCenter.

Rândurile scrise de la ultima validare din tranzacția respectivă sunt eliminate. Orice validare a fost validată anterior rămâne în țintă, motiv pentru care plasarea punctelor de validare decide cât de multă muncă poate costa o eroare.

Rezumați această postare cu: