將自我裝載 IR 設定為 Azure-SSIS IR 的 Proxy

適用於:Azure Data Factory Azure Synapse Analytics

提示

試用 Microsoft Fabric 中的 Data Factory,這是適用於企業的全方位分析解決方案。 Microsoft Fabric 涵蓋從資料移動到資料科學、即時分析、商業智慧和報告的所有項目。 了解如何免費開始新的試用

本文說明如何在 Azure-SSIS Integration Runtime (Azure-SSIS IR) 上執行 SQL Server Integration Services (SSIS) 套件,並將自我裝載整合執行階段 (自我裝載 IR) 設定為 Proxy。

使用此功能,您可以存取資料並在內部部署執行工作,而不需要將 Azure-SSIS IR 加入虛擬網路。 該功能適用於您的公司網路設定太複雜或原則太嚴格,而無法將 Azure-SSIS IR 插入其中的情況。

此功能目前只能在 SSIS 資料流程工作和執行 SQL/處理序工作上啟用。

在資料流程工作上啟用時,此功能會在適用的情況下將工作細分為兩個暫存工作:

  • 內部部署暫存工作:此工作所執行的資料流程元件會連線到自我裝載 IR 上的內部部署資料存放區。 它會在內部部署資料存放區與 Azure Blob 儲存體中的暫存區域之間來回移動資料。
  • 雲端暫存工作:此工作所執行資料流程元件不會連線到 Azure-SSIS IR 上的內部部署資料存放區。 它會在 Azure Blob 儲存體中的暫存區域與雲端資料存放區之間來回移動資料。

如果您的資料流程工作將資料從內部部署移至雲端,則第一個暫存工作和第二個暫存工作分別會是內部部署暫存工作和雲端暫存工作。 如果您的資料流程工作將資料從雲端移至內部部署,則第一個暫存工作和第二個暫存工作分別會是雲端暫存工作和內部部署暫存工作。 如果您的資料流程工作將資料從內部部署移至內部部署,則第一個暫存工作和第二個暫存工作都會是內部部署暫存工作。 如果您的資料流程工作將資料從雲端移至雲端,則此功能不適用。

在執行 SQL/處理序工作上啟用時,此功能會在自我裝載 IR 上執行這些工作。

此功能的其他優點和能力還包括可讓您在 Azure-SSIS IR 尚不支援的區域中設定自我裝載 IR,以及在資料來源的防火牆上允許自我裝載 IR 的公用靜態 IP 位址。

準備自我裝載 IR

若要使用此功能,您必須先建立資料處理站,並在其中設定 Azure-SSIS IR。 如果您尚未這麼做,請遵循設定 Azure-SSIS IR 中的指示。

您接著會在設定 Azure-SSIS IR 的相同資料處理站中,設定自我裝載 IR。 若要這樣做,請參閱建立自我裝載 IR

最後,您會在內部部署電腦或 Azure 虛擬機器 (VM) 上,下載並安裝最新版的自我裝載 IR 以及其他驅動程式和執行階段,如下所示:

  • 下載並安裝最新版的自我裝載 IR

  • 如果自我裝載 IR 版本為 5.28.0 或更新版本,請在自我裝載整合執行階段節點上啟用 SSIS 套件執行。

    ExecuteSsisPackage 屬性是從自我裝載 IR 5.28.0 版新引進的屬性。 使用下列自我裝載 IR 命令列動作,以啟用或停用 SSIS 套件執行:

    • -EnableExecuteSsisPackage 在自我裝載 IR 節點上啟用 SSIS 套件執行。

    • -DisableExecuteSsisPackage 在自我裝載 IR 節點上停用 SSIS 套件執行。

    • -GetExecuteSsisPackage

    如需自我裝載 IR 命令列詳細資料,請參閱透過本機 PowerShell 設定現有的自我裝載 IR

    透過 5.28.0 版或更新版本全新安裝的自我裝載 IR 節點,ExecuteSsisPackage 屬性預設為停用

    現有的自我裝載 IR 節點已更新為 5.28.0 版或更新版本,ExecuteSsisPackage 屬性預設為啟用

  • 如果您在套件中使用物件連結與嵌入資料庫 (OLEDB)、開放式資料庫連接 (ODBC) 或 ADO.NET 連接器,請在安裝自我裝載 IR 的相同電腦上,下載並安裝相關的驅動程式 (如果您尚未這麼做)。

    如果您使用舊版 OLE DB Driver for SQL Server (SQL Server Native Client [SQLNCLI]),請下載 64 位元版本

    如果您使用最新版的 OLE DB Driver for SQL Server (MSOLEDBSQL),請下載 64 位元版本

    如果您使用適用於其他資料庫系統 (例如 PostgreSQL、MySQL、Oracle 等) 的 OLEDB/ODBC/ADO.NET 驅動程式,您可以從其網站下載 64 位元版本。

  • 如果您在套件中使用來自 Azure Feature Pack 的資料流程元件,請在安裝自我裝載 IR 的相同電腦上,下載並安裝適用於 SQL Server 2017 的 Azure Feature Pack (如果您尚未這麼做)。

  • 如果您尚未這麼做,請在安裝自我裝載 IR 的相同電腦上,下載並安裝 64 位元版本的 Visual C++ (VC) 執行階段

