我們知道MS的SSIS是通過包對象來管理ETL的,通過我們完成一個ETL任務之后,是需要對包的相關屬性進行配置的(說白了就是生成配置文件),以便於在包部署在服務器之后動態的修改的配置信息,免得重新修改原始的SSIS包;在某些情況下甚至是無法修改原始的SSIS包,例如SSIS原始包不在一個服務器之上,這中情況下就需要對包的配置文件進行修改以完成某些操作。包配置信息還可以放在數據庫中。
將SSIS包部署在服務器(SQL Server)上之后,就可以在服務器上對包進行操作。其實將包部署在服務器上是有多種方法的:
這個我們稍后會介紹,先來介紹怎樣給SSIS包生成配置文件(以常見的XML配置文件為例),具體的包執行的控制流和數據流等內容讀者可以自定義;
下面的步驟就很簡單了,最后會生成一個SSIS包配置事例-配置文件.dtsConfig配置文件:其中<ConfiguredValue> 321 </ConfiguredValue> 是修改過的錯誤鏈接信息;默認是空值,作為測試,正確的密碼為123;
<?xml version="1.0"?>
<DTSConfiguration>
<DTSConfigurationHeading>
<DTSConfigurationFileInfo GeneratedBy="win7-PC\Administrator" GeneratedFromPackageName="SSIS包配置事例" GeneratedFromPackageID="{8EBB6148-F3EE-44A6-AA86-EBDDB5CA5EE4}" GeneratedDate="2017/2/6 21:22:04"/>
</DTSConfigurationHeading>
<Configuration ConfiguredType="Property" Path="\Package.Connections[YZSY].Properties[Password]" ValueType="String">
<ConfiguredValue> 321 </ConfiguredValue>
</Configuration>
</DTSConfiguration>
注意在選擇生成的配置文件內容時,選擇你在實際項目中需要修改的屬性(這里僅僅選擇了屬性Password)即可,有了配置文件,在運行包的時候(通常是在服務上)就可以選擇,運行時包讀取的是原來的配置信息還是配置文件中的信息:
最終因為密碼錯誤而運行失敗。以上是根據配置文件中的信息運行包的導致錯誤出現,
下面根據原始配置信息,也就是默認的運行信息進行運行:
注意,這里是Windows帳號,執行結果反饋:
細心的讀者可能發現了以上兩種在服務器上運行包的地方不同,一個是在文件系統,一個是在SSIS的目錄,兩者有什么不同?前者只能運行本機上的SSIS包,后者可以是不同機器;且后者會有運行報告分析,這是我們需要的。
這里我們就要解釋以下本文開始的提到的4中不同SSIS部署方式:
1、SQL Server:是部署在里的文件夾下,跟SSIS包存儲區的部署方式相同,直接右鍵導入包即可。
2、SSIS包存儲區:是不是在這里的文件下,也是通過導入的方式即可。
3、SSIS目錄:是保存在這里的目錄,並不是通過導入的而是通過,SSIS原始項目生成的:
,生成的文件:
雙擊點開,即可打開部署向導,
最終將包部署在服務器上,這種方式的部署為本人推薦的方式。
4、文件系統:其實並沒有部署在服務器,這形式通常是在建立作業時之間引入原始的SSIS包文件。