SSIS - Einführung
Die Microsoft SQL Server 2005 Integration Services (SSIS) sind eine umfassende
Datenintegrationsplattform. Mit den Integration Services können Daten aus heterogenen Quellen
eingelesen, transformiert und in ein oder mehrere Zielsysteme geschrieben werden.
Für einen solchen Vorgang wird oft das Kürzel ETL verwendet. ETL steht für Extraktion,
Transformation und Load. Die Möglichkeiten der Integration Services gehen aber weit über die
eines typischen ETL-Programmes hinaus.
Durch die vollständige Integration in das .NET-Framework stehen in den Integration Services alle
.NET-Klassenbibliotheken zur Verfügung und es können alle Windows-Dienste verwendet werden.
Es steht eine umfassende Komponentensammlung in einer grafischen Entwicklungsumgebung zur Verfügung.
Dank des offenen Systemkonzepts kann diese zusätzlich um eigene oder externe Komponente erweitert
werden.
Mit den Integration Services wird der Übergang zwischen verschiedenen Programmierumgebungen fließend.
Folgendes Zusammenspiel wäre beispielsweise ist mit den Integration Services realisierbar:
- Aus einem VB.NET-Programm wird ein Integration Services-Paket aufgerufen.
- Das Integration Services-Paket ließt unter Verwendung von T-SQL Daten aus einer Datenbank-Quelle
ein.
- Im Datenfluss des Pakets werden die Daten transformiert, konsolidiert und zum Abschluss per
DMX an ein Data Mining-Modell übergeben.
- Das Data Mining-Modell ermittelt einen Prognosewert.
- Der Prognosewert wird an das aufrufende VB.NET-Programm als Ergebnis zurückgegeben.
Dieses kleine Beispiel zeigt sehr schön die Kommunikation zwischen unterschiedlichen Datenwelten.
Verschiedene Programmiersprachen (VB.NET, T-SQL, Ausdrucksprogrammierung und DMX) kommunizieren über
die Datenintegrationsplattform Integration Services. Die Kommunikation funktioniert einfach und
reibungslos.
Ausgesprochen hilfreich sind dabei die zahlreichen Assistenten, die dem Entwickler sehr
viel Programmierarbeit abnehmen. Um Daten aus einer Datenbanktabelle zu lesen, muss
kein einziger SQL-Befehl eingegeben werden. Der Entwickler kann die gleiche Komponente
aber dazu verwendet, ein sehr komplexes, parametrisiertes T-SQL-Statement auf einem Datenbankserver
auszuführen. Die einfachen Anwendungen sind in den Komponenten vorgedacht und es ist keinerlei
Programmierung notwenig. Für komplexere Anforderungen stehen die Programmiersprachen zur Verfügung.
Darüber hinaus ist wird die Connectivity zu sehr vielen heterogenen Datenquellen und -zielen
mitgeliefert. So überträgt der FTP-Task Dateien per FTP (File Transfer Protokoll) an ein
Remotesystem oder die Task 'Mail senden' versendet E-Mails per SMTP (Simple Mail Transfer Protokoll).
Dieser Typ von Tasks geht über Buchthema Business Intelligence weit hinaus. Aber auch für den Business Intelligence-Entwickler ist es wichtig zu wissen, dass ihm bei Bedarf solche Möglichkeiten zur Verfügung stehen.
Datenintegrations-Plattform
Alle Unternehmen, für die eine Datenbank mehr als ein Datenfriedhof ist, brauchen eine
Datenintegrations-Plattform. Daten müssen aus einem ERP-System in ein Data-Warehouse geladen werden.
Sie müssen dabei bereinigt, standardisiert und zusammengefasst werden. In den meisten Unternehmen
müssen Daten aus mehreren, meist heterogenen Quellen eingelesen werden. Daten werden für
OLAP-Anwendungen, Data Mining und Reporting bereitgestellt. Und für externe Systeme wie den
Internetauftritt oder einen Lettershop müssen Daten im geeigneten Format exportiert werden.
Auch für das Datenqualitäts-Management ist eine Datenintegrations-Plattform fast unverzichtbar.
Denn nur damit ist es möglich, Daten aus unterschiedlichen Systemen miteinander zu vergleichen
und zu konsolidieren.
Die Integration Services und der Microsoft SQL Server 2005
Die Integration Services werden zusammen mit dem Microsoft SQL Server 2005 ausgeliefert und installiert. Fraglos ist der Microsoft SQL Server der bevorzugte Datenbankserver. Aber eigentlich handelt es sich um zwei unabhängige Programme. Die Integration Services sind ein eigenständiges Programm. Sie brauchen keinen Microsoft SQL Server 2005, ja, sie benötigen noch nicht einmal eine Datenbank. So können mit den Integration Services auch Flatfile-Daten in eine Excel-Tabelle geschrieben werden oder Daten aus einer DB2-Datenbank in ein Teradata-Warehouse. Die Integration Services sind eine Integrations-Plattform zwischen heterogenen Datenwelten. Und der Microsoft SQL Server ist bei dieser Sichtweise nur eine Datenwelt unter vielen.
Workflow
In den Integration Services ist im Vergleich zur Vorgängerversion, den Data Transformation Services
(DTS), ein völlig neues Workflowmodell implementiert worden, das komplexe Logik unterstützt und
die Ablaufsteuerung vom Datenfluss trennt.
Zur Workflowsteuerung können komplexe Ausdrücke unter Verwendung von Variablen und anderer
Parameter verwendet werden. Die Trennung zwischen Ablaufsteuerung und Datenfluss teilt ein
Integration Services-Paket in saubere logische Einheiten auf. Zusätzlich werden Verbindungs-Manager
verwendet. Die Verbindungs-Manager sind eigene Objekte und bilden eine Zwischenschicht
zwischen den heterogenen Datenquellen und der Programmlogik der Integration Services-Pakete.
Die Ablaufsteuerung ist die Schaltzentrale eines Integration Services-Paketes.
In ihr werden die Workflows definiert und die Datenflusstasks aufgerufen. Im Datenfluss werden
Daten aus einer Quelle gelesen, transformiert und in ein Ziel geladen. Der Datenfluss ist der
ETL-Programmteil der Integration Services.
Konfiguration
Systemumgebungen mögen sich ändern und eine integrative Plattform sollte darauf flexibel reagieren
können. Zu diesem Zweck bieten die Integration Services umfassende Konfigurationsmöglichkeiten an.
Die Eigenschaften von Tasks, Komponenten und Verbindungs-Managern können konfiguriert werden.
Variablen können über die externe Konfiguration initialisiert werden und daraus können dynamische
Programmparameter wie z.B. ein SQL-Befehl generiert werden.
Unterschiedliche Systemumgebungen verlangen nach unterschiedlichen Konfigurationsmöglichkeiten.
Die Integration Services bieten 5 verschiedene Speichertypen an:
- XML-Konfigurationsdatei
- SQL-Server-Tabelle
- Umgebungsvariable
- Registrierungseintrag
- Übergeordnete Paketvariable
Business Intelligence Development Studio
Die neue Entwicklungsumgebung der Integration Services ist das Visual Studio, in der speziellen
Ausprägung des Business Intelligence Development Studios. Im Business Intelligence Development Studio
stehen standardmäßig nur die Komponenten und Vorlagen für die Entwicklung von Business
Intelligence-Projekten zur Verfügung.
Die neue, objektorientierte Entwicklungsumgebung bietet einen erheblich größeren Funktionsumfang
als die Vorgängerversion und ist zugleich völlig offen und flexibel.
Für Datenbankentwickler, die bisher noch keine Erfahrung mit der Entwicklungsumgebung des Visual
Studios gemacht haben, dürfte die neue Entwicklungsumgebung anfangs ein kleiner Kulturschock sein.
Doch keine Angst, Sie werden sich schnell an sie gewöhnen und sie schätzen lernen.
.NET-Framework 2.0
Mit den Integration Service hält das .NET-Framework in der Version 2.0 Einzug in die Paketentwicklung.
Die Integration Services-Pakete werden als verwalteter Programmcode ausgeführt.
Alle Tasks und Komponenten sind als .NET-Klassen implementiert und wurden in einer
.NET-Programmiersprache entwickelt.
Microsoft Visual Studio für Applikation
Das Microsoft Visual Studio für Applikation löst ActiveX und Visual Basic für Applikationen (VBA) ab.
In der Skripttask und der Skriptkomponente steht das Microsoft Visual Studio für Applikation als
zusätzliche Programmierumgebung zur Verfügung. Es ist nicht zu verwechseln mit dem Business
Intelligence Development Studio. Auch wenn beide Programme im Kern auf dem Visual Studio basieren,
handelt es sich um zwei unterschiedliche Entwicklungsumgebungen.
Im Microsoft Visual Studio für Applikationen steht die .NET-Programmiersprache VB.NET zur Verfügung.
Es können alle .NET-Klassenbibliotheken eingebunden und verwendet werden.
Fremdkomponenten
Das offene Systemkonzept des .NET-Frameworks ermöglicht die Einbindung von Fremdkomponenten.
Microsoft unterstützt Systemhäuser tatkräftig bei der Entwicklung eigener Komponenten und bietet
auch selbst eine ganze Reihe von zusätzlichen, kostenlosen Komponenten zum Download an.
Auf dem Markt gibt es mittlerweile mehrere kommerzielle Anbieter, die hoch spezialisierte
Komponenten und Datenbank-Adapter anbieten.
Projekte und Pakete
In den Integration Services werden Pakete entwickelt und ausgeführt. Der Entwicklungsansatz des
Visual Studios sieht aber immer eine Projektentwicklung vor. Im Business Intelligence Development
Studio muss grundsätzlich zuerst ein Projekt angelegt werden. In jedem neuen Projekt wird
automatisch ein Paket mit dem Namen »Package.dtsx« angelegt.
Es kann nur empfohlen werden, den Entwicklungsfokus in den Integration Services auf die Pakete und
nicht auf die Projekte zu legen. Geben Sie Ihren Pakten aussagekräftige Namen. Die Namensvergabe
der Projekte ist dagegen zweitrangig. Mit einer durchdachten Paket-Namensvergabe fällt es leichter
einmal erstellte Pakete wieder zu finden und in andere Projekte einzubinden.
Die typische Namensvergabe wird durch eine Umbenennung des Standpakets »Package.dtsx« vorgenommen.
Öffnen Sie zum Umbenennen das Kontextmenü des Paketes im Projektmappen-Explorer und wählen Sie den
Menüpunkt Umbenennen aus.
Abbildung 1: Umbenennen eines Paketes im Projektmappen-Explorer
Beim Umbenennen muss die Extension .dtsx unbedingt erhalten bleiben. Während der Umbenennung
erscheint diese Sicherheitsabfrage, die mit »Ja« bestätigt werden muss.
Abbildung 2: Sicherheitsabfrage bei der Umbenennung des Paketes
Eine weitere Möglichkeit ist Speicherung eine Paketes mit der Menüfunktion Datei/Speichern.
Wenn Sie den Menüpunkt Speichern unter verwenden, können Sie dem Paket einen neuen Namen geben.
Aber beachten Sie bitte, dass der Verweis im Projekt auf diesen neuen Speicherort geändert wird.
Wählen Sie dagegen den Menüpunkt Kopie von Paketname.dtsx speichern unter, wird eine zusätzliche
Kopie des Paketes am gewählten Speicherort angelegt, aber der Verweis im Projekt bleibt unverändert.
Abbildung 3: Im Menü Datei werden mehrere Speichervarianten angeboten
Welche Möglichkeit Sie wählen, ist davon abhängig, wie Sie ihre Paketspeicherung organisieren.
Möchten Sie ein gespeichertes Paket zu einem Projekt hinzufügen, müssen Sie das Kontextmenü
der SSIS-Pakete im Projektmappenexplorer öffnen und den Menüpunkt Vorhandenes Paket hinzufügen
anwählen.
Abbildung 4: Fügen Sie im Kontextmenü des Ordners SSIS-Pakete dem Projekt bereits erstellte Pakete hinzu
Integration Services-Pakete werden im Business Intelligence Development Studio entwickelt und
können dort auch ausgeführt werden. Die Ausführung im Business Intelligence Development Studio
findet immer im Debug-Modus statt. Es ist nicht möglich, den Debug-Modus zu deaktivieren.
Integration Services-Pakete werden von andern Programmen, z.B. vom SQL Server Agent, mit dtexec
ausgeführt. Dtexec steht als Befehlszeilendienstprogramm und in einer .NET-Klassenbibliothek zur
Verfügung.