Transformatie van transactiecontrole in Informatica (voorbeeld)

โšก Slimme samenvatting

De Transaction Control-transformatie in Informatica is een actief, verbonden object dat rijen vastlegt of terugdraait terwijl een kaart wordt gebruikt.ping De code wordt uitgevoerd met behulp van vijf ingebouwde variabelen binnen een voorwaarde die รฉรฉn keer per rij wordt geรซvalueerd.

  • ๐Ÿ”„ Vijf ingebouwde variabelen: TC_CONTINUE_TRANSACTION, TC_COMMIT_BEFORE, TC_COMMIT_AFTER, TC_ROLLBACK_BEFORE en TC_ROLLBACK_AFTER bepalen wat er bij elke rij gebeurt.
  • โš™๏ธ De conditie is aanwezig in de eigenschappen: Het veld 'Transactiecontrolevoorwaarde' op het tabblad 'Eigenschappen' bevat de IIF-expressie die de integratieservice evalueert.
  • ๐Ÿงช Uitgewerkt voorbeeld: Zeven Kaartping De ontwerpstappen zorgen ervoor dat de EMP-gegevens naar EMP_TARGET worden opgeslagen zodra afdelingsnummer 20 wordt gevonden.
  • โœ… Effectief of ineffectief: Elke transformatie die transactiegrenzen opheft, maakt het object onbruikbaar voor het doel erachter.
  • ๐Ÿ”ง Type sessiecommit: Een kaartping met een effectieve transactiecontroletransformatie die wordt uitgevoerd onder het door de gebruiker gedefinieerde commit-type.
  • โš ๏ธ Strikte retourwaarde: Als een voorwaarde iets anders dan commit, rollback of continue retourneert, mislukt de sessie in de Integration Service.

Transformatie van transactiecontrole in Informatica

Wat is transactiecontroletransformatie?

Transactiebeheer is een actieve en verbonden transformatie waarmee we transacties kunnen vastleggen of terugdraaien tijdens de uitvoering van de map.pingCommit- en rollback-bewerkingen zijn van groot belang omdat ze de beschikbaarheid van gegevens garanderen.

Bij het verwerken van grote hoeveelheden data kan het voorkomen dat de data naar de bestemming moet worden geschreven. Als een commit te vaak wordt uitgevoerd, leidt dit tot extra belasting van het systeem. Als een commit te laat wordt uitgevoerd, bestaat er bij een storing een kans op dataverlies.

Om flexibiliteit te bieden, is de Transaction Control-transformatie beschikbaar. In plaats van het commitpunt aan de standaardinstelling van de sessie over te laten, maakt deze transformatie het mogelijk om een โ€‹โ€‹voorwaarde binnen de transactie te definiรซren. kaartping Bepaal regel voor regel waar de ene transactie eindigt en de volgende begint.

TCL-commit- en rollback-opdrachten

Deze transformatie beschikt over vijf ingebouwde variabelen om de bewerking af te handelen. De voorwaarde moet voor elke rij een van deze vijf variabelen retourneren; een waarde buiten deze lijst zorgt ervoor dat de Integration Service de sessie beรซindigt.

TC_CONTINUE_TRANSACTION

In TC_CONTINUE_TRANSACTION worden geen bewerkingen uitgevoerd; het data-laadproces gaat gewoon verder. Dit is de standaardwaarde van de expressie.

TC_COMMIT_BEFORE

In TC_COMMIT_BEFORE wordt, wanneer deze vlag is ingesteld, een commit uitgevoerd vรณรณr de verwerking van de huidige rij. Vervolgens start een nieuwe transactie en wordt de huidige rij naar de bestemming geschreven.

TC_COMMIT_AFTER

In TC_COMMIT_AFTER wordt de huidige rij verwerkt, waarna een commit wordt uitgevoerd en de volgende transactie begint.

TC_ROLLBACK_BEFORE

In TC_ROLLBACK_BEFORE wordt eerst de rollback uitgevoerd, waarna de gegevens worden verwerkt om te worden weggeschreven.

TC_ROLLBACK_AFTER

In TC_ROLLBACK_AFTER worden de gegevens verwerkt en vervolgens wordt de rollback uitgevoerd.

Transformatie-eigenschappen voor transactiebeheer

Het object wordt geconfigureerd vanuit het venster 'Transformaties bewerken', dat dezelfde vier tabbladen heeft als de andere PowerCenter-transformaties. Weten welk tabblad bij welke instelling hoort, bespaart een hoop zoekwerk tijdens de onderstaande stappen.

Tab Wat is daar geconfigureerd?
Transformatie De naam van de transformatie, de beschrijving ervan en of het object herbruikbaar is gemaakt.
poorten De invoer- en uitvoerpoorten worden normaal gesproken gemaakt door de kolommen vanuit de upstream-transformatie te slepen.
Aanbod De transactiecontrolevoorwaarde, die wordt geopend met het kleine pijltje naast het veld, en de TracHet ing-niveau is in het sessielogboek vastgelegd.
Metadata-extensies Door de gebruiker gedefinieerde metadata worden samen met de transformatie in de repository bewaard.

