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) — Statement-Aufbau: SELECT, WHERE, FROM, JOIN

Wer in einem 200-Zeilen-SELECT-Statement nicht erkennen kann, wo die WHERE-Klausel anfängt und wo sie aufhört, hat ein Strukturproblem — kein Inhaltsproblem. Dieser Artikel zeigt das Layout, das auch lange Statements navigierbar hält. → Teil einer Reihe. Dieser Artikel ist Teil 2 und behandelt den Statement-Aufbau (SELECT, WHERE, FROM, JOIN). Die Bezeichner-, Delimiter-, Komma- und Alias-Grundlagen stehen in Teil 1 — Bezeichner, Delimiter, Kommata, … Weiterlesen

Formatierung von SQL Statements (Teil 1) — Bezeichner, Delimiter, Kommata, Aliase

Wer ein schlecht oder gar nicht formatiertes SELECT mit 30 Spalten und einem halben Dutzend Joins einmal hat debuggen müssen, weiß: nicht das SQL kostet den Tag, sondern die Suche danach, was es eigentlich tut. Formatierung von SQL ist keine Geschmacksfrage, sondern ein Wartungs-Werkzeug — und sie beginnt bei einer Namenskonvention. → Teil einer Reihe. Dieser … 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