Konfigurationsmöglichkeiten in SSIS 2012

20. Juli 2012

SQL Server Integration Services (SSIS) 2012 enthält mehrere Verbesserungen im Bereich Konfiguration, die dafür sorgen, dass man erstens weniger konfigurieren muss und zweitens die Konfiguration viel einfacher gestalten und für unterschiedliche Umgebungen anpassen kann. Das alte Konzept von Paketkonfigurationen wird zwar weiterhin im Package Deployment Model unterstützt, die neuen Parametrisierungsmöglichkeiten vom Project Deployment Model bieten aber viel mehr Entwicklungskomfort.

Zwei wichtige Neuerungen in SSIS 2012 sind besonders zu erwähnen: Project Connection Managers und der veränderte Execute Package Task.

Mit einem Project Connection Manager hat man endlich die Möglichkeit, Verbindungen zu Datenquellen zu definieren, die in mehreren Paketen verwendet werden können. Einen Project Connection Manager kann man leicht in einen Package Connection Manager konvertieren (und umgekehrt).

Project Connection Manager

Die Connection Manager sind in der RTM-Version von SSIS 2012 auch parametrisierbar (die ersten CTPs haben das noch nicht unterstützt), so dass man leicht und an einer Stelle die Verbindungsinformationen überschreiben kann.

Der neue Execute Package Task braucht keine eigenen Connection Manager mehr. Die Unterpakete können über eine Projektreferenz ausgeführt werden, was eine separate Konfiguration erübrigt.

Execute Package Task

 

Projekt- und Paketparameter

Richtig interessant wird es bei der Konfiguration von externen Abhängigkeiten mit Hilfe von Projekt- bzw. Paketparametern. Die Paketparameter haben eine gewisse Ähnlichkeit zu Variablen, die Projektparameter werden entsprechend paketübergreifend (auf der Projektebene) definiert. Genau wie mit Variablen, kann man mit Parametern abgeleitete Ausdrücke definieren.

Projektparameter

Parameterbasierte Ausdruecke

Die Parameter bieten in Vergleich zu Variablen ein paar zusätzliche Eigenschaften:

  • Sensitive – der Wert wird für im SSISDB Katalog bereitgestellte Projekte verschlüsselt
  • Required  – für die im SSIS Katalog bereitgestellte Projekte muss bei der Ausführung entweder ein Server Default Wert oder ein Execution Wert angeben werden (Matt Mannson erwähnt ein paar Situationen, wenn eine fehlende Konfiguration zu schwierig identifizierbaren Bugs führen kann)

Für die lokale Entwicklung kann man mehrere Parametereinstellungen im SSDT mit Hilfe von Konfigurationen zusammenfassen.

Projektkonfigurationen

Leider werden die Konfigurationen in der Projekt-Datei (.dtproj) gespeichert, was die Entwicklung auf unterschiedlichen Rechnern weniger komfortabel macht (dasselbe Problem hat man auch seit geraumer Zeit mit den Datenquellenkonfigurationen in SSAS-Projekten).

 

SSISDB Katalog

Die SSISDB-Umgebung für bereitgestellte Pakete kann wesentlich mehr. Nachdem man ein SSIS-Projekt in einem SSISDB-Katalog  bereitgestellt hat, hat man die Möglichkeit mehrere Umgebungen (Environments) zu definieren

SSISDB Umgebungen

Wie der Name schon vermuten lässt, enthalten die Umgebungen eine oder mehrere Umgebungsvariablen, die für die in einem SSIS-Projekt definierten Parameter verwendet werden können.

Umgebungsvariablen

Die angelegten Umgebungen kann man in Projektkonfiguration referenzieren, die Umgebungsvariablen können dann den Projekt- und Paketparametern zugewiesen werden. Alternativ kann man die Ausführung auch mit einem Default Wert oder nur für die aktuelle Ausführung gültigen Wert starten.

Referenzierung Umgebungsvariablen

Die vorgenommene Konfiguration wird in der SSISDB Datenbank persistiert und kann über die Transact-SQL API gelesen und geändert werden.

Insgesamt machen die Konfigurationsmöglichkeiten in SSIS 2012 einen sehr guten Eindruck. Es gibt zwar ein paar Unschönheiten und kleine SSDT-bezogene Bugs, aber die neuen Funktionen reduzieren den Konfigurationsaufwand auf das notwendige Minimum.