Das Problem

Im Zuge der Arbeit an einem SSIS-2012-Projekt habe ich mich mit dem neuen Konfigurationsmodel, welches ab der Version 2012 eingeführt wurde, beschäftigt.

Bei meiner Recherche zu diesem Thema bin ich dann u.a. auf den unter [1] genannten Link gestoßen, dessen Mini-Beispiel ich einmal durchgearbeitet habe.

Standardmäßig verwendet ein SSIS-Paket in SSIS-2012 das ISPAC-Model, es kann aber auch das alte Konfigurationsmodel weiter verwendet werden.

Das alte Model heißt „Package Deployment Model“ und kann mit einem Rechtsklick auf das Projekt und den Punkt „Convert to Package Deployment Model“ wieder aktiviert werden.

Es muss beachtet werden, dass das ISPAC-Model keine zusätzlichen Dateien, wie Bilder usw. speichern kann, sondern wirklich nur die Konfiguration, Parameter, Standardwerte etc.

Parameter

Wie auch schon im alten Model gibt es auch hier Paket- und Projekt-Parameter.
Die Projekt-Parameter können in jedem Paket innerhalb eines Projektes verwendet werden, die Paket-Parameter entsprechend nur in dem Paket, in dem sie definiert wurden.
Parameter können als sensitiv markiert und verschlüsselt werden.
Zusätzlich können Standardwerte für 3 verschiedene Umgebungen definiert werden:

  • Design-Default-Values: werden im BIDS definiert und verwendet
  • Server-Default-Values: über die Design-Default-Values und werden im jeweiligen SSIS-Catalog gesetzt und verwendet
  • Execution-Values: spezielle Umgebungsvariablen die während der Ausführung gesetzt werden

Kleines Anwendungsbeispiel

Zunächst muss ein neuer Integration Services Catalog erstellt werden.

  • dazu muss ein Rechtsklick auf „Integration Serivces Catalogs“ gemacht und auf „Create Catalog“ geklickt werden:image
  • der Haken „Enable CLR Integration“ erlaubt die Ausführung von Stored-Procedures auf Basis der CLR und sollte angehakt werden
  • auch der Haken „Enable automatic execution of Integration Services stored procedure at SQL Server Startup“ sollte auch gesetzt werden.
    Er sorgt dafür, dass die Stored-Procedure „catalog.startup“ bei jedem Neustart der SSIS-Server-Instanz ausgeführt wird
  • anschließend wird ein Passwort für die Verschlüsselung der Pakete gesetzt werden gesetzt und auf „ok“ geklickt
    clip_image002
  • In der SSISDB kann jetzt ein neues Verzeichnis erstellt werden:
    image
  • Das Verzeichnis bekommt einen Namen und eine Beschreibung:
    clip_image002[5]
  • Nach einem Klick auf „ok“ ist nun folgendes zu sehen:
    clip_image003
  • Im Verzeichnis „Projects“ wird dann das SSIS-Projekt gespeichert unter „Environment“ werden die Einstellungen für die verschiedenen Umgebungen (z.B. Development, Staging und Production) hinterlegt.
  • Als nächstes wird ein kleines SSIS-Projekt erstellt, welches als ISPAC erstellt und anschließend in dem gerade erzeugten Projects-Verzeichnis bereitgestellt wird.
  • Dazu wird zunächst eine Datenbank erstellt in der folgendes SQL-Skript ausgeführt wird:
    CREATE TABLE [dbo].[MyDest](
    [id] [int] NULL,
    [SomeData] [int] NULL
    ) ON [PRIMARY]GO

    CREATE TABLE [dbo].[MySource](
    [id] [int] NULL,
    [SomeData] [int] NULL
    ) ON [PRIMARY]

    GO

    INSERT [dbo].[MySource] ([id], [SomeData]) VALUES (1, 12345)
    INSERT [dbo].[MySource] ([id], [SomeData]) VALUES (2, 134545)
    INSERT [dbo].[MySource] ([id], [SomeData]) VALUES (3, 4576467)

  • Das Projekt leert zunächst die Tabelle „MyDest “ und füllt anschließend in einem Data-Flow-Task die Tabelle “MyDest” mit den Daten aus der Tabelle “MySource ”:
    clip_image001[6]
  • Durch einen Klick auf „Project.params“ und das „Add Parameter“-Symbol wird ein neuer Parameter erstellt:
    clip_image002[5]clip_image004[5]
    Dieser Projekt-Parameter ist in allen SSIS-Pakten sichtbar.
  • Durch einen Rechtsklick auf das Projekt und „Deploy“ wird das Paket dann bereitgestellt:clip_image005[5]
  • Im nun erscheinenden Fenster muss noch ein Servername und das Projekt-Verzeichnis angegeben werden:
    clip_image007[6]
  • Ein anderer Weg ein Paket bereitzustellen ist im SQL-Server-Management-Studio durch einen Rechtsklick auf das Projektverzeichnis und dann auf „Deployment“:
    clip_image008[4]
  • Es wird dann die ISPAC-Datei aus dem Dateisystem ausgewählt (Radiobutton auf „Project deployment file“):
    clip_image010[4]
  • Die Projektstruktur sieht nun wie folgt aus:
    clip_image011[4]
  • Jetzt könnte noch ein SQL-Server-Job angelegt werden (was aber nicht mehr ISPAC-spezifisch ist und somit nicht für diesen Artikel interessant wäre).

Fazit

Das neue Deployment-Model, lässt sich relativ einfach handhaben und es gibt eine einzige Datei, was das Verschicken eines SSIS-Projekt enorm erleichtert.

Links

[1] https://www.simple-talk.com/sql/ssis/ssis-2012-projects-setup,-project-creation-and-deployment/

Leave a comment

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Time limit is exhausted. Please reload the CAPTCHA.