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.

  • ๐Ÿ”„ Fem indbyggede variabler: TC_CONTINUE_TRANSACTION, TC_COMMIT_BEFORE, TC_COMMIT_AFTER, TC_ROLLBACK_BEFORE og TC_ROLLBACK_AFTER bestemmer, hvad der sker i hver rรฆkke.
  • ๐Ÿ‡ง๐Ÿ‡ท Tilstanden findes i egenskaber: Feltet Transaktionskontrolbetingelse pรฅ fanen Egenskaber indeholder det IIF-udtryk, som integrationstjenesten evaluerer.
  • ๐Ÿงช Udarbejdet eksempel: Syv kortping Designertrinene committer EMP-dataene til EMP_TARGET, nรฅr afdelingsnummer 20 findes.
  • โœ… Effektiv eller ineffektiv: Enhver transformation, der fjerner transaktionsgrรฆnser efter den, gรธr objektet ineffektivt for mรฅlet bagved.
  • ๐Ÿ”ง Sessions commit-type: Et kortping med en effektiv transaktionskontroltransformation kรธrer under den brugerdefinerede commit-type.
  • โš ๏ธ Streng returvรฆrdi: En betingelse, der returnerer noget andet end commit, rollback eller continue, fรฅr integrationstjenesten til at fejle sessionen.

Transaktionskontroltransformation i Informatica

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.

Kortping Designer-lรฆrred med EMP-kilden, dens kildekvalifikator og EMP_TARGET-mรฅldefinitionen

Trin 2) Opret en ny transformation ved hjรฆlp af menuen Transformation, og gรธr derefter fรธlgende i vinduet Opret transformation:

  1. Vรฆlg en transaktionskontrol som den nye transformation
  2. Indtast transformationsnavnet "tc_commit_dept20"
  3. Vรฆlg oprettelsesmulighed

Opret et transformationsvindue med transaktionskontrol valgt og navnet tc_commit_dept20 indtastet

Trin 3) Transaktionskontroltransformationen oprettes. Vรฆlg knappen "Udfรธrt". Det nye objekt vises nu pรฅ lรฆrredet ved siden af โ€‹โ€‹kildekvalifikatoren.

Transaktionskontroltransformationen tc_commit_dept20 oprettet 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.

Kildekvalifikatorkolonner linket via tc_commit_dept20 til EMP_TARGET-tabellen

Trin 5) Double Klik pรฅ transformationen Transaktionskontrol og derefter i vinduet Rediger egenskaber:

  1. Vรฆlg egenskabsfanen
  2. Klik pรฅ ikonet for transaktionskontroleditoren

Fanen Egenskaber i vinduet Rediger transformationer, der viser 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.

Udtrykseditor, der indeholder IIF-betingelsen, der committer fรธr en rรฆkke med afdelingsnummer 20

Trin 7) Vรฆlg OK i det forrige vindue. Betingelsen er nu gemt pรฅ fanen Egenskaber for transformationen.

Fanen Egenskaber i vinduet Rediger transformationer, efter at transaktionskontrolbetingelsen er gemt

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.

Ofte Stillede Spรธrgsmรฅl

Et commit-interval committer efter et fast antal rรฆkker, der er angivet i sessionen. En transaktionskontrolbetingelse committer pรฅ selve dataene, sรฅ commit-punktet fรธlger en forretningsregel snarere end et rรฆkkeantal.

Informatica PowerCenter Transformation Guide angiver, at en Transaction Control-transformation, 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.

Ja. Byg det i Transformation Developer, eller marker Gรธr genanvendelig pรฅ fanen Transformation i et eksisterende kort. Hvert kortping deler derefter den samme betingelse, sรฅ en รฆndring af reglen rammer dem alle pรฅ รฉn gang.

Maskinlรฆring via historiske sessionslogfiler kan markere indlรฆsninger, hvor commit-frekvensen korrelerer med lange runtimes eller rollback storms. Forslaget er stadig en hypotese, sรฅ verificรฉr det mod en reel kรธrsel, fรธr du รฆndrer betingelsen.

Copilot kan udarbejde IIF()-formen og minde dig om de fem variabelnavne, men den kender ikke dine portnavne eller forretningsregler. Brug outputtet som et udgangspunkt, og valider det i udtrykseditoren.

Opdateringsstrategien bestemmer, hvad der sker med en rรฆkke, ved at tagge den med indsรฆttelse, opdatering, sletning eller afvisning. Transaktionskontrol bestemmer, hvornรฅr de skrevne rรฆkker gรธres permanente. De to besvarer forskellige spรธrgsmรฅl og bruges ofte sammen.

Cloud Data Integration leverer sin egen Transaction Control-transformation med de samme commit-, rollback- og continue-variabler. Designideen fortsรฆtter, men objektet er bygget i cloud-kortet.ping Designer i stedet for i PowerCenter-klienten.

Rรฆkker skrevet siden den sidste commit i den transaktion kasseres. Alt, der er commit tidligere, forbliver i mรฅlet, hvilket er grunden til, at placeringen af โ€‹โ€‹commit-punkterne bestemmer, hvor meget arbejde en fejl kan koste.

Opsummer dette indlรฆg med: