Verwendung des Konfigurations-Managers für den Test auf Entwicklungs- und Produktivumgebungen

Mit dem Erscheinen des SQL Server 2012 stellte Microsoft neben dem Paketbereitstellungsmodell ein weiteres Modell zur Verfügung: das Projektbereitstellungsmodell. Eine Gegenüberstellung beider Bereitstellungsmodelle kann man hier finden.
Während man im „alten Modell“ die Möglichkeit hat, mit Hilfe der Paketkonfiguration (XML-Konfigurationsdatei, SQL-Server, Umgebungsvariable, …) den Variablen und Verbindungs-Managern im Paket einen Wert zuzuweisen kommt mit dem Projektbereitstellungsmodell die Möglichkeit dazu, im Visual Studio mit unterschiedlichen Konfigurationen zu arbeiten.

In diesem Beitrag werde ich beschreiben, welche Einstellungen vorzunehmen sind, damit bei der Nutzung des Projektbereitstellungsmodell ETL-Pakete auf unterschiedlichen Umgebungen ausgeführt werden können.
 

Vorgehensweise

 

Hinweis: Voraussetzung für die nachfolgende Anleitung ist, dass das Projekt im Projektbereitstellungsmodell vorliegt.
 

  1. Über den Projektmappen-Explorer muss zunächst mindestens ein Projektparameter hinzufügefügt werden (Abbildung 1).
  2. Abbildung 1: Projektmappen- Explorer

     

  3. Die Parameter können über die Schaltfläche Parameter hinzufügen (siehe Abbildung 2) ergänzt werden. In meinem Beispiel habe ich zwei Parameter (einen für die Quell-, den anderen für die Zieldatenbank) hinzugefügt. Als Datentyp muss den eigenen Anforderungen entsprechend ein geeigneter Datentyp gewählt werden. Die beiden anderen Parametereigenschaften Vertraulich und Erforderlich belasse ich auf dem Standardwert False.
  4. Abbildung 2: Projektparameter hinzufügen

     

  5. Im nächsten Schritt muss der Konfigurations-Manager geöffnet werden. Dies erfolgt entweder über die Schaltfläche Projektmappenkonfiguration (siehe Abbildung 3)(muss ggf. hinzugefügt werden falls ausgeblendet) oder mittels eines Rechtsklicks auf den Solution-Namen und einem Klick auf Eigenschaften. Im der sich öffnenden Eigenschaftenseite befindet sich ebenfalls ein Button für den Konfigurations-Manager (siehe Abbildung 4).

     

    Hinweis:

    Man muss auf der linken Seite des Fensters zunächst auf Konfigurationseigenschaften oder einem der Unterpunkte klicken damit das Feld Konfigurations-Manager aktiv wird.

  6. Abbildung 3: Projektmappenkonfiguration

     

    Abbildung 4: Projektdeployment-Eigenschaftenseiten

     

  7. Im sich öffnenden Fenster füge ich über die Schaltfläche <Neu…> die drei Konfigurationen Entwicklung, Produktiv und Test hinzu (siehe Abbildung 5).
  8. Abbildung 5: Konfigurations-Manager Teil 1

     

    Hinweis:

    Es muss unbedingt darauf geachtet werden, dass bei der Auswahl Konfiguration der aktuellen Projektmappe und Konfiguration die gleichen Einstellungen vorgenommen werden (siehe Abbildung 6). Ansonsten kann es schnell passieren, dass die Parameter der Testumgebung die Werte des Produktivsystems enthalten.

     

    Abbildung 6: Konfiguratons-Manager Teil 2

     

  9. Anschließend rufe ich erneut die Übersicht Project.params (siehe Schritt 3) auf und klicke auf die Schaltfläche Parameter zu Konfiguration hinzufügen (Abbildung 6).
  10. Abbildung 7: Parameterkonfiguration

     

  11. Daraufhin öffnet sich das Fenster Parameterwerte verwalten. Mit einem Klick auf Hinzufügen wähle ich die unter Schritt 2 erstellten Parameter aus (Abbildung 7) und bestätige mit OK.
  12. Abbildung 8: Parameter hinzufügen

     

  13. Für die beiden hinzugefügten Parameter kann ich entsprechend der unter Punkt 4 angelegten Konfigurationen verschiedene Werte eintragen (Abbildung 9).
  14. Abbildung 9: Parameterwerte verwalten

     

  15. Anschließend erstelle ich in meinem Paket zwei OLE DB-Verbindungen für Quell- und Zieldatenbank und erstelle eine Expression für den InitialCatalog (Abbildung 10).

Abbildung 10: Eigenschaftsausdrucks-Editor

 

Als Wert wähle ich für die Quelle den Projektparameter Quelldatenbank (Abbildung 11).
 

Abbildung 11: Ausdrucks-Generator

 

Da mein Projekt aktuell mit der Konfiguration Entwicklung aktiv ist, wird der unter Schritt 7 festgelegte Wert für die Entwicklungsumgebung eingetragen (in diesem Beispiel QuelleEntwicklung)

Zum Schluss wechsle ich zur Konfiguration Produktiv und betrachte den Verbindungsmanager für die Quelldatenbank (Abbildung 12). Dieser hat sich mit dem Wechsel der Konfiguration entsprechend geändert.
 

Abbildung 12: Verbindungs-Manager für Quelldatenbank

 

Fazit

Einen Vorteil bei der Verwendung von Konfigurationen sehe ich darin, dass man das Paket nicht mehr wie im Paketbereitstellungsmodell Öffnen und Schließen muss (nachdem man im Verbindungsmanager definiert hat, wo sich die entsprechenden Konfigurationseinstellungen befinden). Außerdem werden die Parameterwerte entsprechend der ausgewählten Konfiguration direkt in die SSISDB übertragen.
 
Auf der anderen Seite handelt es sich hier natürlich um ein triviales Beispiel. Ich musste ausschließlich sechs Einträge für Quell- und Zieldatenbank für die drei Konfigurationen vornehmen. Mit dem Erstellen und Verwalten mehrerer Parameter wird die hier vorgestellte Vorgehensweise entsprechend aufwändig.
 
Alternativ besteht die Möglichkeit, weiterhin die Paketkonfiguration im Projektbereitstellungsmodell zu verwenden. Da sich die Vorgehensweise gegenüber der Paketbereitstellung geändert hat, gehe ich auf dieses Thema in einem der nächsten Blogbeiträge ein.
 
Wenn dieser Beitrag hilfreich war, Ihr Ergänzungen habt oder ein anderes Vorgehen vorzieht, lasst es mich über die Kommentarfunktion wissen. J

Schreibe einen Kommentar