Ausführen desselben SSIS-Pakets mit unterschiedlichen Parametern zu unterschiedlichen Zeitpunkten

9

Ich habe ein SSIS-Paket, das abends um 20 Uhr für das Jahr 2011 läuft.

Ich möchte das gleiche Paket um 20.30 Uhr für das Jahr 2010 laufen lassen.

Ich habe eine SSIS-Paket-Konfigurationsdatei erstellt und akzeptiere das "Jahr" als Parameter. Immer wenn ich laufe, muss ich eine Datei öffnen, den Wert ändern und ausführen.

Ist es möglich, den Zeitplan einzurichten und den Jahreswert dynamisch festzulegen?

Oder die Verwendung von 2 verschiedenen Konfigurationsdateien ist die einzige Lösung?

Danke allen.

    
TTCG 05.12.2011, 11:50
quelle

1 Antwort

17

Die Herausforderung bei der Verwendung eines Konfigurationsdatei-Ansatzes besteht darin, dass Sie die Datei ständig ändern müssen. SSIS würde die Konfigurationsdatei nach dem Start nicht neu laden, so dass Sie möglicherweise 8:05 und 20:35 Jobs haben, die Konfigurationsdateien austauschen, aber das wird unordentlich und bricht irgendwann ab.

Ich würde diese Situation mit Befehlszeilenvariablen behandeln ( / set-Option in dtexec ). Wenn Sie das Paket über die Befehlszeile ausführen, sieht es ungefähr so ​​aus: dtexec.exe /file MyPackage.dtsx Auch wenn Sie SQL Agent verwenden, werden im Hintergrund die Befehlszeilenargumente erstellt.

Bei diesem Ansatz wird davon ausgegangen, dass Sie zwei verschiedene Jobs erstellen (gegenüber 1 Jobs, die 2x pro Tag geplant sind). AgentMyPackage2011 hat einen Jobschritt von SSIS, der zu

führt
  • dtexec /file MyPackage.dtsx /Set \Package.Variables[User::Year].Properties[Value];\"2011\"

und AgentMyPackage2012 hat einen Jobschritt von SSIS, der zu

führt
  • dtexec /file MyPackage.dtsx /Set \Package.Variables[User::Year].Properties[Value];\"2012\"

Über die GUI würde es ungefähr so ​​aussehen

Es gibt keine GUI oder Selektor für die Eigenschaft, die Sie konfigurieren möchten. Da Sie jedoch bereits eine .dtsConfig-Datei für Ihr Paket erstellt haben, öffnen Sie diese Datei und suchen Sie nach einem Abschnitt wie

%Vor%

Die Datei hat bereits den Pfad zu dem "Ding", das Sie zu konfigurieren versuchen, also stanzen Sie das in Ihr aufrufendes Programm und deaktivieren Sie dann den Jahr-Teil der Paketkonfiguration.

Schließlich ein Link zu SSIS Configuration Precedence , da Unterschiede in 2005 bestehen gegen 2008 Modell. Ich sehe Sie in Ihrem Ticket 2008 angegeben, aber für zukünftige Leser, wenn Sie sowohl / SET und eine Konfigurationsquelle (XML, SQL Server, Registrierung, Umgebungsvariable) verwenden, variiert die Reihenfolge der Vorgänge zwischen den Versionen.

    
billinkc 05.12.2011, 13:53
quelle