Datenqualität in einem ETL-Prozess — technische und fachliche Fehler erkennen, bevor sie das Zielsystem erreichen

Ein einziger nicht konvertierbarer Wert — ein Datum im falschen Format, eine Zahl mit dem falschen Dezimaltrennzeichen — und der ganze ETL-Lauf bricht ab. Datenqualität in einem ETL-Prozess heißt: solche Fehler proaktiv erkennen, protokollieren und isolieren, bevor sie das Zielsystem erreichen. Dieser Artikel ist der Einstieg in eine Serie, die genau das als Design Pattern umsetzt. TL;DR — … Weiterlesen

Design Pattern // Architektur eines ETL-Prozesses — wie sich schlechte Daten sauber isolieren lassen

Ein einziger nicht konvertierbarer Datums-Text, und der ganze ETL-Lauf bricht ab. Das hier vorgestellte Design Pattern für die Architektur eines ETL-Prozesses verhindert genau das: schlechte Daten werden isoliert, nicht weitergereicht. TL;DR — was dieser Artikel zeigt: Voraussetzung. Grundverständnis von ETL-Prozessen. Konzeptueller Artikel — kein Schritt-für-Schritt-Tutorial. Die Technologie-Beispiele sind SQL-Server-zentriert, die Postgres-Pendants stehen in der FAQ. Ausgangspunkt der … Weiterlesen

Datenqualität // Grundlagen der Typ-Konvertierung mit T-SQL — CAST, CONVERT, TRY_CAST und TRY_CONVERT im Vergleich

Ein Datum aus einer CSV-Datei landet als Text in der Datenbank — und plötzlich wird aus dem 2. November der 11. Februar. Solche stillen Fehlinterpretationen sind der Klassiker bei der Typ-Konvertierung in SQL Server. Wer CAST, CONVERT, TRY_CAST und TRY_CONVERT samt Style-Parameter kennt, vermeidet sie. Das Wichtigste vorab: Voraussetzung: SQL Server mit SSMS. Die Beispiele sind reines T-SQL ohne Sample-Datenbank. Dieser Artikel … Weiterlesen

Design Pattern // Sichere Typ-Konvertierung mit T-SQL — Fehler erkennen, statt den ETL-Prozess abzubrechen

Ein einziger nicht konvertierbarer Wert — ein 25.5 in einer Integer-Spalte, ein leerer String, ein Datum wie 20240230 — und der ETL-Lauf bricht mitten im Import ab. Wer Textdaten aus Vorsystemen lädt, kennt das: Die Lieferung hält sich nicht an die vereinbarte Schnittstelle, und ein nacktes CONVERT wirft eine Exception, statt den fehlerhaften Wert sauber zu protokollieren. Dieser Artikel beschreibt ein Design … Weiterlesen

Design Pattern // Protokollierung eines ETL-Prozesses — wie sich Lauf, Komponente und Aktion auswertbar protokollieren lassen

Ein ETL-Prozess endet ohne Exception — aber wurde wirklich alles geladen, was hätte geladen werden müssen? Allein der Umstand, dass ein Prozess nicht abgebrochen ist, sagt noch nichts darüber, ob er auch das getan hat, was von ihm erwartet wurde. Ein les- und auswertbares Protokoll macht den Unterschied zwischen Bauchgefühl und belastbarer Aussage. Dieses Design … Weiterlesen

SSIS vs. SQL: Lesbarkeit und Wartbarkeit — wie viel SQL gehört in ein SSIS-Paket?

Drei Wege, dieselbe ETL-Aufgabe in SSIS abzubilden. Einer braucht 10 Minuten und ist nachvollziehbar. Einer braucht Stunden, 40 Komponenten im Data Flow und überlebt die nächste Anforderungs-Änderung nicht. Die Frage „wie viel SQL gehört in ein SSIS-Paket?“ entscheidet über Wartbarkeit, Lesbarkeit und Entwicklungs-Tempo — nicht über Tool-Loyalität. In diesem Artikel: Voraussetzung: SQL Server 2017+ und SSIS … Weiterlesen

SSIS vs. SQL: Quellcodeverwaltung — warum SP-Diffs lesbar sind und `.dtsx`-Diffs nicht

Wer zwei Versionen eines SSIS-Pakets difft, sieht schon bei einer trivialen Umbenennung Änderungs-Markierungen quer durch das XML — im Beispiel dieses Artikels acht „geänderte Bereiche“, und der Diff ordnet die Umbenennung nicht einmal der richtigen Task zu. Dieselbe Modifikation in einer Stored Procedure zeigt drei Zeilen Diff und ist in 30 Sekunden reviewbar. Quellcodeverwaltung ist … Weiterlesen

SSIS vs. SQL: Identitätswechsel — wie ein Agent-Job an die Ressourcen kommt, die er braucht

Ein SQL-Server-Agent-Job, der eine CSV-Datei von einem File Share lesen soll, scheitert mit Access is denied — der Service-Account des Agents hat auf dieser Freigabe keine Berechtigung. Statt dem Service-Account immer mehr Rechte zu geben, wechselt der Job-Step die Identität: Identitätswechsel (englisch impersonation) zur Laufzeit, im SQL Server Agent über einen Proxy. Eine Grenze bleibt: Reine Transact-SQL Script-Steps kennen keinen Proxy und … Weiterlesen

SSIS vs. SQL — wann SSIS, wann reines T-SQL, wann beides kombinieren?

Eine CSV-Datei einlesen, die Daten transformieren, das Ergebnis in SQL Server laden: Für den Datei-Teil liegt SSIS nahe, für die Transformation reines T-SQL. Die beste Lösung ist oft die Kombination aus beiden. Den einen richtigen Weg gibt es nicht, wohl aber drei Entscheidungs-Kriterien, an denen sich jede konkrete Wahl messen lassen sollte: Lesbarkeit, Quellcodeverwaltung, Identitätswechsel. Diese Artikel-Serie nimmt … Weiterlesen

Komplexe SQL-Statements kommentieren — parallele Inline-Dokumentation, die die Lesbarkeit nicht zerstört

Wer ein 200-Zeilen-SELECT mit rekursiver CTE schreibt, versteht es beim Schreiben vollständig — und drei Wochen später kein Wort mehr davon. Inline-Kommentare sind das Sicherheitsnetz dagegen. Das Problem: schlecht gesetzt, zerstören sie genau die Lesbarkeit, die sie retten sollen. Was dieser Artikel zeigt: Voraussetzung: Die Beispiele laufen gegen AdventureWorksDW2017 (Tabelle [dbo].[DimEmployee], rekursive CTE über ParentEmployeeKey). SSMS dient als Beispiel-Editor — die … Weiterlesen