Design Pattern // Protokollierung eines ETL-Prozesses mit SQL

Wie kann man beurteilen, ob ein ETL-Prozess erfolgreich gewesen ist? Alleine der Umstand, dass ein Prozess nicht mit einer Exception abgebrochen wurde, bedeutet nicht zwangsläufig, dass der Prozess auch das gemacht hat, was man von ihm erwartet hat. Eine les- und auswertbare Protokollierung eines ETL-Prozesses kann hier helfen. Sie ermöglicht eine sichere Beurteilung des Erfolgs eines ETL-Prozesses.

Dieser Artikel stellt eine Vorgehensweise für die Protokollierung eines ETL-Prozesses auf der Basis von gespeicherten Prozeduren vor, die Protokolldatensätze in Protokolltabellen einfügen und aktualisieren. Ziel ist es, ein les- und auswertbares Protokoll zu erstellen, das Antworten auf wesentliche Fragen zu der Ausführung eines ETL-Prozesses bereit hält:

  • Wie lange dauert der ETL-Prozess insgesamt?
  • Wie lange dauert die Ausführung einer gespeicherten Prozedur, eines SSIS-Paketes oder einer anderen Komponente?
  • Wie lange dauert die Ausführung eines konkreten SQL-Statements?
  • Wie viele Datensätze wurden durch ein SQL-Statement bearbeitet?

Natürlich wollen wir auch wissen, ob der Prozess als Ganzes, eine Prozedur oder auch ein konkretes SQL-Statement erfolgreich ausgeführt wurden.

Die Vorgehensweise ist eigentlich gerade heraus: Zu Beginn jeder Aktion wird ein Protokolldatensatz geschrieben und nach der Beendigung der Aktion wird dieser entweder mit dem Status Erfolg oder Misserfolg und gegebenenfalls auch noch anderen hilfreichen Informationen aktualisiert. That’s it! Ein bisschen mehr darf es dann aber doch noch sein…

Weiterlesen

SSIS vs. SQL – Lesbarkeit/Wartbarkeit -oder- Wie viel SQL darf’s denn sein?

This Article in English… Die Vorgeschichte zu diesem Artikel… SQL Server Integration Services (SSIS) ist ein äußerst mächtiges Tool Set für die Entwicklung von ETL-Strecken. Es gibt viele gute Gründe, die für einen Einsatz von SSIS sprechen. Es gibt derer aber auch genügend, die dagegen sprechen. Beschränken wir uns auf den Microsoft Produkt Stack, dann … Weiterlesen

SSIS vs. SQL – Quellcodeverwaltung

This Article in English… Überblick SQL Server Integration Services (SSIS) ist ein äußerst mächtiges Tool Set für die Entwicklung von ETL-Strecken. Es gibt viele gute Gründe, die für einen Einsatz von SSIS sprechen. Es gibt derer aber auch genügend, die dagegen sprechen. Beschränken wir uns auf den Microsoft Produkt Stack, dann kommt als Alternative für … Weiterlesen

SSIS vs. SQL – Identitätswechsel

Überblick SQL Server Integration Services (SSIS) ist ein äußerst mächtiges Toolset für die Entwicklung von ETL-Strecken. Es gibt viele gute Gründe, die für einen Einsatz von SSIS sprechen. Es gibt derer aber auch genügend, die dagegen sprechen. Beschränken wir uns auf den Microsoft Produkt Stack, dann kommt als Alternative für die Entwicklung von komplexen ETL … Weiterlesen

SSIS vs. SQL

Überblick SQL Server Integration Services (SSIS) ist ein äußerst mächtiges Tool für die Entwicklung von ETL-Strecken. Es gibt viele gute Gründe, die für einen Einsatz von SSIS sprechen. Es gibt derer aber auch genügend, die für einen maßvollen Einsatz sprechen. Beschränken wir uns auf den Microsoft Produkt Stack mal von Azure abgesehen, dann kommt als … Weiterlesen

Kommentierung eines komplexen SQL Statements

Überblick Über die Notwendigkeit und den Sinn von Dokumentation besteht weitestgehend Einigkeit, und dennoch fällt diese Aufgabe dem Projektdruck in der Regel als erstes zum Opfer: „Man möge doch in den Quellcode schauen, um zu verstehen, was eine Software oder ein SQL Statement macht.“ Dieser Satz ist oft zu hören. Nicht jeder ist dazu in … Weiterlesen

Namenskonvention für SSIS Tasks

Die Festlegung von Programmierrichtlinien und Namenskonventionen macht nur dann Sinn, wenn sie Gewinn bringend eingesetzt werden können. Voraussetzung hierfür ist, dass die Vorteile klar identifiziert und benannt werden können. Die Lesbarkeit und Wartbarkeit von Code steht im Allgemeinen im Vordergrund. Im Falle von SQL Server Integration Services (SSIS) kommt jedoch noch ein weiterer Aspekt hinzu: … Weiterlesen

Formatierung von SQL Statements (Teil 2)

This article in english… Überblick SQL und Software-Programmiersprachen folgen unterschiedlichen Paradigmen. Software wird als Folge von Einzelanweisungen erstellt. SQL hingegen ist darauf ausgelegt, viele Arbeitsschritte in einer einzigen Anweisung auszuführen. Ein einziges SQL-Statement erstreckt sich im Gegensatz zu einer Software-Anweisung manchmal über hunderte Zeilen. Integrierte Entwicklungsumgebungen wie Microsoft Visual Studio unterstützen bei der Software-Entwicklung sehr … Weiterlesen

Formatierung von SQL Statements (Teil 1)

This article in english… Überblick Häufig werden Großbuchstaben dazu genutzt, um einzelne Worte zu betonen. Dieses gilt zum Beispiel für Deutsch als Sprache. Latein, Griechisch,… Obwohl es auch Sprachen gibt, die keine Unterscheidung zwischen Groß- und Kleinschreibung kennen, hat sie sich dennoch weitestgehend durchgesetzt. Das gilt nicht nur für die gesprochene Sprache, sondern auch für … Weiterlesen

Editor Optionen in SSMS

Dieser Artikel in Englisch… Überblick In aller Regel verwenden Editoren aus den bekannten Entwicklungsumgebungen inklusive SQL Server Management Studio (SSMS) monospaced Schriften: jedes Zeichen beansprucht damit die gleiche Breite im Textfluss. Texte lassen sich unter Verwendung von monospaced Schriften hervorragend einrücken und ausrichten. Ein effizientes Feature für die Ausrichtung und Einrückung von Text-Elementen ist die … Weiterlesen