Twee instellingen doen het echte werk. De Transactiecontrolevoorwaarde Bevat de expressie, die meestal een IIF()-test is die een van de vijf variabelen retourneert. Tracing Niveau Bepaalt hoeveel details over de transformatie in het sessielogboek verschijnen wanneer de uitvoering wordt onderzocht.

Eรฉn instelling bevindt zich buiten de transformatie. Wanneer een kaartping als er een effectieve transactiecontrole-transformatie aanwezig is, wordt de sessie uitgevoerd met de Committype ingesteld op Gebruikersgedefinieerd op het tabblad Eigenschappen van de sessie, in plaats van de Target of broncommittypen die een vast commitinterval gebruiken.

Hoe gebruik je de transactiecontroletransformatie in Informatica?

In dit voorbeeld zullen we gegevens naar het doel opslaan wanneer aan de voorwaarde dept no = 20 is voldaan.

Stap 1) Maak een kaartping met EMP als bron en EMP_TARGET als doel. De kaartping Het ontwerpcanvas bevat vervolgens de bron, de bijbehorende bronkwalificatie en de doeldefinitie.

Wereldmapping Ontwerpcanvas met de EMP-bron, de bijbehorende bronkwalificatie en de doeldefinitie EMP_TARGET.

Stap 2) Maak een nieuwe transformatie aan via het menu Transformatie en vervolgens in het venster Transformatie aanmaken:

  1. Selecteer een transactiecontrole als de nieuwe transformatie.
  2. Voer de transformatienaam โ€œtc_commit_dept20โ€ in
  3. Selecteer optie maken

Maak een transformatievenster aan met transactiebeheer geselecteerd en voer de naam tc_commit_dept20 in.

Stap 3) De transformatie Transaction Control wordt aangemaakt. Selecteer de knop 'Gereed'. Het nieuwe object verschijnt nu op het canvas naast de Source Qualifier.

De transactiecontroletransformatie tc_commit_dept20 is aangemaakt naast de bronkwalificatie.

Stap 4) Sleep alle kolommen van de Source Qualifier naar de Transaction Control-transformatie en koppel vervolgens alle kolommen van de Transaction Control-transformatie aan de doeltabel. De pipeline wordt nu uitgevoerd als volgt: source โ†’ Source Qualifier โ†’ tc_commit_dept20 โ†’ EMP_TARGET.

Source Qualifier-kolommen zijn via tc_commit_dept20 gekoppeld aan de EMP_TARGET-tabel.

Stap 5) Double Klik op de transformatie 'Transactiebeheer' en vervolgens in het venster 'Eigenschappen bewerken':

  1. Selecteer het tabblad Eigenschappen
  2. Klik op het pictogram van de transactiecontrole-editor

Het tabblad Eigenschappen van het venster Transformaties bewerken toont het pictogram van de transactiebesturingseditor.

Stap 6) Voer de expressie in de expressie-editor in โ€“

iif(deptno=20,tc_commit_before,tc_continue_transaction)

en selecteer OK. Dit betekent dat als afdelingsnummer 20 wordt gevonden, de transactie in het doel moet worden vastgelegd, anders moet de huidige verwerking worden voortgezet.

Expressie-editor met de IIF-voorwaarde die een commit uitvoert vรณรณr een rij met afdelingsnummer 20

Stap 7) Selecteer OK in het vorige venster. De voorwaarde is nu opgeslagen op het tabblad Eigenschappen van de transformatie.

Het tabblad Eigenschappen van het venster Transformaties bewerken nadat de transactiecontrolevoorwaarde is opgeslagen

Sla de kaart nu op.ping en voer het uit na het aanmaken van de sessie en workflows. Deze kaartping De gegevens worden naar het doeladres verzonden zodra afdelingsnummer 20 in de gegevens wordt gevonden.

Effectieve en ineffectieve transformaties van transactiecontrole

De transformatie is een transactiegenerator. Hij negeert alle transactiegrenzen die van bovenaf binnenkomen en definieert zelf nieuwe grenzen voor alles wat erna komt. Daarom is zijn positie in de pipeline net zo belangrijk als zijn status.

Het heet effectief voor een doel wanneer de grenzen die het creรซert dat doel nog steeds bereiken, en ineffectief wanneer een latere transformatie die grenzen negeert. Volgens de Informatica PowerCenter Transformation Guide laten de volgende objecten inkomende transactiegrenzen vallen:

  • Een aggregator, Schrijnwerker, Rang, Sorteer- of aangepaste transformatie waarvan het transformatiebereik alle invoer is
  • Een aangepaste transformatie geconfigureerd om transacties te genereren.
  • Nog een transformatie van transactiebeheer
  • Een transformatie met meerdere invoergroepen, verbonden met meer dan รฉรฉn upstream transactiecontrolepunt.

