Azure 数据工厂托管虚拟网络
适用于:Azure 数据工厂 Azure Synapse Analytics
本文介绍 Azure 数据工厂中的托管虚拟网络和托管专用终结点。
托管虚拟网络
当你在数据工厂托管虚拟网络中创建 Azure 集成运行时时,系统会使用托管虚拟网络预配该集成运行时。 该集成运行时利用专用终结点安全地连接到支持的数据存储。
在托管虚拟网络中创建集成运行时可确保隔离和保护数据集成进程。
使用托管虚拟网络的好处:
- 使用托管虚拟网络,可以将管理虚拟网络的负担转移给数据工厂。 不需要为集成运行时创建子网,它最终可能会使用虚拟网络中的多个专用 IP,需要事先进行网络基础结构规划。
- 不需要深入的 Azure 网络知识即可安全地进行数据集成。 而对数据工程师来说,安全 ETL 的入门要简单得多。
- 一个托管虚拟网络与多个托管专用终结点一起防止数据外泄。
当前,托管虚拟网络仅在与数据工厂区域相同的区域中受支持。
注意
现有的全局集成运行时无法切换到数据工厂托管虚拟网络中的集成运行时,反之亦然。
有两种方法可以在数据工厂中启用托管虚拟网络:
- 在创建数据工厂期间启用托管虚拟网络。
- 在集成运行时启用托管虚拟网络。
托管专用终结点
托管专用终结点是在数据工厂托管虚拟网络中创建的专用终结点,用于建立到 Azure 资源的专用链接。 数据工厂会代表你管理这些专用终结点。
数据工厂支持专用链接。 可以使用 Azure 专用链接访问 Azure 平台即服务 (PaaS) 服务,例如 Azure 存储、Azure Cosmos DB 和 Azure Synapse Analytics。
使用专用链接时,数据存储与托管虚拟网络之间的流量将完全通过 Microsoft 主干网络进行传输。 专用链接可防止数据外泄风险。 可以通过创建专用终结点来建立到资源的专用链接。
专用终结点使用托管虚拟网络中的专用 IP 地址将服务有效接入托管虚拟网络中。 专用终结点映射到 Azure 中的特定资源,而不是整个服务。 客户可以将连接限制到其组织批准的特定资源。 有关详细信息,请参阅专用链接和专用终结点。
注意
资源提供程序 Microsoft.Network 必须注册到你的订阅。
- 确保在数据工厂中启用托管虚拟网络。
- 在管理中心中创建一个新的托管专用终结点。
- 在数据工厂中创建托管专用终结点时,创建的专用终结点连接将处于“挂起”状态。 将启动审批工作流。 专用链接资源所有者负责批准或拒绝该连接。
- 如果所有者批准该连接,则会建立专用链接。 否则,将不会建立专用链接。 在任一情况下,都会以连接状态更新托管专用终结点。
只有处于已批准状态的托管专用终结点才能将流量发送到特定的专用链接资源。
注意
托管虚拟网络不支持自定义 DNS。
交互式创作
交互式创作功能用于测试连接、浏览文件夹列表和表列表、获取架构和预览数据等功能。 可以在创建或编辑 Azure 数据工厂托管虚拟网络中的 Azure Integration Runtime 时启用交互式创作。 后端服务将为交互式创作功能预先分配计算。 否则,每次执行任何交互式操作都将分配计算,这将花费更多时间。 交互式创作的生存时间 (TTL) 默认为 60 分钟,这意味着在上一次交互式创作操作 60 分钟后它将自动被禁用。 可以根据实际需求更改 TTL 值。
生存时间
复制活动
默认情况下,每个复制活动都会根据复制活动中的配置启动新的计算。 启用托管虚拟网络后,冷计算启动时间需要几分钟,并且在完成之前无法开始数据移动。 如果管道包含多个顺序复制活动,或者你在 foreach 循环中有许多复制活动,并且无法并行运行它们,则可在 Azure 集成运行时配置中启用生存时间 (TTL) 值。 指定复制活动所需的生存时间值和 DIU 数,会使相应的计算在执行完以后保持活动状态一段时间。 如果新复制活动在 TTL 时间内开始,则它将重复使用现有计算,启动时间将显著缩短。 第二个复制活动完成后,计算将再次保持 TTL 时长的活跃度。 你可以灵活地从预定义的计算大小中进行选择,从小到中到大不等。 或者,还可以选择根据特定要求和实时需求自定义计算大小。
注意
重新配置 DIU 数不会影响当前的复制活动执行。
注意
托管虚拟网络中的复制活动不支持 2 个数据集成单元 (DIU) 的度量。
在 TTL 中选择的 DIU 将用于运行所有复制活动,DIU 的大小不会根据实际需要自动缩放。 因此必须选择足够的 DIU。
警告
选择很少的 DIU 来运行很多活动会导致很多活动在队列中挂起,这将严重影响整体性能。
管道和外部活动
与副本类似,可以根据特定要求定制计算大小和 TTL 持续时间。 但是,与副本不同,请注意,无法禁用管道和外部 TTL。
注意
生存时间 (TTL) 仅适用于托管虚拟网络。
可以利用下表作为参考来确定执行管道和外部活动的最佳节点数。
活动类型 | 容量 |
---|---|
管道活动 | 每个节点大约 50 个 与其他管道活动相比,使用 SQL alwaysEncrypted 的脚本活动和查找活动往往消耗更多资源,建议的数量约为每个节点 10 个 |
外部活动 | 每个节点大约 800 个 |
不同 TTL 的比较
下表列出了不同类型 TTL 之间的区别:
功能 | 交互式创作 | 复制计算规模 | 管道和外部计算规模 |
---|---|---|---|
何时生效 | 启用后立即生效 | 第一次活动执行 | 第一次活动执行 |
可以禁用 | Y | Y | N |
预留计算可配置 | N | 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。
注意
仅当通过 PowerShell 命令创建时,referenceName 才应设置为“默认”。
出站连接
支持的数据源和服务
以下服务原生提供专用终结点支持。 它们可以通过专用链接从数据工厂托管虚拟网络进行连接:
- Azure Databricks
- Azure Functions(高级计划)
- Azure Key Vault
- Azure 机器学习
- Azure 专用链接
有关数据源的支持,请参阅连接器概述。 可以通过公用网络访问数据工厂支持的所有数据源。
本地数据源
若要了解如何使用专用终结点从托管虚拟网络访问本地数据源,请参阅使用专用终结点从数据工厂托管虚拟网络访问本地 SQL Server。
通过公共终结点从数据工厂托管虚拟网络进行出站通信
打开所有端口进行出站通信。
限制和已知问题
为密钥保管库创建链接服务
为密钥保管库创建链接服务时,无法使用集成运行时引用。 因此,在为密钥保管库创建链接服务期间无法创建专用终结点。 但是,如果为引用密钥保管库的数据存储创建链接服务,并且此链接服务引用启用了托管虚拟网络的集成运行时,则可以在创建期间为密钥保管库创建专用终结点。
- 测试连接:针对密钥保管库的链接服务执行此操作只会验证 URL 格式,而不执行任何网络操作。
- 使用专用终结点:即使你为密钥保管库创建专用终结点,此列也始终显示为空白。
为 Azure HDInsight 创建链接服务
即使使用专用链接服务和带有端口转发的负载均衡器为 HDInsight 创建专用终结点,“使用专用终结点”列也始终显示为空白。
Azure HDInsight 完全限定的域名 (FQDN)
如果创建了自定义专用链接服务,则创建专用终结点时,FQDN 应以 azurehdinsight.cn 结尾,且域名中没有前导 privatelink。 如果在域名中使用了 privatelink,请确保它有效并且你能够解析它。
具有专用终结点的托管虚拟网络中的访问限制
当两端都向专用链接和专用终结点公开时,无法访问彼此的 PaaS 资源。 此问题是专用链接和专用终结点的已知限制。
例如,你有一个用于存储帐户 A 的托管专用终结点。你还可以通过同一托管虚拟网络中的公共网络访问存储帐户 B。 但是,当存储帐户 B 具有来自其他托管虚拟网络或客户虚拟网络的专用终结点连接时,你将无法通过公共网络访问托管虚拟网络中的存储帐户 B。
相关内容
参阅以下教程: