使用已啟用 Azure 的 dtexec 公用程式來執行 SQL Server Integration Services 套件
適用於:Azure Data Factory Azure Synapse Analytics
提示
試用 Microsoft Fabric 中的 Data Factory,這是適用於企業的全方位分析解決方案。 Microsoft Fabric 涵蓋從資料移動到資料科學、即時分析、商業智慧和報告的所有項目。 了解如何免費開始新的試用!
本文描述已啟用 Azure 的 dtexec (AzureDTExec) 命令提示字元公用程式。 其用來在 Azure Data Factory 中執行 Azure-SSIS Integration Runtime (IR) 上的 SQL Server Integration Services (SSIS) 套件。
傳統的 dtexec 公用程式隨附於 SQL Server。 如需詳細資訊,請參閱 dtexec 公用程式。 其通常由協力廠商協調器或排程器 (例如 ActiveBatch 和 Control-M) 叫用,以在內部部署執行 SSIS 套件。
新式 AzureDTExec 公用程式隨附於 SQL Server Management Studio (SSMS) 工具。 其也可以由協力廠商協調器或排程器叫用,以在 Azure 中執行 SSIS 套件。 其有助於將 SSIS 套件隨即轉移或移轉至雲端。 移轉後,如果您想要在日常作業中持續使用協力廠商協調器或排程器,其現在可以叫用 AzureDTExec,而不是 dtexec。
AzureDTExec 會在 Data Factory 管線中將您的套件當作 SSIS 套件活動執行。 如需詳細資訊,請參閱將 SSIS 套件當作 Azure Data Factory 活動執行。
您可以透過 SSMS 設定 AzureDTExec,以使用 Microsoft Entra 應用程式,在資料處理站中產生管線。 其也可以設定為存取檔案系統、檔案共用或您儲存套件所在的 Azure 檔案儲存體。 根據您為其叫用選項提供的值,AzureDTExec 會產生並執行唯一的 Data Factory 管線,其中具有 [執行 SSIS 套件] 活動。 針對其選項叫用具有相同值的 AzureDTExec 會重新執行現有的管線。
必要條件
若要使用 AzureDTExec,請下載並安裝最新版本的 SSMS,即 18.3 版或更新版本。 請從此網站下載。
設定 AzureDTExec 公用程式
在本機電腦上安裝 SSMS 也會安裝 AzureDTExec。 若要設定其設定,請使用 [以系統管理員身分執行] 選項啟動 SSMS。 然後選取 [工具]>[移轉至 Azure]>[設定已啟用 Azure 的 DTExec]。
此動作會開啟需要以系統管理權限開啟的 [AzureDTExecConfig] 視窗,以便寫入至 AzureDTExec.settings 檔案。 如果您未以管理員身分執行 SSMS,則會開啟 [使用者帳戶控制 (UAC)] 視窗。 輸入您的管理員密碼以提高您的權限。
在 [AzureDTExecConfig] 視窗中,輸入您的組態設定,如下所示:
- ApplicationId:輸入您使用正確權限所建立 Microsoft Entra 應用程式的唯一識別碼,以在資料處理站中產生管線。 如需詳細資訊,請參閱透過 Azure 入口網站建立 Microsoft Entra 應用程式和服務主體。
- AuthenticationKey:輸入 Microsoft Entra 應用程式的驗證金鑰。
- TenantId:輸入建立 Microsoft Entra 應用程式所在的 Microsoft Entra 租用戶的唯一識別碼。
- DataFactory:輸入您的資料處理站名稱,系統會在其中依據您叫用 AzureDTExec 時提供的選項值,產生具有執行 SSIS 封裝活動的唯一管線。
- IRName:輸入您資料處理站中的 Azure-SSIS IR 名稱,當您叫用 AzureDTExec 時,會執行其通用命名慣例 (UNC) 路徑中指定的套件。
- PipelineNameHashStrLen:輸入叫用 AzureDTExec 時,要從您所提供選項值產生的雜湊字串長度。 字串用來形成 Data Factory 管線的唯一名稱,這些管線會在 Azure-SSIS IR 上執行您的套件。 通常長度為 32 個字元就夠用了。
- ResourceGroup:輸入在其中建立了資料處理站的 Azure 資源群組名稱。
- SubscriptionId:輸入在其中建立了資料處理站的 Azure 訂用帳戶唯一識別碼。
- LogAccessDomain:輸入網域認證,以在寫入記錄檔時存取 UNC 路徑中的記錄資料夾,這在已指定 LogPath 且 LogLevel 不為 null 時必須存在。
- LogAccessPassword:輸入密碼認證,以在寫入記錄檔時存取 UNC 路徑中的記錄資料夾,這在已指定 LogPath 且 LogLevel 不為 null 時必須存在。
- LogAccessUserName:輸入使用者名稱認證,以在寫入記錄檔時存取 UNC 路徑中的記錄資料夾,這在已指定 LogPath 且 LogLevel 不為 null 時必須存在。
- LogLevel:針對 Azure SSIS IR 上的套件執行,輸入從預先定義的 [null]、[基本]、[詳細資訊] 或 [效能] 選項中選取的記錄範圍。
- LogPath:輸入記錄資料夾的 UNC 路徑,Azure-SSIS IR 上的套件執行記錄檔會寫入其中。
- PackageAccessDomain:輸入網域認證,以存取您在叫用 AzureDTExec 時指定的 UNC 路徑中套件。
- PackageAccessPassword:輸入密碼認證,以存取您在叫用 AzureDTExec 時指定的 UNC 路徑中套件。
- PackageAccessUserName:輸入使用者名稱認證,以存取您在叫用 AzureDTExec 時指定的 UNC 路徑中套件。
若要將您的套件和記錄檔儲存在檔案系統或檔案共用內部部署中,請將您的 Azure-SSIS IR 加入連線至內部部署網路的虛擬網路,以便其可以擷取您的套件並寫入您的記錄檔。 如需詳細資訊,請參閱將 Azure-SSIS IR 加入至虛擬網路。
為了避免以純文字顯示寫入至 AzureDTExec.settings 檔案的敏感性值,我們會將其編碼為 Base64 編碼的字串。 當您叫用 AzureDTExec 時,所有 Base64 編碼字串都會解碼回其原始值。 您可以進一步保護 AzureDTExec.settings 檔案,方法是限制可存取此檔案的帳戶。
叫用 AzureDTExec 公用程式
您可以在命令列提示字元叫用 AzureDTExec,並在使用案例情節中提供特定選項的相關值。
此公用程式會安裝在 {SSMS Folder}\Common7\IDE\CommonExtensions\Microsoft\SSIS\150\Binn
。 您可以將其路徑新增至 'PATH' 環境變數,以便可從任何地方叫用該路徑。
> cd "C:\Program Files (x86)\Microsoft SQL Server Management Studio 18\Common7\IDE\CommonExtensions\Microsoft\SSIS\150\Binn"
> AzureDTExec.exe ^
/F \\MyStorageAccount.file.core.windows.net\MyFileShare\MyPackage.dtsx ^
/Conf \\MyStorageAccount.file.core.windows.net\MyFileShare\MyConfig.dtsConfig ^
/Conn "MyConnectionManager;Data Source=MyDatabaseServer.database.windows.net;User ID=MyAdminUsername;Password=MyAdminPassword;Initial Catalog=MyDatabase" ^
/Set \package.variables[MyVariable].Value;MyValue ^
/De MyEncryptionPassword
叫用 AzureDTExec 提供類似叫用 dtexec 的選項。 如需詳細資訊,請參閱 dtexec Utility。 以下是目前支援的選項:
- /F[ile]:載入儲存在檔案系統、檔案共用或Azure 檔案儲存體中的套件。 做為此選項的值,您可以在檔案系統、檔案共用或Azure 檔案儲存體中指定套件檔案 (其副檔名為 .dtsx) 的 UNC 路徑。 如果指定的 UNC 路徑包含任何空格,請以引號括住整個路徑。
- /Conf[igFile]:指定要從中擷取值的設定檔。 使用此選項時,您可以針對套件設定一個執行階段設定,此設定與設計階段所指定的設定不同。 您可以將不同的設定儲存在 XML 設定檔中,然後在您的套件執行之前載入這些設定。 如需相關資訊,請參閱 SSIS 套件設定。 若要指定此選項的值,請針對檔案系統、檔案共用或Azure 檔案儲存體中的設定檔 (其副檔名為 dtsConfig) 使用 UNC 路徑。 如果指定的 UNC 路徑包含任何空格,請以引號括住整個路徑。
- /Conn[ection]:指定套件中現有連接管理員的連接字串。 使用此選項,您可以針對套件中現有的連線管理員設定執行階段連接字串,其與設計階段指定的連接字串不同。 指定此選項的值,如下所示:
connection_manager_name_or_id;connection_string [[;connection_manager_name_or_id;connection_string]...]
。 - /Set:覆寫套件中參數、變數、屬性、容器、記錄提供者、Foreach 列舉值或連線的設定。 可以多次指定這個選項。 指定此選項的值,如下所示:
property_path;value
。 例如,\package.variables[counter].Value;1
將counter
變數的值覆寫為 1。 您可以使用 [套件設定] 精靈,為套件中您要覆寫其值的項目尋找、複製和貼上property_path
的值。 如需詳細資訊,請參閱套件設定精靈。 - /De[crypt]:針對您的套件設定使用 EncryptAllWithPassword/EncryptSensitiveWithPassword 保護層級設定的解密密碼。
注意
為其選項使用新值叫用 AzureDTExec 會產生新的管線,但選項 /De[cript] 除外。
相關內容
其中具有 [執行 SSIS 套件] 活動的唯一管線,在您叫用 AzureDTExec 時產生並執行之後,您可以在 Data Factory 入口網站上監視這些管線。 如果想要使用 Data Factory 協調/排程這些管線,您也可以將 Data Factory 觸發程序指派給這些管線。 如需詳細資訊,請參閱將 SSIS 套件當作 Data Factory 活動執行。
警告
產生的管線預期僅供 AzureDTExec 使用。 其屬性或參數未來可能會變更,因此請不要針對任何其他用途修改或重複使用這些屬性或參數。 修改可能會中斷 AzureDTExec。 如果發生這種情況,請刪除管線。 AzureDTExec 會在下次叫用時產生新的管線。