Azure Data Factory 受控虛擬網路

適用於: Azure Data Factory Azure Synapse Analytics

提示

試用 Microsoft Fabric 中的 Data Factory,這是適用於企業的單一分析解決方案。 Microsoft Fabric 涵蓋從數據移動到數據科學、即時分析、商業智慧和報告等所有專案。 瞭解如何 免費啟動新的試用版

本文說明 Azure Data Factory 中的受控虛擬網路和受控私人端點。

受控虛擬網路

當您在 Data Factory 受控虛擬網路內建立 Azure 整合運行時間時,會使用受控虛擬網路布建整合運行時間。 它會使用私人端點安全地連線到支持的數據存放區。

在受控虛擬網路內建立整合運行時間可確保數據整合程式已隔離且安全。

使用受控虛擬網路的優點:

  • 透過受控虛擬網路,您可以將管理虛擬網路的負擔卸載至 Data Factory。 您不需要為整合運行時間建立子網,該子網最終可能會從虛擬網路使用許多私人IP,而且需要先前的網路基礎結構規劃。
  • 不需要深入的 Azure 網路知識,才能安全地進行數據整合。 相反地,對於數據工程師來說,開始使用安全的 ETL 會更簡單。
  • 受控虛擬網路以及受控私人端點可防範數據外洩。

目前,受控虛擬網路僅支援與 Data Factory 區域相同的區域。

注意

現有的全域整合運行時間無法切換至 Data Factory 受控虛擬網路中的整合運行時間,反之亦然。

Diagram that shows Data Factory managed virtual network architecture.

在資料處理站中啟用受控虛擬網路的方式有兩種:

  1. 在建立數據處理站期間啟用受控虛擬網路。

Screenshot of enabling managed virtual network during the creation of data factory.

  1. 在整合運行時間中啟用受控虛擬網路。

Screenshot of enabling managed virtual network in integration runtime

受控私人端點

受控私人端點是在 Data Factory 受控虛擬網路中建立的私人端點,可建立 Azure 資源的私人連結。 Data Factory 會代表您管理這些私人端點。

Data Factory 支援私人連結。 您可以使用 Azure 私人連結來存取 Azure 平臺即服務(PaaS)服務,例如 Azure 儲存體、Azure Cosmos DB 和 Azure Synapse Analytics。

當您使用私人連結時,數據存放區和受控虛擬網路之間的流量會完全透過 Microsoft 骨幹網路周遊。 私人鏈接可防範數據外泄風險。 您可以建立私人端點來建立資源的私人連結。

私人端點會使用受控虛擬網路中的私人IP位址,有效地將服務帶入其中。 私人端點會對應至 Azure 中的特定資源,而不是整個服務。 客戶可以限制其組織所核准之特定資源的連線能力。 如需詳細資訊,請參閱 私人連結和私人端點

注意

資源提供者 Microsoft.Network 必須註冊到您的訂用帳戶。

  1. 請確定您在數據處理站中啟用受控虛擬網路。
  2. 在 [管理中樞] 中建立新的受控私人端點。

Screenshot that shows new managed private endpoints.

  1. 當您在 Data Factory 中建立受控私人端點時,私人端點聯機會處於 擱置 狀態。 已起始核准工作流程。 私人鏈接資源擁有者負責核准或拒絕連線。

Screenshot that shows the option Manage approvals in Azure portal.

  1. 如果擁有者核准連線,則會建立私人連結。 否則,將不會建立私人連結。 不論是哪一種情況,受控私人端點都會更新為連線的狀態。

Screenshot that shows approving a managed private endpoint.

只有處於已核准狀態的受控私人端點可以將流量傳送至特定的私人鏈接資源。

注意

受控虛擬網路不支援自定義 DNS。

互動式撰寫

互動式撰寫功能可用於測試連線、瀏覽資料夾清單和資料表清單、取得架構和預覽數據等功能。 您可以在建立或編輯 Azure 整合運行時間時啟用互動式撰寫,其位於 Azure Data Factory 受控虛擬網路中。 後端服務會預先配置計算以進行互動式撰寫功能。 否則,每次執行任何互動式作業時,都會配置計算,這需要更多時間。 互動式撰寫的存留時間預設為 60 分鐘,這表示在上次互動式撰寫作業 60 分鐘之後,它會自動停用。 您可以根據您的實際需求變更 TTL 值。

Screenshot that shows interactive authoring.

存留時間

複製活動

根據預設,每個複製活動都會根據複製活動中設定來啟動新的計算。 啟用受控虛擬網路后,冷計算啟動時間需要幾分鐘的時間,且數據移動在完成之前無法啟動。 如果您的管線包含多個循序複製活動,或您在 foreach 循環中有許多複製活動,且無法以平行方式執行它們,您可以在 Azure 整合運行時間組態中啟用存留時間 (TTL) 值的時間。 指定複製活動所需的生存值和 DIU 數字的時間,會在其執行完成之後,讓對應的計算保持運作一段時間。 如果新的複製活動在 TTL 期間啟動,它會重複使用現有的計算,而啟動時間將會大幅減少。 在第二個複製活動完成之後,計算將會在TTL時間再次保持運作。 您可以彈性地從預先定義的計算大小中選取,範圍從小型到中型不等。 或者,您也可以選擇根據特定需求和即時需求來自定義計算大小。

注意

重新設定 DIU 號碼不會影響目前的複製活動執行。

注意

受控虛擬網路中 複製活動 不支援 2 DIU 的數據整合單位 (DIU) 量值。

您在 TTL 中選取的 DIU 將用來執行所有複製活動,DIU 的大小將不會根據實際需求自動調整。 因此,您必須選擇足夠的 DIU。

警告

選取少數 DIU 來執行許多活動,會導致佇列中擱置許多活動,這會嚴重影響整體效能。

管線和外部活動

與複本類似,您可以根據您的特定需求量身打造計算大小和 TTL 持續時間。 不過,不同於複本,請注意管線和外部TTL無法停用。

注意

存留時間 (TTL) 僅適用於受控虛擬網路。

Screenshot that shows the TTL configuration.

您可以使用下表作為參考,以判斷執行管線和外部活動的最佳節點數目。

活動類型 Capacity
管線活動 每個節點大約50個
相較於其他管線活動,使用 SQL alwaysEncrypted 的腳本活動和查閱活動通常會耗用更多資源,建議的數目約為每個節點 10 個
外部活動 每個節點大約800個

不同 TTL 的比較

下表列出不同類型的 TTL 之間的差異:

功能 互動式撰寫 複製計算規模 管線和外部計算規模
何時生效 啟用後立即 第一個活動執行 第一個活動執行
可以停用 Y Y
保留的計算可設定 Y

注意

您無法在預設自動解析 Azure 整合執行時間中啟用 TTL。 您可以為其建立新的 Azure 整合運行時間。

注意

啟用複製/管線/外部計算規模TTL時,計費取決於保留的計算資源。 因此,活動的輸出不包含 billingReference,因為這在非 TTL 案例中完全相關。

透過 Azure PowerShell 建立受控虛擬網路

$subscriptionId = ""
$resourceGroupName = ""
$factoryName = ""
$managedPrivateEndpointName = ""
$integrationRuntimeName = ""
$apiVersion = "2018-06-01"
$privateLinkResourceId = ""

$vnetResourceId = "subscriptions/${subscriptionId}/resourceGroups/${resourceGroupName}/providers/Microsoft.DataFactory/factories/${factoryName}/managedVirtualNetworks/default"
$privateEndpointResourceId = "subscriptions/${subscriptionId}/resourceGroups/${resourceGroupName}/providers/Microsoft.DataFactory/factories/${factoryName}/managedVirtualNetworks/default/managedprivateendpoints/${managedPrivateEndpointName}"
$integrationRuntimeResourceId = "subscriptions/${subscriptionId}/resourceGroups/${resourceGroupName}/providers/Microsoft.DataFactory/factories/${factoryName}/integrationRuntimes/${integrationRuntimeName}"