為內部部署工作啟用 Windows 驗證

如果自我裝載 IR 上的內部部署暫存工作和執行 SQL/處理序工作需要 Windows 驗證,您也必須在 Azure-SSIS IR 上設定 Windows 驗證功能

您的內部部署暫存工作和執行 SQL/處理序工作會使用自我裝載 IR 服務帳戶 (預設為 NT SERVICE\DIAHostService) 來叫用,而您的資料存放區會使用 Windows 驗證帳戶來存取。 這兩個帳戶都需要獲指派特定安全性原則。 在自我裝載 IR 電腦上,前往 [本機安全性原則]>[本機原則]>[使用者權限指派],然後執行下列動作:

  1. 將 [調整處理序的記憶體配額] 和 [取代處理序層級權杖] 原則指派給自我裝載 IR 服務帳戶。 當您使用預設服務帳戶安裝自我裝載 IR 時,應該會自動進行此作業。 如果沒有,請手動指派這些原則。 如果您使用不同的服務帳戶,請為其指派相同的原則。

  2. 將 [以服務方式登入] 原則指派給 Windows 驗證帳戶。

準備 Azure Blob 儲存體連結服務以進行暫存

如果您尚未這麼做,請在設定 Azure-SSIS IR 的相同資料處理站中,建立 Azure Blob 儲存體連結服務。 若要這樣做,請參閱建立 Azure Data Factory 連結服務。 請務必執行下列動作:

  • 針對 [資料存放區],選取 [Azure Blob 儲存體]
  • 針對 [透過整合執行階段連線],選取 [AutoResolveIntegrationRuntime] (而非您的自我裝載 IR),讓我們可以忽略它,並改用您的 Azure-SSIS IR 來擷取 Azure Blob 儲存體的存取認證。
  • 針對 [驗證方法],選取 [帳戶金鑰]、[SAS URI]、[服務主體]、[受控識別] 或 [使用者指派的受控識別]

提示

如果資料處理站執行個體已啟用 Git,則不會立即發佈不含金鑰驗證的連結服務,這表示您無法儲存與功能分支中連結服務相依的整合執行階段。 使用帳戶金鑰或 SAS URI 進行驗證,將會立即發佈連結的服務。

提示

如果您選取 [服務主體] 方法,請至少為您的服務主體授與「儲存體 Blob 資料參與者」角色。 如需詳細資訊,請參閱 Azure Blob 儲存體連接器。 如果您選取 [受控識別]/[使用者指派的受控識別] 方法,請授與 ADF 的指定系統/使用者指派受控識別,以存取 Azure Blob 儲存體。 如需詳細資訊,請參閱使用 Microsoft Entra 驗證搭配 ADF 的指定系統/使用者指派受控識別,以存取 Azure Blob 儲存體

Prepare the Azure Blob storage-linked service for staging

使用自我裝載 IR 作為 Proxy 來設定 Azure-SSIS IR

準備好您的自我裝載 IR 以及用於暫存的 Azure Blob 儲存體連結服務之後,您現在可以在資料處理站入口網站或應用程式中,使用自我裝載 IR 作為 Proxy 來設定新的或現有的 Azure-SSIS IR。 不過,在這麼做之前,如果您的現有 Azure-SSIS IR 已在執行中,您可以將它停止、進行編輯,再重新啟動。

  1. 在 [整合執行階段設定] 窗格中,選取 [繼續] 按鈕,以略過 [一般設定] 和 [部署設定] 頁面。

  2. 在 [進階設定] 頁面上,執行下列動作:

    1. 選取 [Set up Self-Hosted Integration Runtime as a proxy for your Azure-SSIS Integration Runtime] \(將自我裝載整合執行階段設定為 Azure-SSIS Integration Runtime 的 Proxy\) 核取方塊。

    2. 在 [自我裝載整合執行階段] 下拉式清單中,選取您現有的自我裝載 IR 作為 Azure-SSIS IR 的 Proxy。

    3. 在 [Staging storage linked service] \(暫存儲存體連結服務\) 下拉式清單中,選取您現有的 Azure Blob 儲存體連結服務,或建立新的連結服務以進行暫存。

    4. 在 [暫存路徑] 方塊中,指定所選 Azure 儲存體帳戶中的 Blob 容器,或將其保留空白,以便使用預設容器來進行暫存。

    5. 選取 [繼續] 按鈕。

    Advanced settings with a self-hosted IR

