Integration Services (SSIS)

    • Offizieller Beitrag

    Mit den Integration Services (IS) von Microsoft ist man in der Lage einen Workflow abzubilden um Daten in den SQL Server zu laden. Man spricht hierbei auch von einem ETL-Prozess (Extract, Transform, Load).

    Für die Erstellung werden die SQL Server Data Tools verwendet. Um einen Workflow erstellen zu können, kann jede Progammiersprache die das Microsoft .NET Framework (z.B. Visual Studio) unterstützt verwendet werden.

    Die SQL Server Integration Services (SSIS) des SQL Servers werden dazu verwendet um den Ladevorgang zu automatisieren.

    Die Modelierung erfolgt in sogenannten Paketen. Dieser beinhaltet den Datenfluss. Beispiel eines einfachen Pakets:

    • Verbindung (connections) zur Datenquelle
    • Task (Aufgabe)
    • Datenflusstask (Data flow task)
      • Quelle (Source)
      • Transformation
      • Ziel (Destination)
    • Offizieller Beitrag

    Begriffe

    • Pakete (=> MS-Doku) bezeichnen einen Workflow indem Daten in den SQL Server geladen werden kann.
      Einfaches Package:

      Objekte:
      • Connections (Verbindungen)
      • Control flow elements (Ablaufsteuerungselementen)
      • Data flow elements (Datenflusselemente)
      • Event handlers (Ereignishandlern)
      • Variables (Variablen)
      • Parameters (Parameter)
      • Configurations (Konfigurationen)
    • Control flow elements (Ablaufsteuerungselementen) (=> MS-Doku) definieren logische Abläufe die ausgeführt werden
      • Elemente: Tasks (Aufgaben) für die Funktionalität, Container (Behälter) zur Strukturierung und Precedence Constraints (Rangfolgeneinschränkungen) zur Verbindung der Elemente
      • Ergebnisse: Success (Erfolgreich), Failure (Fehler), Completion (Abschluss)
    • Data flow elements (Datenflusselemente) (=> MS-Doku) beschreiben den Datenfluss
      • Elemente: Sources (Quellen), transformations (Transformationen) und destinations (Ziele)
    • Connections (Verbindungen) (=> MS-Doku) werden über den Connection Manager (Verbindungs-Manager) erstellt. Dieses Objekt definiert die Verbindung zu einer Quelle oder einem Ziel. In einem Paket können verschieden Verbindungen enthalten sein.
    • Event handlers (Ereignishandlern) (=> MS-Doku) kann dazu verwendet werden um eine Fehlerbehandlung zu integrieren. Einige Elemente lösen bei der Ausführung Ereignisse (z.B. OnError) aus, welche abgefragt und darauf reagiert werden kann.
    • Configurations (Konfigurationen) (=> MS-Doku) kann dazu verwendet werden um Paktete zu konfigurieren. Somit können selbe Pakete mit unterschiedlichen Konfigurationen ausgeführt werden. Eine typische vorgehensweise ist:
      • Paketkonfiguration erstellen
      • Projekt mit den Paketen erstellen
      • Projekt wird auf den SSIS geladen (deployt)
      • Projekt (Pakete) in Instanzen einplanen damit sie regelmäßig ausgeführt werden
    • Parameters (Parameter) (=> MS-Doku) können dem Paket Informationen mitgegeben werden die das verhalten beflussen kann. Hierbei ist eine Anpassung der Ablaufsteuerung in einem Paket möglich, ohne das Paket ändern zu müssen. Die Parameter können in der Configuration gesetzt werden.
    • Variables (Variablen) (=> MS-Doku) werden verwendet um Werte wärend der Laufzeit zu speichern und abzurufen. Sie können innerhalb eines Paketes zu Steuerung verwendet werden.

    Anmerkung: Die Bilder wurden größtenteils der Onlinedokumentation von Microsoft entnommen

    • Offizieller Beitrag

    ETL-Prozess erstellen

    Unter einem ETL-Prozess (Extract, Transform, Load) versteht man den Ladevorgang einer oder mehrerer Datenquellen in eine Zieldatenbank. Dies geschieht in 3 Schritten

    • Extraktion (Extrahieren) lädt die Daten aus einer Datenquelle
    • Transform (Transformieren) passt das Format für die Verwenung in der Zieldatenbank an
    • Load (Laden) speichert die Daten in die Zieldatenbank

    Beim Ladeprozess mit SSIS ist es Sinnvoll vorher die Zielstruktur auf der Zieldatenbank anzulegen. Dies erleichtert ein erneutes laden in die selbe Struktur

    1. Zieltabelle anlegen
      1. MS SQL Server Management Studio starten
      2. Tabelle anlegen
        Tabelle ggf. löschen: IF OBJECT_ID(N'dbo.tAdressen', 'U') IS NOT NULL DROP TABLE dbo.tAdressen;
        Tabelle anlegen: CREATE TABLE dbo.Adressen (Nachname char(50), Strasse char(100));
      3. Eigenen User für das Laden anlegen
        User ggf. löschen: IF (SELECT COUNT(*) FROM sys.server_principals WHERE Name='usrImport') > 0 DROP LOGIN usrImport;
        User anlgen: CREATE LOGIN usrImport WITH PASSWORD = 'is_import', DEFAULT_DATABASE = Test, CHECK_POLICY = OFF;
    2. Datenquelle anlegen
      Beispiel: Datei Adressen.csv
      Nachname;Adresse
      Maier;Hauptstr. 12, 71234 Stuttgart
      Schulze;Bahnhofstr. 2, 70123 Stuttgart
    3. Projekt in Visual Studio anlegen
      1. Typ: Installiert - Business Intelligence - Integration Service
        => Integration Service Projekt
        Name: Adressen_laden
        Projektmappe: Adressen_laden