sql >> Databáze >  >> RDS >> Sqlserver

Spuštění stejného balíčku SSIS s různými parametry v různém čase

Problém s použitím přístupu konfiguračního souboru spočívá v tom, že byste museli soubor neustále upravovat. SSIS by znovu nenačetl konfigurační soubor po jeho spuštění, takže byste mohli mít úlohy ve 20:05 a 20:35, které vymění konfigurační soubory, ale to se v určitém okamžiku zamotá a přeruší.

Tuto situaci bych řešil pomocí proměnných příkazového řádku (/set option in dtexec ). Pokud byste balíček spouštěli z příkazového řádku, vypadalo by něco jako dtexec.exe /file MyPackage.dtsx I když používáte SQL Agent, v zákulisí vytváří tyto argumenty příkazového řádku.

Tento přístup předpokládá, že vytvoříte dvě různé úlohy (vs. 1 úloha naplánovaná 2x denně). AgentMyPackage2011 má krok úlohy SSIS, jehož výsledkem je

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

a AgentMyPackage2012 má krok úlohy SSIS, jehož výsledkem je

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

Přes GUI by to vypadalo nějak podobně

Pro vlastnost, kterou chcete konfigurovat, neexistuje žádné GUI ani selektor. Protože jste však již pro svůj balíček vytvořili soubor .dtsConfig, otevřete tento soubor a vyhledejte sekci jako

<Configuration ConfiguredType="Property" Path="\Package.Variables[User::Year].Properties[Value]" ValueType="Int32">
<ConfiguredValue>2009</ConfiguredValue>

Soubor již má cestu k „věci“, kterou se pokoušíte nakonfigurovat, tak, že ji vrazíte do svého volajícího programu a poté vypněte část konfigurace balíčku pro rok.

Nakonec odkaz na Prednost konfigurace SSIS protože existují rozdíly v modelu 2005 a 2008. Vidím, že jste ve svém lístku uvedli rok 2008, ale pro budoucí čtenáře, pokud používáte /SET i zdroj konfigurace (xml, sql server, registr, proměnná prostředí), pořadí operací se mezi verzemi liší.




  1. Řaďte ​​podle v rámci skupiny podle v Doktríně 2

  2. Testování zátěže Golang RESTful API způsobuje příliš mnoho databázových připojení

  3. Jak uložit nebo načíst sloupec pole pomocí režimu spánku

  4. vytvořit sloupec pro automatické datum v postgresql