SSIS Komplett-Tutorial – Alle Themen auf einer Seite

SQL Server Integration Services

Von den Grundlagen bis zu Scale Out & Azure Data Factory – alles auf einer Seite

📘 SSIS Tutorial – Grundlagen

SQL Server Integration Services (SSIS) ist eine ETL-Plattform (Extract, Transform, Load) von Microsoft. Mit SSIS erstellen Sie Datenintegrations- und Transformationslösungen – z.B. Import von CSV-Dateien, Bereinigung von Daten, Laden von Data Warehouses.

Hauptkomponenten

  • Control Flow – Steuert den Ablauf von Tasks (z.B. Datei kopieren, SQL ausführen).
  • Data Flow – Extrahiert, transformiert und lädt Daten zwischen Quellen und Zielen.
  • Connection Manager – Verwaltet Verbindungen (Datenbanken, Dateien, Cloud).
  • Event Handler – Reagiert auf Laufzeitereignisse (Fehler, Warnungen).
  • Parameter & Variablen – Dynamische Steuerung von Paketen.

Ein SSIS-Paket (.dtsx) wird in Visual Studio (SSDT) entwickelt, in der SSISDB bereitgestellt und mit SQL Agent oder ADF geplant.

🔧 SSIS Versionen & Tools

SQL Server Versionen mit SSIS: Seit SQL Server 2005. Wichtige Meilensteine:

  • SQL Server 2012 – SSISDB-Katalog, Projektbereitstellungsmodell.
  • SQL Server 2016 – AlwaysOn für SSISDB.
  • SQL Server 2017/2019/2022 – Scale Out, Linux-Integration (eingeschränkt).

Entwicklungsumgebung

SQL Server Data Tools (SSDT) – Kostenlose Erweiterung für Visual Studio 2022 (enthält SSIS-, SSAS- und SSRS-Projekte).

Weitere Tools

  • SSIS Deployment Wizard – Bereitstellung in SSISDB/Dateisystem.
  • dtutil.exe – Kommandozeilen-Tool.
  • SSIS Scale Out Manager – Konfiguration von Scale Out.

📊 SSIS Sample Data – Beispieldaten

CSV-Beispieldatei (sales.csv)

OrderID,Product,Quantity,Price,OrderDate 
1001,Laptop,1,1200,2024-01-15 
1002,Mouse,5,25,2024-01-16 
1003,Keyboard,2,45,2024-01-17

SQL Server Tabelle erstellen

CREATE TABLE dbo.SalesSource ( 
OrderID INT, 
Product NVARCHAR(100), 
Quantity INT, 
Price DECIMAL(10,2), 
OrderDate DATE 
); 
INSERT INTO dbo.SalesSource VALUES 
(1001,'Laptop',1,1200,'2024-01-15'), 
(1002,'Mouse',5,25,'2024-01-16'), 
(1003,'Keyboard',2,45,'2024-01-17');

Für fortgeschrittene Szenarien: AdventureWorks Testdatenbank verwenden.

🆕 SSIS-Projekt erstellen (SSDT)

  1. Visual Studio → Datei → Neu → Projekt.
  2. Vorlage: "Integration Services-Projekt" wählen.
  3. Name und Speicherort festlegen.
  4. Im Projektstandard Paket.dtsx doppelklicken → Control Flow Designer wird geöffnet.
  5. Connection Manager anlegen (z.B. OLE DB, Flat File).
💡 Tipp: Legen Sie sofort Quell- und Zielverbindungen an, bevor Sie mit dem Datenfluss beginnen.

⚙️ SSIS Control Flow – Steuerungsablauf

Der Control Flow definiert die Reihenfolge der Tasks. Besteht aus:

  • Tasks – Execute SQL, Data Flow, File System usw.
  • Container – For-Schleife, Foreach-Schleife, Sequence.
  • Precedence Constraints – Grüner Pfeil (Erfolg), roter Pfeil (Fehler), gelber Pfeil (Abbruch).
[Execute SQL Task] → (grün) → [Data Flow Task] → (grün) → [Send Mail Task]

Der Foreach Loop Container durchläuft z.B. Dateien in einem Ordner.

▶️ Wichtige Tasks in SSIS

  • Execute SQL Task – SQL-Befehle ausführen, Ergebnisse in Variablen speichern.
  • File System Task – Dateien/Ordner kopieren, verschieben, löschen.
  • Data Flow Task – Enthält den gesamten Datenfluss (Extract, Transform, Load).
  • Execute Process Task – Externe Programme (Python, BAT) starten.
  • Send Mail Task – E-Mails via SMTP.
  • FTP Task – Dateiübertragung per FTP.
  • Script Task – C#/VB.NET Code für komplexe Logik.

🌊 Data Flow – Das Herz von SSIS

