Datenqualität in SQL Server // TRY_CONVERT für bigint, int, smallint und tinyint sicher anwenden

Datenqualität beginnt bei der Typ-Konvertierung — und bei Integer-Spalten zeigt TRY_CONVERT ein paar Eigenheiten, die im Import-Pfad gerne übersehen werden: eine leere Zeichenfolge wird zu 0 (statt zu NULL), jedes Dezimal- oder Tausendertrennzeichen führt zu einem NULL, und eine typisierte Dezimalzahl wird stillschweigend abgeschnitten — ohne Rundung. Dieser Artikel sortiert die Regeln, zeigt das sichere Konvertierungs-Pattern und reicht eine Postgres-Brücke nach. Kurzüberblick: … Weiterlesen

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. Wurzel der Artikelserie: Datenqualität in einem ETL-Prozess; der vorliegende Artikel ist der Architektur-Teil. … Weiterlesen

Datenqualität // Grundlagen der Typ-Konvertierung mit T-SQL

Dieser Artikel gehört zu der Artikelserie Datenqualität in einem ETL-Prozess, in der ein Design Pattern vorgestellt wird, das die extrahierte Daten prüft, behandelt und schlechte Daten von der weiteren Verarbeitung ausschließt. SQL Server stellt mit den T-SQL Funktionen CAST, CONVERT beziehungsweise TRY_CONVERT und TRY_CAST Funktionen für die Typ-Konvertierung zur Verfügung. Die Syntax der Funktionen CONVERT … Weiterlesen

Design Pattern // Sichere Typ-Konvertierung mit T-SQL

Sind in einem ETL-Prozess Daten aus Text-Dateien zu extrahieren, ist grundsätzlich Vorsicht geboten. Text-Dateien definieren an sich bereits eine Schnittstelle zu einem Vorsystem. Zwischen der die Daten liefernden Stelle und dem ETL-Prozess muss es daher eine Vereinbarung geben, welche Daten in welchem Format geliefert werden, in welchem Format sie bereitgestellt werden und welche Wertebereiche zulässig … 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 Data Flow Tasks 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. Was dich erwartet: Voraussetzung: SQL Server 2017+ und SSIS 2017+ … Weiterlesen

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

Zwei Versionen eines SSIS-Pakets diffen — selbst eine triviale Umbenennung erzeugt acht „geänderte Bereiche“ im XML, und der Diff lokalisiert den eigentlichen Edit nicht einmal korrekt. Dieselbe Modifikation in einer Stored Procedure zeigt drei Zeilen Diff, in 30 Sekunden reviewbar. Source-Code-Management ist eine Wartbarkeits-Entscheidung — keine Tool-Frage, sondern eine Artefakt-Format-Frage. Was dich erwartet: Voraussetzung: SQL Server … Weiterlesen

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

Ein SQL-Server-Agent-Job, der auf einem File Share lesen soll, scheitert mit Login failed — der Service-Account des Agents hat dort keine Berechtigung. Die Lösung ist ein Identitätswechsel (englisch impersonation) zur Laufzeit, im SQL Server Agent über einen Proxy-User. Eine Sackgasse bleibt: reine Transact-SQL Script-Steps unterstützen keinen Identitätswechsel — der Workaround ist, das T-SQL in ein SSIS-Paket als Wrapper zu packen. Was dich … Weiterlesen

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

SSIS, T-SQL oder eine Kombination beider? Den einen richtigen Weg gibt es nicht. Was es gibt, ist eine Handvoll Entscheidungs-Kriterien, an denen jede konkrete Wahl — Technologie wie Einsatz-Umfang — gemessen werden sollte: Lesbarkeit, Quellcodeverwaltung, Identitätswechsel. Diese Artikel-Serie nimmt sich diese drei Achsen vor und liefert pro Achse ein konkretes Argument. Wer bei der ETL-Tool-Wahl ohne diese Kriterien argumentiert, landet … Weiterlesen