Home / Integration Services / Checkpoints in SSIS

Checkpoints in SSIS

bmp_refresh_128De Control Flow in Integration Services biedt controle en overzicht over de verschillende tasks welke binnen je package uitgevoerd worden. Maar als een van deze tasks echter fout gaat wil je vaak niet dat de voorgaande stappen opnieuw uitgevoerd worden. Misschien heb je wel iets uitgevoerd wat geen 2 keer uitgevoerd mag worden (een INSERT of DELETE script bijvoorbeeld) of duurt het een paar uur om de voorgaande stappen uit te voeren. De oplossing hiervoor zijn Checkpoints.

Wat is het?

Checkpoints binnen SSIS worden gebruikt om bij te houden waar je package is gebleven met de uitvoer. Tijdens het uitvoeren van je package wordt er bijgehouden wat de status van je variabelen en tasks is en wat er al gedaan is. Indien je package nu failed dan weet SSIS waar hij was gebleven zodat de volgende keer dat het package uitgevoerd wordt hij verder kan gaan waar hij gebleven was.

Hoe zet ik het aan?

Binnen Integration Services kunnen Checkpoints in de package properties op Control Flow niveau aangezet worden.
alt

Het eerste wat hier ingevoerd moet worden is de CheckpointFilename van het checkpoint. Deze vullen we echter niet hier in maar gaan we laten dynamisch opbouwen met behulp van expressions.
De CheckpointUsage moet op IfExists staan. Dit houdt in dat SSIS het bestaande Checkpoint gebruikt indien aanwezig, en anders maakt hij een nieuw bestand aan
Het laatste is vraag of de Checkpoints fysiek opgeslagen moeten worden, dit zetten we op True zodat het Checkpoint fysiek aanwezig is om er gebruik van te maken.

CheckpointFileName en Expressions

De CheckpointFilename is zoals we zien een xml-bestand waarbij het mogelijk is om deze dynamisch te genereren met behulp van expressions. Hoofdreden hiervoor is dat het hierdoor mogelijk wordt om in een template-package welke je gebruikt als basis voor SSIS-ontwikkeling deze optie standaard aan te zetten.

Voordat we de expressie kunnen gebruiken maken we eerste een variabele met het pad aan waar het bestand terecht moet komen. Dit doen we door een variabele-String aan te maken waar we het standaard-pad in wegschrijven.
alt

Hierna gaan we deze variabele gebruiken in een expressie samen met de System::PackageName variabele om ervoor te zorgen dat het Checkpoint een duidelijke (en unieke) naam krijgt.  Het property CheckpointFileName is degeen welke de expressie mee moet krijgen.
alt

Het eindresultaat

Als we dit allemaal hebben gedaan dan zal er tijdens de uitvoer van het package in de ingestelde folder (de variabele) een XML-bestandje verschijnen wat de status van het package bevat.
In dit bestand wordt bijgehouden wat de waarden van de verschillende aanwezige variabelen is en welke Control Flow items reeds afgerond zijn. Met deze gegevens is het voor SSIS mogelijk om het package te starten daar waar het fout is gegaan met alle benodigde variabele gegevens.

Checkpoints kunnen overigens perfect samen werken met Transacties in SSIS. Hoe dat werkt zal ik in een latere post uitleggen.

Check Also

Exporteren SSIS Data naar Excel 2007

Hieronder volgt een korte beschrijving hoe je vanuit SSIS een koppeling kunt maken met Excel …

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.