Dat een object niet effectief is voor het doel, betekent niet dat het nutteloos is. Een downstream-transformatie waarvan het transformatiebereik 'Transactie' is, gebruikt nog steeds de grenzen die upstream zijn gedefinieerd. Dezelfde transformatie kan dus effectief zijn voor een sorteerder, maar niet effectief voor de tabel erachter.

Op een kaartping Bij meerdere doelen kan het object effectief zijn voor het ene doel en niet effectief voor het andere. De kaartping Deze functie blijft geldig zolang elk doel is verbonden met een effectieve transactiecontroletransformatie en wordt ongeldig zodra รฉรฉn doel niet meer is verbonden. De ontwerper meldt welke transformaties niet effectief zijn voor doelen wanneer de kaartping wordt opgeslagen of gevalideerd.

Regels en richtlijnen voor de transformatie van transactiebeheer

De meeste problemen met deze transformatie komen aan het licht tijdens de uitvoering, en niet tijdens het ontwerpen. Daarom is het raadzaam de onderstaande punten te controleren voordat de sessie wordt opgebouwd.

  • De retourwaarde is strikt. Als de voorwaarde iets anders dan 'commit', 'rollback' of 'continue' oplevert, mislukt de sessie van de integratieservice.
  • TC_CONTINUE_TRANSACTION is het terugvalalternatief. Elke tak van de IIF() moet ergens eindigen, en 'continue' is de waarde die de huidige transactie ongewijzigd laat.
  • Het doeltype is van belang. Een transactiecontroletransformatie die is gekoppeld aan een ander doel dan een relationeel, XML- of dynamisch MQSeries-doel, is niet effectief voor dat doel.
  • De aandoening kan alleen gebruiken wat haar bereikt. Alleen poorten die aan de transformatie zijn gekoppeld, de variabele poorten ervan en de ingebouwde variabelen zijn beschikbaar in de transactiebeheer-editor.
  • De frequentie van commits is een afweging. Een voorwaarde die op bijna elke rij wordt uitgevoerd, heft het voordeel van buffering op, terwijl een voorwaarde die bijna nooit wordt geactiveerd het gegevensverliesvenster opnieuw introduceert dat de transformatie juist moest dichten.
  • Controleer het sessielogboek. Het logboek registreert de commitpunten die daadwerkelijk zijn gebruikt, wat de snelste manier is om te bevestigen dat de situatie zich tijdens het proces naar behoren heeft gedragen. prestatieafstemming.

Veelgestelde vragen

Een commit-interval voert een commit uit na een vast aantal rijen dat in de sessie is ingesteld. Een transactiecontroleconditie voert een commit uit op de gegevens zelf, waardoor het commit-punt een bedrijfsregel volgt in plaats van een rijtelling.

De Informatica PowerCenter Transformation Guide stelt dat een Transaction Control-transformatie die is gekoppeld aan een doel dat geen relationeel, XML- of dynamisch MQSeries-doel is, niet effectief is voor dat doel.

Ja. Maak het aan in de Transformation Developer, of vink 'Herbruikbaar maken' aan op het tabblad Transformatie van een bestaande transformatie. Elke kaartping Als ze dan aan dezelfde voorwaarde voldoen, heeft een wijziging van de regel in รฉรฉn keer gevolgen voor ze allemaal.

Machine learning op basis van historische sessielogboeken kan load-ups signaleren waarbij de commitfrequentie correleert met lange runtimes of rollback-stormen. Deze suggestie is nog steeds een hypothese, dus verifieer deze eerst met een daadwerkelijke run voordat u de voorwaarde wijzigt.

Copilot kan de IIF()-vorm genereren en u herinneren aan de vijf variabelenamen, maar het kent uw poortnamen of bedrijfsregels niet. Beschouw de uitvoer als een uitgangspunt en valideer deze in de expressie-editor.

De update-strategie bepaalt wat er met een rij gebeurt en labelt deze als invoegen, bijwerken, verwijderen of afwijzen. De transactiecontrole bepaalt wanneer de geschreven rijen permanent worden gemaakt. De twee beantwoorden verschillende vragen en worden vaak samen gebruikt.

Cloud Data Integration levert een eigen transformatie voor transactiebeheer met dezelfde variabelen voor commit, rollback en continue. Het ontwerpidee blijft hetzelfde, maar het object wordt in de cloud-map gebouwd.ping Designer, en niet de PowerCenter-client.

Rijen die sinds de laatste commit in die transactie zijn geschreven, worden verwijderd. Alles wat eerder is gecommit, blijft in het doelbestand behouden. Daarom bepaalt de plaatsing van de commitpunten hoeveel werk een fout kan kosten.

Vat dit bericht samen met: