Adatforrások cseréje futásidőben (SSIS package-ek dinamikus konfigurálása)
Üzleti intelligencia (BI) megoldások vagy adattárház építése során gyakorta tesztadatokkal, tesztszervereken, tesztszerverekről dolgozunk, majd a sikeres fejlesztési fázis lezárulta után térünk át az éles környezetre.
Ezért célunk, hogy olyan adattárház töltő SSIS package-eket fejlesszünk, amelyeket egyszerűen, a SSIS package-ek módosítása nélkül futtathatók mindkét környezetben. Ehhez pedig az szükséges, hogy az adatforrások tulajdonságait (a connection string-et) dinamikusan változtathassuk.
A fenti problémát SQL 2000-ben kétféleképpen is megoldhattuk:
UDL File
A legelterjedtebb SQL Server 2000-es megoldás az volt, hogy a connection stringet kiraktuk egy úgynevezett UDL fájlba, és a connection-t úgy állítottuk be, hogy futás előtt mindig onnan olvassa ki a szükséges adatforrás információkat. (UDL fájlt a következőképpen tudunk létrehozni: Létrehozunk egy üres text fájlt, és a kiterjesztését megváltoztatjuk *.UDL-re. Ezután duplaklikk a fájlon és feljön egy varázsló, amely segítségével megszerkeszthetjük a sztringet)
Update: A fenti módszer Windows Vista alatt nem működik... (2006. december 17.)
Dinamic Properties Task
A Dinamic Properties Task segítségével a Connection string-et futás közben is változtathattuk. Segítségével olyan rekurzív SSIS package-eket hozhattunk létre, amelyek önmagukat hívták meg, úgy, hogy hívás előtt átírták saját maguk Connection string-jét.
Szumma szummárum futás közben el tudtuk dönteni, hogy melyik szerverhez, vagy adatbázishoz akartunk kapcsolódni
SQL Server 2005 Integration Services (SSIS)
Az Integration Service -ben megszűnt a Dinamic Properties Task. Sajnos. Bár lehetőségünk továbbra is van, hogy egyes task-ok tulajdonságát futásidőben megváltoztassuk (Expression), de ez nem a jó öreg Dinamic Properties Task. Azzal ugyanis a DTS tetszőleges objektumának tulajdonságát megváltoztathattuk. Az "Expression" azonban az objektumokhoz tartozik, és nem minden objektumnak van "Expression" meghatározási lehetősége. Így az adatforrásnak sincs.
Szerencsére arra van lehetőségünk, hogy futás előtt konfiguráljuk SSIS package-einket. Létrehozható egy olyan *.dtsConfig konfigurációs XML fájl, amelyből az SSIS ki tudja olvasni induló beállításait. Így azt is, hogy az adatforrások melyik szerverre, adatbázisra mutassanak. (Jobb egér az Integration Services (SSIS) package üres területén, Package Configuration. Add. és megjelenik a varázsló)
A konfigurációs XML fájlt legyártja nekünk az SSIS. Ezt követően már csak a megfelelő tag-ek közti tartalmat kell kicserélnünk (pl. szerver neve) és következő futáskor az SSIS package már az új szerverhez fog kapcsolódni.
Kővári Attila - BI projekt
Új hozzászólás