Microsoft SQL Server Integration Services (SSIS)
Was ist Microsoft SQL Server Integration Services (SSIS)?
Microsoft SQL Server Integration Services (SSIS) ist eine Unternehmensplattform zum Einrichten von Datenintegrationen und Datentransformationen.
Microsoft SQL Server Integration Services ist in das relationale Datenbankmanagementsystem (RDBMS) SQL Server von Microsoft integriert und kann zur Verwaltung von SQL Server-Objekten und -Daten verwendet werden. Es eignet sich auch für die Ausführung und Verwaltung einer Vielzahl von datenbezogenen Tasks, wie zum Beispiel die Bereinigung und Auswertung von Daten, die Ausführung von ELT-Prozessen (Extract, Load, Transform) aus verschiedenen Quellen, das Kopieren oder Herunterladen von Dateien und das Laden von Data Warehouses.
SSIS kann Daten aus mehreren relationalen Datenbanken sowie aus Quellen wie XML-Datendateien und Flat Files extrahieren, transformieren und konsolidieren und die verarbeiteten Informationen anschließend in ein Enterprise Data Warehouse oder andere Zielsysteme laden. Es umfasst eine Reihe von Tools zum Entwickeln und Testen von Integrationsprogrammen, die als SQL Server Data Tools bezeichnet werden, sowie eine Serverkomponente zum Bereitstellen und Ausführen der Programme. Darüber hinaus ist die Software SQL Server Management Studio von Microsoft in SSIS integriert, um Integrationsroutinen zu verwalten und zu überwachen.
Architektur der SQL Server Integration Services
Die Hauptelemente der SSIS-Architektur sind zwei Engines. Diese Engines helfen dabei, die Trennung zwischen Datenbewegung und -transformation einerseits und Paketsteuerung- und -verwaltung im SSIS-Dienst andererseits herzustellen.
Die Datenfluss-Engine ist ein spezialisiertes, leistungsstarkes Element der SSIS-Architektur, das sich um datenflussbezogene Tasks kümmert. Das bedeutet, dass sie für das Extrahieren, Transformieren und Laden (ETL) von Daten aus unterschiedlichen Quellen verantwortlich ist.
Jede Datenfluss-Task in SSIS enthält Datenflusskomponenten. Dabei handelt es sich um die Quellen, Transformationen und/oder Ziele, die definieren, wie Daten innerhalb der Datenfluss-Engine bewegt und transformiert werden. Diese Komponenten – bei denen es sich um zusätzliche Objekte handelt – können durch Programmierung der Datenfluss-Engine automatisch erstellt und konfiguriert werden. Entwickler können durch Programmierung der Engine auch benutzerdefinierte Objekte erstellen.
Die SSIS-Laufzeit-Engine ist für die Steuerung der Verwaltung und Ausführung von Paketen verantwortlich. Sie implementiert die Kontrollfluss- und Paketverwaltungsinfrastruktur, die SSIS für die Verarbeitung der Ausführungsreihenfolge, Protokollierung, Variablen und Ereignisbehandlung benötigt. Diese Infrastruktur ermöglicht es Entwicklern auch, die Engine so zu programmieren, dass sie Pakete automatisch erstellt, konfiguriert und ausführt und den Ausführungsfluss steuert. Sie können auch Optionen für Protokollierung, Event Handler und Variablen festlegen.
Neben der Datenfluss-Engine und der Laufzeit-Engine sind die Hauptelemente der SSIS-Architektur:
- SSIS-Designer
- SSIS-Assistenten
- benutzerdefinierte Anwendungen
- Befehlszeilendienstprogramme
Log Provider, Datenquellen, Event Handler, Enumeratoren, Tasks/benutzerdefinierte Tasks und Datenflusskomponenten/benutzerdefinierte Datenflusskomponenten sind ebenfalls Teil der SSIS-Architektur.
Wichtige Funktionen der SQL Server Integration Services
Microsoft SQL Server Integration Services umfasst zahlreiche Funktionen, die die Datenintegration und -transformation für Unternehmen vereinfachen. Dazu gehören integrierte Datenquellenkonnektoren. Benutzer können mit dem SQL Server-Import-/Export-Assistenten auch eine Verbindung zu häufig verwendeten Datenquellen herstellen, darunter SQL Server, MySQL, PostgreSQL, Azure Blob Storage, Oracle und Excel. SSIS bietet außerdem zahlreiche integrierte Tasks und Transformationen. Entwickler können bei Bedarf auch benutzerdefinierte Tasks schreiben.
Weitere nützliche Funktionen von SSIS sind:
- Hadoop/HDFS-Konnektoren und -Tasks
- Open Database Connectivity (ODBS)
- Azure-Konnektoren und -Tasks
- Grundlegende Data Profiling Tools
Diese Funktionen sind sowohl in der Standard- als auch in der Enterprise-Edition von SQL Server verfügbar.
Die SQL Server Enterprise Edition bietet darüber hinaus zusätzliche Funktionen, darunter die folgenden:
- Erweiterte Quellen und Ziele, darunter Oracle- und Teradata-Quellen, Attunity-Ziele, SAP BW-Quellen und -Ziele sowie Ziele für die Dimensionsverarbeitung.
- Erweiterte Tasks und Transformationen, darunter Data Mining-Abfrage-Tools, Fuzzy-Gruppierung und Fuzzy-Lookup-Transformationen.
Programmierung von SQL Server Integration Services
Die beiden Engines innerhalb von SSIS, die Datenfluss-Engine und die Laufzeit-Engine, können mithilfe von Programmierung automatisiert und erweitert werden, um den Integrationsanforderungen des Unternehmens gerecht zu werden. Tatsächlich werden bei der Programmierung von SSIS diese beiden Engines programmiert. Die Engines sind in nativem Code geschrieben, aber über das SSIS-Objektmodell verfügbar.
Bei der Programmierung von SSIS können Entwickler Pakete erweitern, indem sie benutzerdefinierte Datenflusskomponenten (Quellen, Transformationen, Ziele) schreiben. Diese Komponenten sind dann im SSIS-Designer (einem grafischen Tool) verfügbar und bieten benutzerdefinierte Funktionen in einem Paket. Die andere Option besteht darin, Pakete programmgesteuert aus anderen Anwendungen heraus zu erstellen, zu konfigurieren und auszuführen.
Entwickler haben die Freiheit, Erweiterungen zu programmieren, um die Funktionalität von SSIS und seinen integrierten Komponenten zu erweitern. Benutzerdefinierte Integrationen wie Verbindungsmanager, Tasks, Enumeratoren, Log Provider und Datenflusskomponenten können für die Verwendung in mehreren Paketen erstellt werden, indem die Basisklassen im SSIS-Objektmodell als Ausgangspunkt verwendet werden.
Um Erweiterungen in einem einzelnen Paket ad hoc (nicht wiederverwendbar) zu erstellen und zu verwenden, können Entwickler Code im Skripttask schreiben und diesen dann als Quelle, Transformation oder Ziel konfigurieren. Bei dieser Methode schreibt SSIS den Infrastrukturcode, sodass sich der Benutzer auf die Entwicklung der erforderlichen benutzerdefinierten Funktionen konzentrieren kann.
Mit SSIS können Benutzer Pakete dynamisch erstellen und programmgesteuert bearbeiten. Auf diese Weise können sie vorhandene Pakete entweder ohne Änderungen oder mit einigen Neukonfigurationen laden. Diese Pakete können als Vorlagen geladen und dann neu konfiguriert (zum Beispiel für eine andere Datenquelle) und ausgeführt werden. Benutzer können auch neue Pakete erstellen und ausführen. Diese Pakete können Komponenten enthalten, die Objekt für Objekt und Eigenschaft für Eigenschaft konfiguriert werden.
Entwickler können SSIS in einer .NET-kompatiblen Sprache ihrer Wahl (zum Beispiel C#) programmieren. Dies liegt daran, dass SSIS das Microsoft .NET Framework vollständig unterstützt sowie aufgrund des SSIS-Objektmodells. Dieses Modell enthält Funktionen, mit denen Entwickler Pakete in SSIS einfach und flexibel erweitern und programmieren können.
Das .NET Software Development Kit (SDK) enthält die Visual Basic- und C#-Compiler sowie zugehörige Entwicklungs-Tools. Zum Programmieren von Paketen, benutzerdefinierten Tasks und Komponenten sowie zum Kompilieren und Erstellen von SSIS-Codeprojekten kann jeder Code- oder Texteditor verwendet werden – einschließlich Visual Studio.
Bei der Programmierung von SSIS in einer .NET-kompatiblen Sprache müssen Entwickler beachten, dass das .NET Framework standardmäßig mit SQL Server installiert wird. Das .NET SDK ist jedoch nicht enthalten, sodass es auf dem Computer installiert werden muss, um die SQL Server-Dokumentation in Visual Studio zu aktivieren. Entwickler sollten außerdem beachten, dass die SSIS-Programmierschnittstellen (API) bei der Programmierung von SSIS und seinen beiden Engines nicht mit VBScript und anderen COM-basierten Skriptsprachen kompatibel sind.
SSIS-Objektmodell
Das SSIS-Objektmodell ist vollständig verwaltet und macht die Datenfluss-Engine und die Laufzeit-Engine verfügbar und programmierbar. Es ermöglicht Benutzern, Pakete, einschließlich metadatengesteuerter Pakete, programmgesteuert Zeile für Zeile zu erstellen und zu konfigurieren und diese Pakete dann in jeder verwalteten Programmiersprache auszuführen. Sie können mit dem Objektmodell auch benutzerdefinierte Tasks und andere Paketobjekte codieren. Tatsächlich kann mit dem Objektmodell fast jeder Aspekt von SSIS-Paketen programmiert und erweitert werden.
Neben dem Objektmodell können Entwickler das grafische SSIS No-Code-Tool SSIS-Designer verwenden, um Lösungen für die Datentransformation und -integration zu erstellen, ohne Code schreiben zu müssen. Zusammen bilden das SSIS-Objektmodell und die No-Code-Tools eine leistungsstarke Kombination zum Extrahieren und Transformieren von Daten, um komplexe geschäftliche Herausforderungen zu lösen.
Wichtige Elemente der SQL Server Integration Services
Microsoft SQL Server Integration Services ist eine Plattform für die Datenintegration und -transformation für SQL Server und SSIS Integration Runtime in Azure Data Factory.
Sie umfasst folgende Elemente:
- integrierte Tasks
- integrierte Transformationen
- das grafische Tool SSIS-Designer
- SSIS-Katalog
Tasks sind Kontrollflusselemente innerhalb von SSIS-Paketen (ein Paket kann mehrere Tasks enthalten, die im Kontrollfluss miteinander verbunden und sequenziert sind). Jede SSIS-Task definiert die Arbeitseinheiten, die in einem Paket-Kontrollfluss ausgeführt werden. SSIS unterstützt mehrere Task-Typen, darunter Datenfluss-Tasks, Datenvorverarbeitungs-Tasks, Workflow-Tasks und SQL Server-Tasks. Entwickler können benutzerdefinierte Tasks in einer .NET-Programmiersprache oder einer COM-unterstützten Programmiersprache schreiben.
In SSIS sind Transformationen die Komponenten eines Pakets, die Daten aggregieren, zusammenführen, verteilen und ändern. SSIS bietet verschiedene Arten von Transformationen, die eine Vielzahl von Funktionen ausführen. Beispielsweise führen Business Intelligence (BI)-Transformationen BI-Operationen wie das Bereinigen oder Auswerten von Daten durch, während Zeilentransformationen Spaltenwerte aktualisieren und neue Spalten erstellen. Wie bei Tasks können Entwickler benutzerdefinierte Transformationen schreiben, um sie an die Geschäftsanforderungen anzupassen. Diese Transformationen können synchrone oder asynchrone Tasks haben.
SSIS-Designer ist ein grafisches Tool mit benutzerfreundlichen Tabs, Dialogfeldern und Fenstern. Es ermöglicht Entwicklern die einfache Ausführung und Verwaltung einer Vielzahl von datenbezogenen Tasks, wie zum Beispiel das Erstellen der Steuerung oder des Datenflusses in einem Paket, das Hinzufügen von Event-Handler-Routinen zu einem Paket, das Rückgängigmachen/Wiederherstellen von Änderungen und das Anzeigen des Paketausführungsfortschritts zur Laufzeit – alles ohne das Schreiben von Code. Der SSIS-Dienst muss nicht ausgeführt werden, um Pakete im SSIS-Designer zu erstellen oder zu ändern.
Der SSISDB-Katalog speichert Objekte wie Projekte, Pakete, Parameter, Umgebungen und den Betriebsverlauf. Er wird benötigt, um Projekte innerhalb von SSIS bereitzustellen. Mit dem SSISDB-Katalog können Benutzer Folgendes tun:
- Die im SSISDB-Katalog gespeicherten Objekte überprüfen, indem Sie die Ansichten in SSISDB abfragen.
- Objekte verwalten, indem Sie gespeicherte Prozeduren in SSISDB aufrufen.
Der SSIDB-Katalog kann lokal ausgeführt werden. Unternehmen können ihre lokalen SSIS-Workloads auch in Azure verschieben. Dies kann die Betriebskosten senken und die Verfügbarkeit und Skalierbarkeit erhöhen. Sie können SSIS-Projekte und -Pakete im SSISDB-Katalog in Azure SQL Database mit vertrauten Tools wie SQL Server Management Studio (SSMS) bereitstellen, ausführen und verwalten.
Neue Funktionen in SQL Server 2025 Integration Services
Seit Juli 2025 ist die jüngste Version von SQL Server Integration Services v17.x (Preview) verfügbar. Diese Version enthält eine neue Funktion und grundlegende Änderungen.
Die neue Funktion in SQL Server 2025 (17.x) Preview Integration Services besteht darin, dass der ADO.NET-Verbindungsmanager nun den Microsoft SqlClient-Datenanbieter unterstützt. Dieser Verbindungsmanager ermöglicht es Paketen, über einen .NET-Anbieter auf Datenquellen wie SQL Server zuzugreifen. SSIS erstellt den Verbindungsmanager und legt dessen Eigenschaften fest (dies kann entweder programmgesteuert oder mit dem SSIS Designer erfolgen).
Die grundlegende Änderung in SSIS 17.x betrifft Organisationen, die auf SSIS 2025 aktualisieren und den .NET-API-Namespace Microsoft.SqlServer.Dts.Runtime verwenden. Um den Namespace weiterhin verwenden zu können, müssen Projekte die Verweise aktualisieren und neu erstellen, wenn ein Paket entweder die Task Execute SQL Task enthält oder bestimmte SSIS-Tasks aufweist, die auf SQL Server Management Objects (SMO) basieren.
Die folgenden Funktionen sind in SQL Server 2025 (17.x) Preview Integration Services veraltet:
- der SQL Server Management Studio Legacy-SSIS-Dienst
- der Integration Services 32-Bit-Modus (Tools unterstützen in aktuellen und zukünftigen Versionen nur 64-Bit)
- der SqlClient Data Provider (SDS)-Verbindungstyp (Microsoft empfiehlt Benutzern die Migration zum ADO.NET-Verbindungstyp)
Einige Funktionen wurden in SQL Server 2025 Preview Integration Services entfernt. Dazu gehören:
- die Change Data Capture (CDC)-Komponenten und der CDC-Dienst von Attunity für Oracle
- Microsoft Connector für Oracle
- die Komponenten Hadoop Hive Task, Hadoop Pig Task und Hadoop File System Task
Verbesserungen in früheren Versionen von SSIS
SQL Server 2016
SQL Server 2016 führte den SSISDB-Upgrade-Assistenten ein. Mit diesem Tool können IT-Experten die Katalogdatenbank aktualisieren, wenn sie älter als die aktuelle Version von SQL Server ist. Es kann auch in einigen Disaster-Recovery-Situationen verwendet werden, die eine Wiederherstellung aus einer Sicherung erfordern. Der SSISDB-Assistent aktualisiert die Katalogdatenbank entsprechend der verwendeten Version von SQL Server.
Mit SQL Server 2016 Integration Services können Administratoren eine SSIS-Katalogdatenbank zu einer AlwaysOn-Verfügbarkeitsgruppe hinzufügen. Es umfasst auch eine verbesserte Paketverwaltung, bei der Administratoren einen Container oder eine Kontrollflussaufgabe als wiederverwendbare Vorlage über Integration Services speichern können. Ebenfalls in SQL Server 2016 enthalten war ein SSIS Feature Pack für Azure. Damit können Administratoren eine Verbindung zu Azure-Datenquellen herstellen und Daten zwischen der Azure-Cloud und lokalen Datenquellen übertragen.
Microsoft veröffentlichte 2016 Konnektoren für SSIS, darunter den Connector for SAP Business Warehouse für SQL Server 2016, die Connector-Versionen 4.0 für Oracle und Teradata sowie den Connector for Analytics Platform System Appliance Update 5.
SQL Server 2017
SQL Server 2017 brachte neue SSIS-Funktionen mit sich, wie zum Beispiel Scale Out für SSIS, wodurch die Ausführung von SSIS auf mehreren Computern vereinfacht wird. Administratoren können so einen Single Point of Failure für die gesamte Scale Out-Bereitstellung vermeiden. Ebenfalls enthalten ist eine Verbesserung der Failover-Behandlung der Ausführungsprotokolle von Scale Out Workers. Die Ausführungsprotokolle bleiben auf der lokalen Festplatte erhalten, wenn der Scale Out Worker plötzlich stoppt.
Der SSIS-Katalog enthält außerdem eine neue globale Eigenschaft, die den Standardmodus für die Ausführung von SSIS-Paketen festlegt. Dies gilt, wenn IT-Experten die gespeicherte Prozedur mit dem auf null gesetzten Parameter runinscaleout aufrufen.
Historie
Microsoft SSIS wurde mit SQL Server 2005 als Ersatz für ein früheres Integrationswerkzeug namens Data Transformation Services (DTS) eingeführt. Vor der Veröffentlichung von DTS mit SQL Server 7.0 im Jahr 1998 schrieben Datenbankadministratoren entweder benutzerdefinierte Datentransformationen oder verwendeten Tools von Drittanbietern, um Daten zu übertragen.
Microsoft hat SSIS im Laufe der Jahre um eine Reihe von Funktionen erweitert, darunter grafische Tools und Assistenten, mit denen Benutzer Pakete erstellen und debuggen können, Workflow-Funktionen wie FTP-Operationen, die Möglichkeit, SQL-Anweisungen auszuführen, die Möglichkeit, E-Mail-Nachrichten zu versenden, Datenquellen und -ziele für ETL, Transformationen zum Sammeln, Bereinigen, Zusammenführen und Kopieren von Daten, einen Verwaltungsdienst, die Möglichkeit, die Ausführung und Speicherung von Paketen zu verwalten, sowie APIs für SSIS-Objektmodelle. Zu den beliebtesten Funktionen gehören der Datenimport-/Export-Assistent und die gepackten Datenquellenkonnektoren.
Support
SSIS ist versionsspezifisch, daher müssen Benutzer über die Version von SSIS verfügen, die ihrer SQL Server-Edition entspricht. Darüber hinaus wird SSIS in den Editionen SQL Express und Workgroup nicht unterstützt. Benutzer müssen die Standard-, Business Intelligence- oder Enterprise-Edition erwerben, um den SSIS-Designer und die Laufzeitkomponenten sowie grundlegende Data Profiling Tools und vorgefertigte Transformationen zu erhalten. Erweiterte Adapter und erweiterte Transformationen sind nur in der Enterprise Edition verfügbar.