您也可以使用 PowerShell,以自我裝載 IR 作為 Proxy 來設定新的或現有的 Azure-SSIS IR。

$ResourceGroupName = "[your Azure resource group name]"
$DataFactoryName = "[your data factory name]"
$AzureSSISName = "[your Azure-SSIS IR name]"
# Self-hosted integration runtime info - This can be configured as a proxy for on-premises data access 
$DataProxyIntegrationRuntimeName = "" # OPTIONAL to configure a proxy for on-premises data access 
$DataProxyStagingLinkedServiceName = "" # OPTIONAL to configure a proxy for on-premises data access 
$DataProxyStagingPath = "" # OPTIONAL to configure a proxy for on-premises data access 

# Add self-hosted integration runtime parameters if you configure a proxy for on-premises data access
if(![string]::IsNullOrEmpty($DataProxyIntegrationRuntimeName) -and ![string]::IsNullOrEmpty($DataProxyStagingLinkedServiceName))
{
    Set-AzDataFactoryV2IntegrationRuntime -ResourceGroupName $ResourceGroupName `
        -DataFactoryName $DataFactoryName `
        -Name $AzureSSISName `
        -DataProxyIntegrationRuntimeName $DataProxyIntegrationRuntimeName `
        -DataProxyStagingLinkedServiceName $DataProxyStagingLinkedServiceName

    if(![string]::IsNullOrEmpty($DataProxyStagingPath))
    {
        Set-AzDataFactoryV2IntegrationRuntime -ResourceGroupName $ResourceGroupName `
            -DataFactoryName $DataFactoryName `
            -Name $AzureSSISName `
            -DataProxyStagingPath $DataProxyStagingPath
    }
}
Start-AzDataFactoryV2IntegrationRuntime -ResourceGroupName $ResourceGroupName `
    -DataFactoryName $DataFactoryName `
    -Name $AzureSSISName `
    -Force

啟用 SSIS 套件以使用 Proxy

藉由使用最新的 SSDT 作為適用於 Visual Studio 的 SSIS 專案延伸模組或獨立安裝程式,您可以在支援資料流程元件的連線管理員中找到新的 ConnectByProxy 屬性,並在執行 SQL/處理序工作中找到 ExecuteOnProxy 屬性。

當您設計新套件以包含資料流程工作及存取內部部署資料的元件時,您可以在相關連線管理員的 [屬性] 窗格中,將 ConnectByProxy 屬性設定為 True 來加以啟用。

當您設計新套件以包含在內部部署執行的執行 SQL/處理序工作時,您可以在相關工作本身的 [屬性] 窗格中,將 ExecuteOnProxy 屬性設定為 True 來加以啟用。

Enable ConnectByProxy/ExecuteOnProxy property

您也可以在執行現有套件時啟用 ConnectByProxy/ExecuteOnProxy 屬性,而不需要手動逐一變更。 有兩個選項:

  • 選項 A:開啟、重建及重新部署包含這些套件的專案,以在您的 Azure-SSIS IR 上執行最新的 SSDT。 然後,當您從 SSMS 執行套件時,您可以針對 [執行套件] 快顯視窗之 [連線管理員] 索引標籤上出現的相關連線管理員,將 ConnectByProxy 屬性設定為 True 來加以啟用。

    Enable ConnectByProxy/ExecuteOnProxy property2

    當您執行 Data Factory 管線中的套件時,您也可以針對 [執行 SSIS 套件活動] 之 [連線管理員] 索引標籤上出現的相關連線管理員,將 ConnectByProxy 屬性設定為 True 來加以啟用。

    Enable ConnectByProxy/ExecuteOnProxy property3

  • 選項 B:重新部署包含這些套件的專案,以在您的 SSIS IR 上執行。 然後,當您從 SSMS 執行套件時,您可以透過提供 ConnectByProxy/ExecuteOnProxy 屬性的屬性路徑 \Package.Connections[YourConnectionManagerName].Properties[ConnectByProxy]/\Package\YourExecuteSQLTaskName.Properties[ExecuteOnProxy]/\Package\YourExecuteProcessTaskName.Properties[ExecuteOnProxy],並將其設定為 True 來加以啟用,作為 [執行套件] 快顯視窗之 [進階] 索引標籤上的屬性覆寫。

    Enable ConnectByProxy/ExecuteOnProxy property4

    當您執行 Data Factory 管線中的套件時,您也可以透過提供 ConnectByProxy/ExecuteOnProxy 屬性的屬性路徑 \Package.Connections[YourConnectionManagerName].Properties[ConnectByProxy]/\Package\YourExecuteSQLTaskName.Properties[ExecuteOnProxy]/\Package\YourExecuteProcessTaskName.Properties[ExecuteOnProxy],並將其設定為 True 來加以啟用,作為 [執行 SSIS 套件活動] 之 [屬性覆寫] 索引標籤上的屬性覆寫。

    Enable ConnectByProxy/ExecuteOnProxy property5

對內部部署工作和雲端暫存工作進行偵錯

在您的自我裝載 IR 上,您可以在 C:\ProgramData\SSISTelemetry 資料夾中找到執行階段記錄,並在 C:\ProgramData\SSISTelemetry\ExecutionLog 資料夾中找到內部部署暫存工作和執行 SQL/處理序工作的執行記錄。 您可以根據是否將套件儲存在 SSISDB、啟用 Azure 監視器整合等,在 SSISDB、指定的記錄檔路徑或 Azure 監視器中找到雲端暫存工作的執行記錄。您也可以在雲端暫存工作的執行記錄中,找到內部部署暫存工作的唯一識別碼。

Unique ID of the first staging task

如果您已提出客戶支援票證,您可以在自我裝載 IR 上所安裝 [Microsoft Integration Runtime 設定管理員] 的 [診斷] 索引標籤上選取 [傳送記錄] 按鈕,傳送最近的作業/執行記錄以供我們調查。

內部部署工作和雲端暫存工作的計費

在自我裝載 IR 上執行的內部部署暫存工作和執行 SQL/處理序工作會分開計費,就像在自我裝載 IR 上執行的任何資料移動活動一樣。 這會在 Azure Data Factory Data Pipeline 定價一文中指定。

在 Azure-SSIS IR 上執行的雲端暫存工作不會分開計費,但您的執行中 Azure-SSIS IR 會依照 Azure-SSIS IR 定價一文中的指定來計費。

強制使用 TLS 1.2

如果您需要存取已設定為只使用最強式加密/最安全網路通訊協定 (TLS 1.2) 的資料存放區 (包括用於暫存的 Azure Blob 儲存體),您必須在自我裝載 IR 上只啟用 TLS 1.2,並同時停用較舊的 SSL/TLS 版本。 若要這樣做,您可以下載並執行我們在公開預覽 Blob 容器之 CustomSetupScript/UserScenarios/TLS 1.2 資料夾中所提供的 main.cmd 指令碼。 使用 Azure 儲存體總管,您可以輸入下列 SAS URI 來連線到我們的公開預覽 Blob 容器:

https://ssisazurefileshare.blob.core.windows.net/publicpreview?sp=rl&st=2020-03-25T04:00:00Z&se=2025-03-25T04:00:00Z&sv=2019-02-02&sr=c&sig=WAD3DATezJjhBCO3ezrQ7TUZ8syEUxZZtGIhhP6Pt4I%3D

目前的限制

  • 目前僅支援 Azure-SSIS IR Standard Edition 上內建/預先安裝的資料流程元件,但 Hadoop/HDFS/DQS 元件除外,請參閱 Azure-SSIS IR 上內建/預先安裝的所有元件
  • 目前僅支援以受控碼 (.NET Framework) 撰寫的自訂/第三方資料流程元件 - 目前不支援以機器碼 (C++) 撰寫的元件。
  • 目前不支援變更內部部署和雲端暫存工作中的變數值。
  • 變更內部部署暫存工作中類型物件的變數值不會反映在其他工作中。
  • 目前不支援 OLEDB 來源中的 ParameterMapping。 若要解決此問題,請使用 [來自變數的 SQL 命令] 作為 [AccessMode],並使用 [運算式] 在 SQL 命令中插入變數/參數。 舉例來說,請參閱可在我們公開預覽 Blob 容器之 the SelfHostedIRProxy/Limitations 資料夾中找到的 ParameterMappingSample.dtsx 套件。 使用 Azure 儲存體總管,您可以輸入上述 SAS URI 來連線到我們的公開預覽 Blob 容器。

將自我裝載 IR 設定為 Azure-SSIS IR 的 Proxy 之後,您就可以在 Data Factory 管線中以「執行 SSIS 套件」活動的形式部署和執行套件來存取資料,以及/或在內部部署執行任何 SQL 陳述式/處理序。 若要了解做法,請參閱在 Data Factory 管線中以「執行 SSIS 套件」活動的形式執行 SSIS 套件。 另請參閱我們的部落格:在 Azure Data Factory 中使用 SSIS 以 3 個簡易步驟隨處執行任何 SQL (英文) 和在 Azure Data Factory 中使用 SSIS 以 3 個簡易步驟隨處執行任何處理序 (英文)。