Transaktionskontroltransformation i Informatica (eksempel)
โก Smart opsummering
Transaktionskontroltransformation i Informatica er et aktivt, forbundet objekt, der committer eller ruller rรฆkker tilbage, mens et kortping kรธrer ved hjรฆlp af fem indbyggede variabler i en betingelse, der evalueres รฉn gang for hver rรฆkke.

Hvad er Transaction Control Transformation?
Transaktionskontrol er en aktiv og forbundet transformation, der giver os mulighed for at committe eller rulle tilbage transaktioner under udfรธrelsen af โโkortet.pingCommit- og rollback-operationer er af stor betydning, fordi de garanterer tilgรฆngeligheden af โโdata.
Nรฅr man behandler en stor mรฆngde data, kan der opstรฅ situationer, hvor det er nรธdvendigt at commit dataene til mรฅlet. Hvis en commit udfรธres for ofte, vil det medfรธre en overhead for systemet. Hvis en commit udfรธres for sent, er der risiko for datatab i tilfรฆlde af fejl.
Sรฅ for at give fleksibilitet er Transaction Control-transformationen tilgรฆngelig. I stedet for at lade commit-punktet vรฆre standardindstillingen for sessionen, tillader den en betingelse indeni kortping bestemme, rรฆkke for rรฆkke, hvor รฉn transaktion slutter, og den nรฆste begynder.
TCL Commit- og Rollback-kommandoer
Der er fem indbyggede variabler tilgรฆngelige i denne transformation til at hรฅndtere operationen. Betingelsen skal returnere en af โโde fem for hver rรฆkke, og en vรฆrdi uden for denne liste fรฅr integrationstjenesten til at fejle sessionen.
TC_CONTINUE_TRANSACTION
I TC_CONTINUE_TRANSACTION udfรธres der ingen handlinger, dataindlรฆsningsprocessen fortsรฆtter som den er. Dette er standardvรฆrdien for udtrykket.
TC_COMMIT_BEFORE
I TC_COMMIT_BEFORE, nรฅr dette flag er angivet, udfรธres en commit fรธr behandlingen af โโden aktuelle rรฆkke. En ny transaktion begynder derefter, og den aktuelle rรฆkke skrives til mรฅlet.
TC_COMMIT_AFTER
I TC_COMMIT_AFTER behandles den aktuelle rรฆkke, derefter udfรธres en commit, og den nรฆste transaktion begynder.
TC_ROLLBACK_BEFORE
I TC_ROLLBACK_BEFORE udfรธres rollback fรธrst, derefter behandles dataene for at skrive.
TC_ROLLBACK_AFTER
I TC_ROLLBACK_AFTER behandles dataene, og derefter udfรธres rollback.
Egenskaber for transformation af transaktionskontrol
Objektet konfigureres fra vinduet Rediger transformationer, som har de samme fire faner som de andre PowerCenter-transformationer. At vide, hvilken fane der ejer hvilken indstilling, sparer en masse sรธgen under gennemgangen nedenfor.
| Tab | Hvad er konfigureret der |
| Transformation | Navn pรฅ transformationen, dens beskrivelse og om objektet gรธres genbrugeligt. |
| Havne | Input- og outputportene, normalt oprettet ved at trรฆkke kolonnerne ind fra den opstrรธms transformation. |
| Ejendomme | Transaktionskontrolbetingelsen, รฅbnet med den lille pil ved siden af โโfeltet, og Tracing-niveau skrevet til sessionsloggen. |
| Metadata-udvidelser | Brugerdefinerede metadata, der opbevares sammen med transformationen i arkivet. |
To indstillinger gรธr det rigtige arbejde. Transaktionskontrolbetingelse indeholder udtrykket, som normalt er en IIF()-test, der returnerer en af โโde fem variabler. Tracniveau bestemmer, hvor mange detaljer om transformationen der vises i sessionsloggen, nรฅr kรธrslen undersรธges.
รn indstilling ligger uden for transformationen. Nรฅr et kortping indeholder en effektiv transaktionskontroltransformation, kรธrer sessionen med Commit-type indstillet til Brugerdefineret pรฅ fanen Egenskaber i Session, i stedet for Target eller kilde-commit-typer, der bruger et fast commit-interval.
Sรฅdan bruger du transaktionskontroltransformation i Informatica
I dette eksempel vil vi committe data til mรฅlet, nรฅr betingelsen afdelingsnr. = 20 findes at vรฆre sand.
Trin 1) Opret et kortping med EMP som kilde og EMP_TARGET som mรฅl. Kortetping Designer-lรฆrredet indeholder derefter kilden, dens kildekvalifikator og mรฅldefinitionen.
Trin 2) Opret en ny transformation ved hjรฆlp af menuen Transformation, og gรธr derefter fรธlgende i vinduet Opret transformation:
- Vรฆlg en transaktionskontrol som den nye transformation
- Indtast transformationsnavnet "tc_commit_dept20"
- Vรฆlg oprettelsesmulighed
Trin 3) Transaktionskontroltransformationen oprettes. Vรฆlg knappen "Udfรธrt". Det nye objekt vises nu pรฅ lรฆrredet ved siden af โโkildekvalifikatoren.
Trin 4) Trรฆk og slip alle kolonnerne fra kildekvalifikatoren til transaktionskontroltransformationen, og link derefter alle kolonnerne fra transaktionskontroltransformationen til mรฅltabellen. Pipelinen kรธrer nu kilde โ kildekvalifikator โ tc_commit_dept20 โ EMP_TARGET.
Trin 5) Double Klik pรฅ transformationen Transaktionskontrol og derefter i vinduet Rediger egenskaber:
- Vรฆlg egenskabsfanen
- Klik pรฅ ikonet for transaktionskontroleditoren
Trin 6) I udtrykseditoren skal du indtaste udtrykket โ
iif(deptno=20,tc_commit_before,tc_continue_transaction)
og vรฆlg OK. Det betyder, at hvis afdelingsnr. 20 findes, skal transaktionen committes i mรฅlet, ellers skal den aktuelle behandling fortsรฆttes.
Trin 7) Vรฆlg OK i det forrige vindue. Betingelsen er nu gemt pรฅ fanen Egenskaber for transformationen.
Gem nu kortetping og udfรธre den efter oprettelse af session og arbejdsgange. Dette kortping vil overfรธre dataene til mรฅlet, nรฅr afdelingsnummer 20 findes i dataene.
Effektive og ineffektive transaktionskontroltransformationer
Transformationen er en transaktionsgenerator. Den fjerner enhver transaktionsgrรฆnse, der kommer fra upstream, og definerer sine egne nye grรฆnser for alt downstream, hvilket er grunden til, at dens position i pipelinen er lige sรฅ vigtig som dens tilstand.
Det kaldes effektiv for et mรฅl, nรฅr de grรฆnser, det skaber, stadig nรฅr dette mรฅl, og ineffektiv nรฅr en senere transformation fjerner disse grรฆnser. Ifรธlge Informatica PowerCenter Transformation Guide fjerner fรธlgende objekter grรฆnser for indgรฅende transaktioner:
- En aggregator, Joiner, Rang (Kolonne), Sorteringsvรฆrktรธj eller brugerdefineret transformation, hvis transformationsomfang er Alt input
- En brugerdefineret transformation konfigureret til at generere transaktioner
- Endnu en transformation af transaktionskontrol
- En transformation med flere inputgrupper forbundet til mere end รฉt upstream-transaktionskontrolpunkt
At vรฆre ineffektiv for mรฅlet gรธr ikke objektet ubrugeligt. En downstream-transformation, hvis Transformation Scope er Transaction, bruger stadig de grรฆnser, der er defineret upstream, sรฅ den samme transformation kan vรฆre effektiv for en sorterer og ineffektiv for tabellen bagved.
Pรฅ et kortping Med flere mรฅl kan objektet vรฆre effektivt for รฉt mรฅl og ineffektivt for et andet. Kortetping forbliver gyldig, mens hvert mรฅl er forbundet til en effektiv transaktionskontroltransformation, og bliver ugyldig, sรฅ snart รฉt mรฅl ikke er det. Designeren rapporterer, hvilke transformationer der er ineffektive for mรฅl, nรฅr kortetping er gemt eller valideret.
Regler og retningslinjer for transformation af transaktionskontrol
De fleste problemer med denne transformation opstรฅr under kรธrsel snarere end under design, sรฅ det er vรฆrd at kontrollere punkterne nedenfor, fรธr sessionen bygges.
- Returvรฆrdien er streng. Hvis betingelsen evalueres til andet end commit, rollback eller continue, fejler integrationstjenesten sessionen.
- TC_CONTINUE_TRANSACTION er reserven. Hver gren af โโIIF() skal slutte et sted, og continue er den vรฆrdi, der ikke berรธrer den aktuelle transaktion.
- Mรฅltypen er vigtig. En transaktionskontroltransformation, der er forbundet med et andet mรฅl end et relationelt, XML- eller dynamisk MQSeries-mรฅl, er ineffektiv for det pรฅgรฆldende mรฅl.
- Betingelsen kan kun bruge det, der nรฅr den. Kun porte, der er linket til transformationen, dens variable porte og de indbyggede variabler, er tilgรฆngelige i transaktionskontroleditoren.
- Commit-frekvens er en afvejning. En betingelse, der committer pรฅ nรฆsten hver rรฆkke, fjerner fordelen ved buffering, mens en betingelse, der nรฆsten aldrig udlรธses, genintroducerer det datatabsvindue, som transformationen blev tilfรธjet for at lukke.
- Tjek sessionsloggen. Loggen registrerer de commit-punkter, der rent faktisk blev taget, hvilket er den hurtigste mรฅde at bekrรฆfte, at betingelsen opfรธrte sig som tilsigtet under prรฆstationsindstilling.