Im Data Flow werden Daten zeilenweise durch eine Pipeline bewegt. Kernkomponenten:

  • Quellen (OLE DB Source, Flat File Source, Excel Source).
  • Transformationen (Derived Column, Lookup, Aggregate, Conditional Split).
  • Ziele (OLE DB Destination, Flat File Destination).

Fehlerzeilen können über rote Ausgänge umgeleitet werden.

📖 Daten lesen – Quellen in SSIS

  • OLE DB Source – SQL Server, Oracle, Access (SQL-Befehl oder Tabelle).
  • Flat File Source – CSV, TXT (Trennzeichen oder feste Breite).
  • Excel Source – Liest Excel-Tabellen (32-Bit erforderlich).
  • XML Source – Extrahiert Daten aus XML mit XSD.
  • ODBC Source – Für PostgreSQL, MySQL u.a.
Verwenden Sie Variablen für dynamische SQL-Abfragen und Dateipfade.

🔄 Wichtige Transformationen in SSIS

  • Derived Column – Neue Spalten berechnen (z.B. Price * Quantity).
  • Lookup – Werte in Referenztabelle nachschlagen.
  • Aggregate – Gruppierungen (SUM, AVG, COUNT).
  • Sort – Daten sortieren.
  • Merge Join – JOIN zweier sortierter Eingaben.
  • Union All – Mehrere Eingaben vereinen.
  • Conditional Split – Aufteilung nach Bedingungen.
  • Data Conversion – Datentyp ändern.
  • Pivot/Unpivot – Zeilen zu Spalten / Spalten zu Zeilen.

💾 Schreiben von Daten – Ziele

  • OLE DB Destination – INSERT, Fast Load (für hohe Geschwindigkeit).
  • Flat File Destination – Export nach CSV/TXT.
  • Excel Destination – Schreibt in Excel-Tabellen.
  • SQL Server Destination – Bulk-Import (nur lokaler SQL Server).
  • ODBC Destination – Für externe Datenbanken.
  • Recordset Destination – Ergebnis in Variable speichern.
Bei großen Datenmengen immer "Fast Load" mit Tabellenlock verwenden.

🚀 Bereitstellung & Planung

Projektbereitstellungsmodell (empfohlen) – Deployment in SSISDB-Katalog.

  1. Rechtsklick auf Projekt → "Bereitstellen" → Deployment Wizard.
  2. Zielserver angeben (SSISDB muss existieren).
  3. Umgebungen (Environment) mit Variablen für Dev/Prod anlegen.
  4. Planung mit SQL Server Agent: Neuer Auftrag → Schritt vom Typ "SSIS-Paket aus SSISDB".

Alternativ: dtutil oder PowerShell.

⚡ SSIS Performance Tuning

  • PuffergrößeDefaultBufferSize (z.B. 100 MB) erhöhen.
  • Lookup mit Full Cache für kleine Referenztabellen.
  • Blockierende Transformationen (Sort, Aggregate) reduzieren.
  • Fast Load mit Tabellenlock für OLE DB Destination.
  • Parallelität – Mehrere Data Flow Tasks parallel im Control Flow ausführen.
  • Indizierte Quellabfragen – WHERE auf Indexspalten.
  • Protokollierung einschränken – Nur OnError/OnWarning loggen.

Überwachung mit catalog.executions und catalog.execution_statistics in SSISDB.

🌍 SSIS Scale Out – Verteilte Ausführung

Seit SQL Server 2017 möglich. Pakete laufen auf mehreren Worker-Knoten.

  • Scale Out Master – Koordinator (ein SQL Server).
  • Scale Out Worker – Führen Pakete aus (mehrere Maschinen).

Setup

  1. Master über SQL Server Setup installieren (Integration Services Scale Out).
  2. Worker installieren und im Master registrieren.
  3. In SSMS ein Paket ausführen → "Scale Out" auswählen.

Verwaltung mit SSIS Scale Out Manager.

☁️ SSIS in Azure Data Factory (ADF)

Mit Azure Data Factory können Sie vorhandene SSIS-Pakete in der Cloud ausführen – Lift & Shift.

  1. Azure Data Factory erstellen.
  2. Azure-SSIS Integration Runtime (IR) bereitstellen (Knotengröße, Anzahl).
  3. SSIS-Projekt in SSISDB (auf Azure SQL Managed Instance oder SQL DB) bereitstellen.
  4. In ADF-Pipeline Aktivität "Execute SSIS Package" hinzufügen.
Die Azure-SSIS IR unterstützt benutzerdefinierte Komponenten, VNet und Hybridzugriff. Bezahlung pro Stunde.
SQL Server Integration Services – Umfassender Leitfaden | Alle Beispiele praxisnah | Letzte Aktualisierung: 2025