SSIS包配置


  SQL ServerIntegration Services 提供可用於在運行時更新屬性值的包配置。配置是添加到已完成包中的屬性/值對。通常,在包開發期間您在包對象上創建包設置屬性,然后將配置添加到包中。當包運行時,它從配置中獲取新的屬性值。例如,通過使用配置,您可以更改連接管理器的連接字符串,或者更新變量的值。

包配置具有下列優點:

  • 使用配置可以更輕松地將包從開發環境轉移到生產環境中。例如,配置可以更新源文件的路徑,或者更改數據庫或服務器的名稱。
  • 將包部署到多台不同的服務器時,配置非常有用。例如,用於每個已部署包的配置中的變量可以包含不同的磁盤空間,並且如果可用磁盤空間不滿足此值,包將不會運行。
  • 配置可以使包更加靈活。例如,配置可以更新在屬性表達式中使用的變量的值。

Integration Services 支持幾種不同的存儲包配置(例如 XML 文件、SQL Server 數據庫中的表以及環境變量和包變量)的方法。

每個配置都是一個屬性/值對。XML 配置文件和 SQL Server 配置類型可以包括多個配置。

一 xml配置文件

   選擇SSIS菜單—>包配置,打開如下窗口,包配置就從這里開始配置。

 

選擇啟用包配置復選,然后單擊添加按鈕,如圖:

1. [配置類型]下拉列表框中可以看出,有多種類型的包配置。我們在這里選擇“XML配置文件”

2.選擇直接指定配置設置

3.單擊瀏覽將配置文件存放到指定的路徑。

配置文件默認為”.dtsconfig”類型,其文件格式時標准的XML格式。Integration  Services 對配置文件的擴展名沒有嚴格的規定。如果把擴展名改為.txt、.xml等都沒有關系。單擊[下一步]按鈕,選擇配置需要的屬性了。如圖:

 

在左邊的對話框中,我們可以根據需要勾選要配置的屬性,當選中一個屬性的時候,該屬性的默認值就會在右邊屬性特性框中,這個值是可以改變的。完成屬性更改后,單擊下一步按鈕,如圖:

 

輸入[配置名稱],點擊完成,XML的配置就這樣輕松地完成了。在包配置組織程序框中將會出現如下圖顯示。然后單擊關閉按鈕,整個包配置的過程就結束。

我們轉到配置文件存放的目錄,找到剛才的配置文件"SqlConnectionString.dtsconfig ",看看它象什么樣子:

<?xml version="1.0"?>

<DTSConfiguration>

      <DTSConfigurationHeading>

<DTSConfigurationFileInfo GeneratedBy="******" GeneratedFromPackageName="ReadRecommendation" GeneratedFromPackageID="{47D1A86F-A1E0-4633-85B0-323C027DE88F}" GeneratedDate="2011/10/28 10:00:21"/>

      </DTSConfigurationHeading>

      <Configuration ConfiguredType="Property" Path="\Package.Connections[RecommendationDB].Properties[ConnectionString]" ValueType="String">

           <ConfiguredValue>Data Source=******;User ID=****;Initial Catalog=RecommendationDB;Provider=SQLNCLI10.1;Auto Translate=False;Application Name=SSIS-ReadRecommendation;</ConfiguredValue>

      </Configuration>

      <Configuration ConfiguredType="Property" Path="\Package.Connections[RecommendationDB].Properties[Password]" ValueType="String">

           <ConfiguredValue>******</ConfiguredValue>

      </Configuration>

</DTSConfiguration>

    這個配置文件中,包含數據庫的連接方式,如果需要修改數據庫連接只要更改相應的屬性就可以搞定了。

二、SQL Service配置

  這也是我們常用的配置方式之一,配置方式與XML配置大同小異,只是最后的配置屬性存儲到SQL Service數據庫中。

 

在[配置類型]下拉列表框中,選擇[SQL Server ],下面的配置界面也隨着發生了變化。

[連接],即SQL Server 即數據庫的連接,如果從下拉列表框中,找不到對應的連接,點擊[新增],就可以創建一個新的連接,這與在連接管理器中,創建OLE DB 連接是一樣的。

[配置表(A)],即配置屬性存放的Table ,如果這個Table 沒有事先創建好,點擊[新建],系統會默認給出其如下SQL語句,點擊[確定],Table 就創建完成了。 

CREATE TABLE [dbo].[SSIS Configurations]
(
    ConfigurationFilter NVARCHAR(255) NOT NULL,
    ConfiguredValue NVARCHAR(255) NULL,
    PackagePath NVARCHAR(255) NOT NULL,
    ConfiguredValueType NVARCHAR(20) NOT NULL
)

[配置篩選器(F)]:這個很關鍵,它是區分每個包的配置屬性的key 值,也就是說,如果一個Table 中,存放有多個包的配置屬性的時候,每一個包就是根據這個這個key 值來進行過濾的,所以不同的包,應該有不同的key 值。[下一步],選擇要配置的屬性,與上面講的[XML配置文件]的處理方式一致了。下面,我們回到SQL Server 中,找出剛才創建的記錄,看看它又是啥面貌:

 三、父包變量

 父包變量的定義也非常簡單,打開包配置向導,如下圖:

 

[配置類型]:選擇“父包變量”。

[父變量]:這里輸入父包中的變量的名稱。

[下一步],選擇父包變量映射的屬性名稱,最后點擊完成,就會獲得如下圖所示的效果。 

 我們常見的包配置就這些了,環境變量、注冊表這兩種類型很少用到,這里就不多講了。 

  包配置給包的部署帶來了非常大的方便,最好的方式是每個服務器使用一個配置文件。但是,從包的配置界面可以看出,一個包可以應用多個配置文件,每個包配置按照[包配置組織程序]中顯示的順序應用(父包變量除外),如果一個配置中有一項失敗了,它只會發出警告,也不會引起包錯誤;反之,一個配置文件也可以應用到多個包中,如果我們靈活應用,包的無縫移置,也就不再是神話了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM