Kontakt  Impressum 
 
       Navigationslinks überspringen.   

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.