# Create managed Virtual Network resource
New-AzResource -ApiVersion "${apiVersion}" -ResourceId "${vnetResourceId}" -Properties @{}

# Create managed private endpoint resource
New-AzResource -ApiVersion "${apiVersion}" -ResourceId "${privateEndpointResourceId}" -Properties @{
        privateLinkResourceId = "${privateLinkResourceId}"
        groupId = "blob"
    }

# Create integration runtime resource enabled with virtual network
New-AzResource -ApiVersion "${apiVersion}" -ResourceId "${integrationRuntimeResourceId}" -Properties @{
        type = "Managed"
        typeProperties = @{
            computeProperties = @{
                location = "AutoResolve"
                dataFlowProperties = @{
                    computeType = "General"
                    coreCount = 8
                    timeToLive = 0
                }
            }
        }
        managedVirtualNetwork = @{
            type = "ManagedVirtualNetworkReference"
            referenceName = "default"
        }
    }

注意

您可以從私人連結資源取得其他數據源的 groupId

輸出連線

支持的數據源和服務

下列服務具有原生私人端點支援。 它們可以透過 Data Factory 受控虛擬網路的私人連結進行連線:

  • Azure Databricks
  • Azure Functions (進階方案)
  • Azure Key Vault
  • Azure Machine Learning
  • Azure Private Link
  • Microsoft Purview

如需數據源的支援,您可以參閱 連接器概觀。 您可以透過公用網路存取 Data Factory 支援的所有資料源。

內部部署資料來源

若要了解如何透過使用私人端點,從受控虛擬網路存取內部部署資料來源,請參閱使用私人端點從 Data Factory 受控虛擬網路存取內部部署 SQL Server

從 Data Factory 受控虛擬網路透過公用端點的輸出通訊

所有埠都會針對輸出通訊開啟。

限制和已知問題

金鑰保存庫的鏈接服務建立

當您建立 金鑰保存庫 的連結服務時,沒有整合運行時間參考。 因此,您無法在連結服務建立 金鑰保存庫 期間建立私人端點。 但是,當您為參考 金鑰保存庫 的數據存放區建立連結服務,且此連結服務參考已啟用受控虛擬網路的整合運行時間時,您可以在建立期間建立 金鑰保存庫 的私人端點。

  • 測試連線:金鑰保存庫 鏈接服務的這項作業只會驗證 URL 格式,但不會執行任何網路作業。
  • 使用私人端點:即使您為 金鑰保存庫 建立私人端點,此數據行一律會顯示為空白。

Azure HDInsight 的連結服務建立

即使您使用私人連結服務和具有埠轉送的負載平衡器,為 HDInsight 建立私人端點,使用私人端點的數據行一律會顯示為空白。

Screenshot that shows a private endpoint for Key Vault.

Azure HDInsight 的完整域名 (FQDN)

如果您已建立自定義私人鏈接服務,則當您建立私人端點時,FQDN 應該以 azurehdinsight.net 結尾,而不在功能變數名稱中領先 privatelink 。 如果您在功能變數名稱中使用 privatelink,請確定它是有效的,而且您可以解析它。

受控虛擬網路中具有私人端點的存取條件約束

當兩端公開至 Private Link 和私人端點時,您就無法存取每個 PaaS 資源。 此問題是 Private Link 和私人端點的已知限制。

例如,您有記憶體帳戶 A 的受控私人端點。您也可以透過相同受控虛擬網路中的公用網路存取記憶體帳戶 B。 但是,當記憶體帳戶 B 具有來自其他受控虛擬網路或客戶虛擬網路的私人端點連線時,您無法透過公用網路存取受控虛擬網路中的記憶體帳戶 B。

請參閱下列教學課程: