Transaktionskontrolltransformation i Informatica (exempel)
โก Smart sammanfattning
Transaktionskontrolltransformationen i Informatica รคr ett aktivt, anslutet objekt som bekrรคftar eller รฅterstรคller rader medan en mappningping kรถrs, med hjรคlp av fem inbyggda variabler i ett villkor som utvรคrderas en gรฅng fรถr varje rad.

Vad รคr Transaction Control Transformation?
Transaktionskontroll รคr en aktiv och sammankopplad transformation som gรถr det mรถjligt fรถr oss att genomfรถra eller รฅterstรคlla transaktioner under exekveringen av mappningen.pingCommit- och rollback-รฅtgรคrder รคr av stor betydelse eftersom de garanterar tillgรคngligheten av data.
Vid bearbetning av stora datamรคngder kan det uppstรฅ situationer dรฅ det รคr nรถdvรคndigt att committa data till mรฅlet. Om en commit utfรถrs fรถr ofta blir det en belastning fรถr systemet. Om en commit utfรถrs fรถr sent finns det risk fรถr datafรถrlust i hรคndelse av fel.
Sรฅ, fรถr att ge flexibilitet, tillhandahรฅlls transformationen Transaction Control. Istรคllet fรถr att lรคmna commit-punkten till sessionens standardvรคrde, tillรฅter den ett villkor inuti kartaping bestรคmma, rad fรถr rad, var en transaktion slutar och nรคsta bรถrjar.
TCL-kommandon fรถr commit och rollback
Det finns fem inbyggda variabler tillgรคngliga i den hรคr transformationen fรถr att hantera operationen. Villkoret mรฅste returnera en av de fem fรถr varje rad, och ett vรคrde utanfรถr den listan gรถr att integrationstjรคnsten misslyckas med sessionen.
TC_CONTINUE_TRANSACTION
I TC_CONTINUE_TRANSACTION utfรถrs inga operationer, processen fรถr datainlรคsning fortsรคtter som den gรถr. Detta รคr standardvรคrdet fรถr uttrycket.
TC_COMMIT_BEFORE
I TC_COMMIT_BEFORE, nรคr denna flagga รคr satt, utfรถrs en commit innan bearbetningen av den aktuella raden pรฅbรถrjas. En ny transaktion pรฅbรถrjas sedan och den aktuella raden skrivs till mรฅlet.
TC_COMMIT_AFTER
I TC_COMMIT_AFTER bearbetas den aktuella raden, sedan utfรถrs en commit och nรคsta transaktion pรฅbรถrjas.
TC_ROLLBACK_BEFORE
I TC_ROLLBACK_BEFORE utfรถrs rollback fรถrst, sedan bearbetas data fรถr att skrivas.
TC_ROLLBACK_AFTER
I TC_ROLLBACK_AFTER bearbetas data, sedan utfรถrs rollback.
Egenskaper fรถr transformation av transaktionskontroll
Objektet konfigureras frรฅn fรถnstret Redigera transformationer, som har samma fyra flikar som de andra PowerCenter-transformationerna. Att veta vilken flik som รคger vilken instรคllning sparar mycket letande under genomgรฅngen nedan.
| Fliken | Vad som รคr konfigurerat dรคr |
| Transformation | Namn pรฅ transformationen, dess beskrivning och om objektet gรถrs รฅteranvรคndbart. |
| Hamnar | In- och utportarna, normalt skapade genom att dra kolumnerna in frรฅn uppstrรถmstransformationen. |
| Vรฅra Bostรคder | Transaktionskontrollvillkoret, som รถppnas med den lilla pilen bredvid fรคltet, och Tracing-nivรฅ skriven till sessionsloggen. |
| Metadatatillรคgg | Anvรคndardefinierade metadata som lagras med transformationen i arkivet. |
Tvรฅ instรคllningar gรถr det riktiga jobbet. Transaktionskontrollvillkor innehรฅller uttrycket, vilket vanligtvis รคr ett IIF()-test som returnerar en av de fem variablerna. Tracingnivรฅ avgรถr hur mycket detaljer om transformationen som visas i sessionsloggen nรคr kรถrningen undersรถks.
En miljรถ ligger utanfรถr transformationen. Nรคr en kartaping innehรฅller en effektiv transaktionskontrolltransformation, kรถrs sessionen med Typ av commit instรคlld pรฅ Anvรคndardefinierad pรฅ fliken Egenskaper i session, istรคllet fรถr Target eller kรคllcommit-typer som anvรคnder ett fast commit-intervall.
Hur man anvรคnder transaktionskontrolltransformation i Informatica
I det hรคr exemplet kommer vi att committa data till mรฅlet nรคr villkoret avdelningsnummer = 20 รคr sant.
Steg 1) Skapa en kartaping med EMP som kรคlla och EMP_TARGET som mรฅl. Kartanping Designer-arbetsplatsen innehรฅller sedan kรคllan, dess kรคllkvalificerare och mรฅldefinitionen.
Steg 2) Skapa en ny transformation med hjรคlp av menyn Transformation och gรถr sedan fรถljande i fรถnstret Skapa transformation:
- Vรคlj en transaktionskontroll som den nya transformationen
- Ange transformationsnamnet "tc_commit_dept20"
- Vรคlj skapa alternativ
Steg 3) Transaktionskontrolltransformationen skapas, vรคlj knappen "Klar". Det nya objektet visas nu pรฅ arbetsytan bredvid kรคllkvalificeraren.
Steg 4) Dra och slรคpp alla kolumner frรฅn kรคllkvalificeraren till transaktionskontrolltransformationen och lรคnka sedan alla kolumner frรฅn transaktionskontrolltransformationen till mรฅltabellen. Pipelinen kรถrs nu kรคllkod โ kรคllkvalificerare โ tc_commit_dept20 โ EMP_TARGET.
Steg 5) Double Klicka pรฅ Transaktionskontrolltransformationen och sedan i fรถnstret fรถr redigering av egenskaper:
- Vรคlj egenskapsflik
- Klicka pรฅ ikonen fรถr redigeraren fรถr transaktionskontroll
Steg 6) I uttrycksredigeraren anger du uttrycket โ
iif(deptno=20,tc_commit_before,tc_continue_transaction)
och vรคlj OK. Det betyder att om avdelningsnummer 20 hittas, genomfรถr transaktionen i mรฅlet, annars fortsรคtter den aktuella bearbetningen.
Steg 7) Vรคlj OK i fรถregรฅende fรถnster. Villkoret รคr nu lagrat pรฅ fliken Egenskaper fรถr transformationen.
Spara nu kartanping och kรถr den efter att session och arbetsflรถden har skapats. Denna kartaping kommer att รถverfรถra data till mรฅlet nรคrhelst avdelningsnummer 20 hittas i data.
Effektiva och ineffektiva transaktionskontrolltransformationer
Transformationen รคr en transaktionsgenerator. Den tar bort alla transaktionsgrรคnser som anlรคnder uppstrรถms och definierar nya egna grรคnser fรถr allt nedstrรถms, vilket รคr anledningen till att dess position i pipelinen รคr lika viktig som dess tillstรฅnd.
Det kallas effektiv fรถr ett mรฅl nรคr de grรคnser det skapar fortfarande nรฅr det mรฅlet, och ineffektiva nรคr en senare transformation tar bort dessa grรคnser. Enligt Informatica PowerCenter Transformation Guide tar fรถljande objekt bort inkommande transaktionsgrรคnser:
- En aggregator, Snickare, Rang, Sorterare eller anpassad transformation vars transformationsomfattning รคr All indata
- En anpassad transformation konfigurerad fรถr att generera transaktioner
- รnnu en transformation av transaktionskontroll
- En transformation med flera ingรฅngsgrupper ansluten till mer รคn en uppstrรถms transaktionskontrollpunkt
Att vara ineffektivt fรถr mรฅlet gรถr inte objektet oanvรคndbart. En nedstrรถmstransformation vars transformationsomfattning รคr Transaktion anvรคnder fortfarande de grรคnser som definierats uppstrรถms, sรฅ samma transformation kan vara effektiv fรถr en sorterare och ineffektiv fรถr tabellen bakom den.
Pรฅ en kartaping Med flera mรฅl kan objektet vara effektivt fรถr ett mรฅl och ineffektivt fรถr ett annat. Kartanping fรถrblir giltig medan varje mรฅl รคr kopplat till en effektiv transaktionskontrolltransformation och blir ogiltig sรฅ snart ett mรฅl inte รคr det. Designern rapporterar vilka transformationer som รคr ineffektiva fรถr mรฅl nรคr mappningenping sparas eller valideras.
Regler och riktlinjer fรถr transformation av transaktionskontroll
De flesta problemen med den hรคr transformationen uppstรฅr vid kรถrning snarare รคn vid designtid, sรฅ punkterna nedan รคr vรคrda att kontrollera innan sessionen byggs.
- Returvรคrdet รคr strikt. Om villkoret utvรคrderas till nรฅgot annat รคn commit, rollback eller continue, misslyckas integrationstjรคnsten med att genomfรถra sessionen.
- TC_CONTINUE_TRANSACTION รคr reservalternativet. Varje gren av IIF() mรฅste sluta nรฅgonstans, och continue รคr det vรคrde som lรคmnar den aktuella transaktionen orรถrd.
- Mรฅltypen spelar roll. En transaktionskontrolltransformation som รคr kopplad till ett annat mรฅl รคn ett relationellt, XML- eller dynamiskt MQSeries-mรฅl รคr ineffektiv fรถr det mรฅlet.
- Villkoret kan bara anvรคnda det som nรฅr det. Endast portar som รคr lรคnkade till transformationen, dess variabla portar och de inbyggda variablerna รคr tillgรคngliga i transaktionskontrollredigeraren.
- Commit-frekvensen รคr en avvรคgning. Ett villkor som genomfรถrs pรฅ nรคstan varje rad tar bort fรถrdelen med buffring, medan ett villkor som nรคstan aldrig utlรถses รฅterinfรถr datafรถrlustfรถnstret som transformationen lades till fรถr att stรคnga.
- Kontrollera sessionsloggen. Loggen registrerar de commit-punkter som faktiskt togs, vilket รคr det snabbaste sรคttet att bekrรคfta att villkoret betedde sig som avsett under prestandajustering.







