Logging in SSIS 2012

1. August 2012

Vor SQL Server Integration Services (SSIS) 2012 wurde das Logging oft mit Custom Code oder mit Hilfe von komplexen third party Frameworks realisiert. In SSIS 2012 wurde dieses Thema in einem großen Umfang überarbeitet und man hat zahlreiche Möglichkeiten, die Ausführung der ETL-Strecke zu protokolieren und zu überwachen.

Ein ganz wichtiger Vorteil der neuen Infrastruktur ist, dass das Logging extern konfigurierbar ist und die Logging-Informationen in einer strukturierten, abfragbaren Form gespeichert werden. Den Logging Level kann man sowohl für den gesamten SSISDB-Katalog als auch für einzelne Ausführungen festlegen.

LoggingLevel

Im SQL Server Management Studio (SSMS) hat man Zugriff auf eine Reihe von mitgelieferten Berichten, die einen guten Überblick über aktuell laufende Pakete, Konfiguration von Paketen und die Ausführungsprotokolle geben.

SSMS Report

Mit dem Logging Level “Performance” werden auch die Laufzeiten von einzelnen Paketkomponenten protokolliert. “Verbose” schreibt noch zusätzlich die Anzahl von Zeilen, die zwischen Datenflusskomponenten übertragen worden sind. Beim Verbose-Logging werden aber viele andere Ereignisse protokolliert, was die Ausführung deutlich verlangsamt, deswegen eignet sich diese Einstellung eher für die Fehlersuche und nicht für den laufenden Betrieb.

Die Performanzstatistiken können auch mit Hilfe von Standardberichten visualisiert werden.

Performanzstatistiken

Mit SSISDB T-SQL API hat man eine flexible Möglichkeit eigene Auswertung von Logging- und Performanzdaten zu erstellen. Einige interessante Berichte sind im SSIS Reporting Pack von Jamie Thomson implementiert,

Ein anderes interessantes Feature in SSIS 2012 sind DataTaps. Ein DataTap ähnelt sich einem DataViewer im SSDT Datenfluss, allerdings werden die DataTaps, für im SSISDB-Katalog bereitgestellte Pakete, über die schon erwähnte T-SQL API definiert. Ein DataTaps protokolliert die Sätze, die über einen Pfad im Datenfluss geflossen sind und schreibt sie in eine CSV-Datei. Leider sind nur wenige Eigenschaften eines DataTaps konfigurierbar, so kann z.B. das Log-Verzeichnis nicht geändert werden. Die DataTaps stellen aber trotzdem eine großartige Unterstützung bei der Störungssuche in Live-Umgebungen dar.

Fazit:

Die Logging-Implementierung scheint bei SSIS 2012 nicht ganz so ausgereift zu sein, wie z.B. die Konfigurationsmöglichkeiten. So kann man z.B. nicht bestimmen, welche Ereignisse bei einem bestimmten Logging Level protokollierten werden. Auch das Einstellen des Logging Levels für einzelne Pakete und nicht für die gesamte Ausführung wird im Moment nicht unterstützt. Dennoch bietet das SSISDB-Logging eine sehr gute Grundlage, die man bei Bedarf auch erweitern kann.

 

Weitere Infos:

SSIS Logging in Denali

What Events are Included in the SSIS Catalog Log Levels

ServerExecutionId – eine Brücke zwischen SSISDB und Custom Logging

A Peek to Data Taps