Integration Services – die Zweite

von Willfried Färber.* Herr Färber ist ein SQL Server MVP, der auf Integration Services und BI spezialisiert ist und für die Trivadis AG in der Schweiz arbeitet. Seine Webseite ist http://www.sqlis.de/*.

Die zweite Version von SQL Server Integration Services (SSIS) die mit dem SQL Server 2008 geliefert wird ist eine Evolution und keine Revolution. Alle Benutzer, die bisher erfolgreich mit Integration Services gearbeitet haben, werden auf den ersten Blick keine Veränderung feststellen. Der erste Augenschein trügt aber.

Für den erfolgreichen Einsatz von Integration Services ist es nach wie vor notwendig, dass eine entsprechende Einarbeitungszeit erfolgt. Da in der Regel ETL Prozesse nicht einfach sind, kann auch das Werkzeug nicht einfach sein um diese Herausforderungen zu meistern.

In diesem Release sind es die kleinen Veränderungen, die in das Produkt eingeflossen sind. Die Veränderungen werden manchmal erst auf den zweiten Blick wahrgenommen.

Die Datenpipeline

Eine der wichtigsten Änderungen in der neuen Version von SSIS ist nicht sichtbar aber trotzdem sehr wichtig. Die interne Verarbeitung des Datenflusses wurde sehr stark überarbeitet. Die neue Version des Datenflusses nutzt die Möglichkeiten von aktuellen Rechnern mit mehreren Prozessoren deutlich besser aus als bisher. Bei den SSIS vom SQL Server 2005 waren in einigen Fällen manuelle Tuning-maßnahmen notwendig, damit die optimale Geschwindigkeit auf leistungsstarken Rechnern erreicht wurde. Der neue Datenfluss nutzt mehrere Prozessoren deutlich besser aus. Sie als Entwickler müssen hier nicht mehr manuell eingreifen. Die alten Tuning-maßnahmen, wie zum Beispiel der Einsatz der Union All Transformation, sind nicht mehr notwendig. Die Optimierung passiert komplett transparent. Je nach Komplexität des Datenflusses und der verwendeten Hardware sind Performanceverbesserungen bis zum Faktor 5 möglich. Um den realen Durchsatz zu demonstrieren, hat Microsoft mit Partnern Benchmarktests gefahren. Das Ergebnis ist beeindruckend: ungefähr 1,1 Terabytes Textdaten werden in ungefähr 25 Minuten in eine Datenbank auf dem SQL Server 2008 mit Hilfe von SSIS geladen.

Endlich die Daten kennen

Eine neue Task, die sich viele Entwickler von ETL Prozessen schon länger gewünscht haben, die Data Profiling Task, steht jetzt zur Verfügung. Die Situation ist Ihnen sicher bekannt: Neue und unbekannte Daten müssen verarbeitet werden. Der Datenspezifikation trauen Sie nicht wirklich. Genau an dieser Stelle setzt die Data Profiling Task ein. Diese Task kann einfach zum Erkunden der Daten verwendet werden. Genau so gut kann diese Task dazu verwendet werden, um Daten in laufenden Prozessen SSIS zu kontrollieren.

Die Data Profiling Task gibt Ihnen zum Beispiel auf Wunsch die Verteilung einzelner Werte, die minimale oder maximale Länge in Spalten aus. Selbstverständlich können Sie auch den Prozentanteil von NULL Werten in Spalten auswerten. Über statistische Verfahren werden Ihnen auch Spalten vorgeschlagen, die sich als Primärindex eignen würden. Wenn Sie in SSIS mit regulären Ausdrücken arbeiten möchten, werden als Option von dieser Task auch entsprechende reguläre Ausdrücke erzeugt. Das kann Ihnen einige Arbeit sparen.

Es gibt oft Situationen, bei denen Beziehungen zwischen Spalten bestehen. Ein Beispiel könnten Postleitzahlen und Ortsnamen sein. Die Postleitzahl 81541 ist München zugeordnet, wird diese Postleitzahl mit dem Ort Hamburg geliefert, so handelt es sich um einen Fehler. Die Data Profiling Task kann diese Beziehung untersuchen.

Das Ergebnis der Profiling Task kann entweder mit einem speziellen Programm am Bildschirm ausgewertet werden, oder das erzeugte XML im SSIS Paket zur Steuerung verwendet werden.

Eine vollständige Entwicklungsumgebung und zwei Scriptsprachen

Ein anderer Wunsch, den sehr viele Entwickler an Microsoft herangetragen haben, ist die Möglichkeit in der Script Task oder in der Script Transformation C# als Scriptsprache zu verwenden. Der Code, der hier entweder in C# oder in VB eingegeben wird, wird nicht interpretiert sondern kompiliert und läuft so mit maximaler Performance ab. In der neuen Script Entwicklungsumgebung steht jetzt der komplette Funktionsumfang von Visual Studio 2008 ohne Einschränkungen zur Verfügung. Wenn es notwendig ist, können Sie zum Beispiel mit Codefragmenten arbeiten. Auch das erstellen von Proxyklassen für Webservices funktioniert einwandfrei.

ODBC lebt ….

ODBC, eine Schnittstelle um auf strukturieren und unstrukturierten Daten zuzugreifen, ist selbst nach über zwanzig Jahren in manchen Umgebungen immer noch notwendig. Bisher konnten Sie auf ODBC Datenquellen lesend zugreifen, die Möglichkeit über ODBC zu schreiben war bisher nicht vorhanden - auch das hat sich jetzt geändert.

Ohne Suche geht es oft nicht

Auch die Suche (Lookup) Transformation wurde kräftig überarbeitet. Bei sehr großen Nachschlagetabellen konnte es vorkommen, dass das Laden der Werte in den Speicher länger gedauert hat, als die eigentliche Verarbeitung. Wurde der Datenfluss in einer Schleife ausgeführt, so wurde die Nachschlagetabelle für jeden Schleifendurchgang erneut in den Speicher geladen. In SSIS 2008 ist es jetzt möglich, den Cache für die Nachschlagewerte, der für die Überprüfung notwendig ist, in einer Datei zu speichern. Der Zugriff auf diese Datei erfolgt sehr effektiv und ist meistens schneller, als wenn die Nachschlagewerte aus der Datenbank gelesen werden. Der Cache für die Suche Transformation kann in der neuen Version aus einer beliebigen Datenquelle oder durch einen Datenfluss in SSIS mit Werten versorgt werden.

Deltaverarbeitung

Bei der Verarbeitung von großen Datenmengen ist es sehr häufig wünschenswert, nur die Änderungen zu verarbeiten. Aber leider stellt nicht jede Datenbank diese Funktionalität zur Verfügung. Mit dem SQL Server 2008 ändert sich das. Change Data Capture (CDC) ist zwar nicht in SSIS integriert, kann aber einfach durch Aufrufe von entsprechenden SQL Anweisungen in bestehende SSIS Pakete eingebaut werden.

Zusammenfassung

Die Funktionalität von Integration Services für den SQL Server 2008 wurde evolutionär weiter entwickelt. Trotzdem ist es nach wie vor notwendig, dass für den erfolgreichen Einsatz eine sorgfältige Einarbeitung erfolgt. In der Praxis sind viele ETL Prozesse komplex. Ein Werkzeug, das diese Komplexität komplett verdeckt gibt es nicht und wird es auch in der Zukunft nicht geben. Wenn zusätzlich noch die Philosophie von SSIS umgesetzt wird, dann hat der Entwickler ein extrem leistungsfähiges Werkzeug zur Verfügung.