Azure Data Factory 受控虛擬網路

適用於: Azure Data Factory Azure Synapse Analytics

提示

Data Factory in Microsoft Fabric 是下一代的 Azure Data Factory,擁有更簡單的架構、內建 AI 及新功能。 如果你是資料整合新手,建議先從 Fabric Data Factory 開始。 現有的 ADF 工作負載可升級至 Fabric,以存取資料科學、即時分析與報告等新能力。

本文說明了 Azure Data Factory 中的受管虛擬網路與受管私有端點。

受控虛擬網路

當你在 Data Factory 管理的虛擬網路中建立 Azure 整合執行時,整合執行時會與受管理虛擬網路一同配置。 其會使用私人端點安全地連線到支援的資料存放區。

在受控虛擬網路內建立整合執行階段,可確保資料整合程序是隔離且安全的。

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

  • 透過受控虛擬網路,您可以將管理虛擬網路的負擔轉至 Data Factory。 您無須為整合執行階段建立子網路,該執行階段最終將可使用您虛擬網路中的許多私人 IP,而需要預先規劃網路基礎結構。
  • 你不需要深厚的 Azure 網路知識就能安全地進行資料整合。 相反地,對資料工程師來說,開始使用安全擷取、轉換與載入(ETL)會簡單許多。
  • 受控虛擬網路以及受控私人端點可防止資料外流。

資料工廠只支援與資料工廠相同區域的受管理虛擬網路。

注意

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

顯示 Data Factory 受控虛擬網路架構的圖表。

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

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

在建立數據處理站期間啟用受控虛擬網路的螢幕快照。

  1. 在整合執行階段上啟用受控虛擬網路。

在整合執行時啟用受管虛擬網路的截圖。

管理型私人端點

受管理的私有端點是您在 Data Factory 管理的虛擬網路中建立的私有端點,用來建立與 Azure 資源的私有連結。 Data Factory 會幫你管理這些私有端點。

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

當你使用私有連結時,資料儲存庫與受管理的虛擬網路之間的流量會完全經過 Microsoft 骨幹網路。 Private Link 可保護您免受資料外洩風險。 您可以透過建立私人端點來建立與資源的私人連結。

私有端點會使用受管理虛擬網路中的私有 IP 位址來將服務帶入該網路。 私有端點是映射到Azure中特定資源,而非整個服務。 你可以限制連線權限,僅限於組織核准的特定資源。 如需詳細資訊,請參閱私人連結和私人端點。

注意

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

  1. 請確定您在資料處理站中啟用受控虛擬網路。

  2. 在 Manage Hub 建立一個新的受管理私有端點。

    顯示新受控私人端點的螢幕快照。

  3. 當你在 Data Factory 建立受管理的私有端點時,你會建立一個待 處理 狀態的私有端點連線。 此狀態啟動核准流程。 私人連結資源的擁有者會負責核准或拒絕連線。

    截圖,顯示「管理Azure入口網站核准」選項。

  4. 如果擁有者核准連線,就會建立私人連結。 否則,私有連結就不會建立。 無論是哪一種情況,管理的私人端點都會根據連線狀態進行更新。

    顯示核准受控私人端點的螢幕快照。

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

注意

受管理的虛擬網路不支援自訂DNS。

注意

受管理虛擬網路與受管理私有端點皆屬於 Microsoft 訂閱制。

互動式撰寫

互動式創作功能支援測試連線、瀏覽資料夾清單與表格清單、取得結構及預覽資料等功能。 當你在 Azure Data Factory 管理的虛擬網路中建立或編輯 Azure 整合執行時,可以啟用互動式撰寫功能。 後端服務會預先分配運算資源以支援互動式創作功能。 否則,每次執行互動操作時都會分配計算量,這會花費更多時間。 互動式創作的生存時間(TTL)預設為 60 分鐘,這表示在最後一次互動式創作操作後 60 分鐘自動停用。 你可以根據需求調整 TTL 值。

顯示互動式撰寫的螢幕快照。

存活時間

複製活動

預設情況下,每個複製活動都會根據該複製活動的設定啟動一個新的運算。 啟用受管虛擬網路後,冷計算啟動時間只需幾分鐘,且資料移動必須完成才能開始。 如果你的管線包含多個連續複製活動,或是有多個複製活動在 foreach 迴圈中且無法同時執行,你可以在 Azure 整合執行時設定中啟用一個壽命時間(TTL)值。 指定 TTL 值及複製活動所需的資料整合單元(DIU)編號,可在執行完成後保持相應運算的存續一段時間。 若在 TTL 時間內開始新的複製活動,則會重用現有計算,啟動時間大幅縮短。 第二次複製活動完成後,計算器會再次保持活著直到 TTL 時間。 你可以從預設的運算大小中選擇,從小到中再到大不等。 或者,你也可以根據需求和即時需求自訂運算大小。

注意

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

注意

在受管理的虛擬網路中,複製活動 不支援 2 DIU 的 DIU 指標。

Data Factory 會用你在 TTL 中選擇的 DIU 來執行所有複製活動。 DIU的尺寸不會根據實際需求自動調整,所以你必須選擇足夠的DIU。

警告

選擇過少的 DIU 來執行多項活動,會導致許多活動在隊列中待處理,嚴重影響整體效能。

管線和外部活動

和複製類似,你可以根據需求調整計算大小和 TTL 時長。 不過,與複製不同的是,你無法關閉管線和外部 TTL。

注意

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

顯示 TTL 設定的螢幕快照。

請參考以下表格,以判斷同時運行管線與外部活動的最佳節點數量。

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

不同 TTL 的比較

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

功能 互動式撰寫 複製計算調整規模 管線與外部計算調整規模
何時生效 啟用後立即生效 第一次活動的執行 第一次活動的執行
可停用 Y Y 否
預留的運算資源可以配置 否 Y Y

注意

你無法在預設的 Auto-Resolve 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。

注意

如果您透過PowerShell命令建立,則referenceName應該只設定為 「default」。。

向外連線

支援的資料來源和服務

下列服務具有原生私人端點支援。 可以透過 Data Factory 受控虛擬網路的私人連接來連接這些資源:

  • Azure Databricks
  • Azure Functions (Premium plan)
  • Azure Key Vault
  • Azure Machine Learning
  • Azure Private Link
  • Microsoft Purview

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

內部部署資料來源

欲了解如何利用私有端點從 Data Factory 受管虛擬網路存取內部部署資料來源,請參見 使用私有端點從 Data Factory 受管虛擬網路存取內部部署的 SQL Server。

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

所有連接埠都會對輸出通訊開放。

限制和已知問題

金鑰保存庫 的連結服務建立作業

當你為 金鑰保存庫 建立連線服務時,不存在整合執行時間參考。 所以,在建立 金鑰保存庫 的連結服務時,你無法建立私有端點。 但當您為參考 金鑰保存庫 的資料存放區建立連結服務,且該連結服務參考已啟用受控虛擬網路的 Integration Runtime 時,您可以在建立期間為 金鑰保存庫 建立私人端點。

  • Test connection: 對於 金鑰保存庫 的連結服務,此操作僅驗證 URL 格式,不執行任何網路操作。
  • Using private endpoint:即使你為 金鑰保存庫 建立私有端點,這個欄位也總是顯示為空白。

Azure HDInsight 的連結服務建立

即使您使用私人連結服務和具有連接埠轉送功能的負載平衡器,為 HDInsight 建立私人端點,[使用私人端點] 資料行仍會始終顯示為空白。

顯示 金鑰保存庫 的私人端點的截圖。

Azure HDInsight 的完全限定域名 (FQDN)

如果你建立了自訂的私有連結服務,當你建立私有端點時,FQDN 應該會以 azurehdinsight.net 結尾,網域名稱中沒有前導 私有連結 。 如果你在網域名稱中使用私有連結,請確保它有效且你能解決問題。

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

當雙方都暴露在私有連結和私有端時,你無法存取每個 PaaS 資源。 這個問題是私有連結和私有端點的已知限制。

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

請參閱下列教學課程: