封裝組態
更新: 2006 年 7 月 17 日
SQL Server 2005 Integration Services (SSIS) 提供可用以在執行階段更新屬性值的封裝組態。組態是您加入已完成封裝的一組屬性/值配對。一般而言,您建立封裝、在封裝開發期間設定封裝物件的屬性,然後將組態加入至封裝。當封裝執行時,它會從組態取得新的屬性值;舉例來說,經由使用組態,您可以變更連接管理員的連接字串,或更新變數的值。
封裝組態提供下列優點:
- 組態會使將封裝從開發環境移至實際執行環境更為容易。例如,組態可以更新來源檔案的路徑,或者變更資料庫或伺服器的名稱。
- 組態在您將封裝部署到許多不同的伺服器時非常有用。例如,組態中每個已部署封裝的變數都可包含不同的磁碟空間值,如果可用磁碟空間不符合這個值,封裝就不會執行。
- 組態使封裝更有彈性。例如,組態可以更新屬性運算式中使用的變數值。
Integration Services 支援使用幾種不同的方法儲存封裝組態,例如 XML 檔案、SQL Server 資料庫中的資料表,以及環境和封裝變數。
每個組態都是屬性/值配對。XML 組態檔和 SQL Server 組態類型可以包含多重組態。
當您建立用以安裝封裝的封裝部署公用程式時,會包含這些組態。在安裝封裝時,您可以在封裝的安裝過程中更新這些組態。
附註: |
---|
若要更加瞭解此章節中所解說的概念,請參閱<建立簡易 ETL 封裝教學課程>的<部署封裝教學課程>以及<第 3 課:加入封裝組態>。 |
封裝組態類型
下表描述封裝組態類型。
類型 | 描述 |
---|---|
XML 組態檔 |
XML 檔案包含組態。XML 檔案可以包含多重組態。 |
環境變數 |
環境變數包含組態。 |
登錄項目 |
登錄項目包含組態。 |
父封裝變數 |
封裝中的變數包含組態。這個組態類型通常用來更新子封裝中的屬性。 |
SQL Server 資料表 |
SQL Server 資料庫中的資料表包含組態。資料表可以包含多重組態。 |
XML 組態檔
如果選取 [XML 組態檔] 組態類型,您可以建立新的組態檔、重複使用現有的檔案並加入新組態,或者重複使用現有的檔案但覆寫現有的檔案內容。
XML 組態檔包含兩個區段:
- 包含組態檔相關資訊的標題。此項目包含諸如檔案建立時間和產生檔案之使用者的姓名等屬性。
- 包含每個組態相關資訊的組態項目。此項目包含諸如屬性 (Property) 路徑和屬性 (Property) 的已設定值等屬性 (Attribute)。
下面的 XML 程式碼會示範 XML 組態檔的語法。這個範例會示範名為 MyVar
之整數變數的 Value 屬性組態。
<?xml version="1.0"?>
<DTSConfiguration>
<DTSConfigurationHeading>
<DTSConfigurationFileInfo
GeneratedBy="DomainName\UserName"
GeneratedFromPackageName="Package"
GeneratedFromPackageID="{2AF06766-817A-4E28-9878-0DE37A150648}"
GeneratedDate="2/01/2005 5:58:09 PM"/>
</DTSConfigurationHeading>
<Configuration ConfiguredType="Property" Path="\Package.Variables[User::MyVar].Value" ValueType="Int32">
<ConfiguredValue>0</ConfiguredValue>
</Configuration>
</DTSConfiguration>
登錄項目
如果您想使用登錄項目儲存組態,您可使用現有的機碼或在 HKEY_CURRENT_USER 中建立新的機碼。您所使用的登錄機碼必須具有名為 Value 的值。該值可以是 DWORD 或字串。
如果您選取 [登錄機碼] 組態類型,就要在 [登錄] 項目方塊中輸入登錄機碼的名稱。格式為 <registry key>。如果您想要使用不在 HKEY_CURRENT_USER 根目錄中的登錄機碼,請使用 <registry key\registry key\...> 格式識別該機碼。例如,若要使用位於 SSISPackages 中的 MyPackage 機碼,請輸入 SSISPackages\MyPackage。
SQL Server
如果選取 [SQL Server] 組態類型,則需要指定要儲存組態之 SQL Server 資料庫的連接。您可以將組態儲存至現有的資料表,或者在指定的資料庫中建立新的資料表。
下列 SQL 陳述式顯示 [封裝組態精靈] 提供的預設 CREATE 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
)
您提供給組態的名稱為 ConfigurationFilter 資料行中儲存的值。
直接和間接組態
Integration Services 提供直接和間接組態。如果您直接指定組態,Integration Services 便會在組態項目和封裝物件屬性之間建立直接的連結。來源的位置沒有變更時,使用直接組態是較好的選擇。例如,如果您確定封裝中的所有部署都使用相同的檔案路徑,便可指定 XML 組態檔。
間接組態會使用環境變數。與直接指定組態設定的方法不同,間接組態會指向包含組態值的環境變數。如果組態的位置可以針對封裝的每個部署進行變更,則使用間接組態是較好的選擇。
請參閱
工作
說明及資訊
變更歷程記錄
版本 | 歷程記錄 |
---|---|
2006 年 7 月 17 日 |
|
2006 年 4 月 14 日 |
|