集成运行时是Azure Data Factory提供的数据集成解决方案的基础结构的重要组成部分。 这要求你在设计解决方案开始时要充分考虑如何适应现有网络结构和数据源,还要考虑性能、安全性和成本。
比较不同类型的集成运行时
在Azure Data Factory中,我们有三种类型的集成运行时:Azure集成运行时、自承载集成运行时和 Azure-SSIS 集成运行时。 对于Azure集成运行时,还可以启用托管虚拟网络,使其体系结构不同于全局Azure集成运行时。
此表列出了所有集成运行时在某些方面的差异。 可以根据自己的实际需求选择相应的选项。 对于 Azure-SSIS 集成运行时,可以在创建 Azure-SSIS 集成运行时一文中了解详细信息。
| 功能 | Azure集成运行时 | Azure与托管虚拟网络的集成运行时 | 自托管集成运行时 |
|---|---|---|---|
| 托管计算 | Y | Y | N |
| 自动缩放 | Y | 是* | N |
| 数据流 | Y | Y | N |
| 本地数据访问 | N | Y** | Y |
| Private Link/专用终结点 | N | 是*** | Y |
| 自定义组件/驱动程序 | N | N | Y |
* 启用了生存时间 (TTL) 时,集成运行时的计算大小将根据配置保留,并且无法自动缩放。
** 本地环境必须通过 Express Route 或 VPN 连接到Azure。 不支持自定义组件和驱动程序。
专用终结点由Azure Data Factory服务管理。
选择适当的集成运行时类型很重要。 它不仅必须适合你现有的体系结构和要求以进行数据集成,同时,你还需要考虑如何进一步满足不断增长的业务需求和将来增加的工作负载。 但是,并没有一刀切的方法。 以下考虑事项可帮助你做出决策:
什么是集成运行时和数据存储位置?
集成运行时位置定义其后端计算的位置,将在该位置执行数据移动、活动调度和数据转换。 为了获得更好的性能和传输效率,集成运行时应更靠近数据源或接收器。- Azure集成运行时根据某些规则(也称为自动解决)自动检测最合适的位置。 请参阅此处的详细信息:Azure IR 位置。
- Azure 的集成运行时与托管虚拟网络使用与您的数据工厂相同的区域。 无法像Azure集成运行时那样自动解析它。
- 自托管集成运行时位于本地计算机或 Azure 虚拟机所在的区域。
是否可公开访问数据存储?
如果数据存储是可公开访问的,则不同类型的集成运行时之间的差异并不是很大。 如果商店位于防火墙后面或专用网络(例如,本地或虚拟网络)中,则更好的选择是使用带有托管虚拟网络的 Azure 集成运行时或自承载集成运行时。- 在将Azure集成运行时与托管虚拟网络配合使用时,需要一些额外的设置,例如Private Link服务和Load Balancer,以访问防火墙后或专用网络中的数据存储。 您可以参考本教程使用专用终结点从数据工厂托管 VNet 访问本地 SQL Server作为示例。 如果数据存储位于本地环境中,则本地必须通过 Express Route 或 S2S VPN 连接到Azure。
- 自承载集成运行时更灵活,并且不需要额外的设置、ExpressRoute 或 VPN。 但你需要自己提供并维护计算机。
- 还可以将Azure集成运行时的公共 IP 地址添加到防火墙的允许列表,并允许其访问数据存储,但这不是高度安全的生产环境中所需的解决方案。
在数据传输期间需要什么安全级别?
如果需要处理高度机密的数据,则需要在数据传输期间防御中间人攻击等。 然后,可以选择使用专用终结点和Private Link来确保数据安全性。- 使用Azure集成运行时与托管虚拟网络时,可以为您的数据存储创建托管专用终结点。 Azure Data Factory服务在托管的虚拟网络中维护专用终结点。
- 还可以在你的虚拟网络中创建专用终结点,自承载集成运行时可以使用它们来访问数据存储。
- Azure集成运行时不支持专用终结点和Private Link。
你可以提供哪种级别的维护?
维护基础结构、服务器和设备是企业 IT 部门的重要任务之一。 这通常需要大量的时间和精力。- 无需担心Azure集成运行时的维护,例如更新、修补程序和版本管理,也不用担心与托管虚拟网络结合的Azure集成运行时的维护。 Azure Data Factory服务负责所有维护工作。
- 由于自承载集成运行时安装在客户计算机上,因此必须由最终用户负责维护。 但是,你可以启用自动更新,以便在有更新时自动获取最新版本的自承载集成运行时。 若要了解如何启用自动更新并管理自承载集成运行时的版本控制,可以参阅自承载集成运行时自动更新和过期通知一文。 我们还为自承载集成运行时提供了一个诊断工具,用于对一些常见问题进行运行状况检查。 若要详细了解诊断工具,请参阅自承载集成运行时诊断工具一文。 此外,我们建议专门使用 Azure Monitor 和 Azure Log Analytics 来收集数据,并为自托管集成运行时启用统一面板监控。 有关配置此操作的详细信息,请参阅配置自承载集成运行时以进行 Log Analytics 数据收集一文中的说明。
你有哪些并发要求?
在处理大规模数据(例如大规模数据迁移)时,我们希望尽可能提高处理效率和速度。 并发通常是数据集成的主要要求。- Azure集成运行时在所有集成运行时类型中具有最高的并发支持。 数据集成单元(DIU)是在Azure Data Factory上运行的功能单位。 可以选择所需的 DIU 数,例如,Copy activity。 在 DIU 范围内,可以同时运行多个活动。 对于不同的区域组,我们将有不同的上限。 在数据工厂限制一文中了解这些限制的详细信息。
- Azure与托管虚拟网络的集成运行时具有与Azure集成运行时类似的机制,但由于某些体系结构约束,它可以支持的并发性小于Azure集成运行时。
- 自承载集成运行时可以运行的并发活动取决于计算机大小和群集大小。 如果需要更高的并发性,可以选择更大的计算机或在群集中使用更多自承载集成节点。
是否需要任何特定功能?
集成运行时类型之间存在一些功能差异。- 数据流由Azure集成运行时和与托管虚拟网络的Azure集成运行时支持。 但是,不能使用自承载集成运行时运行数据流。
- 如果需要安装自定义组件(如 ODBC 驱动程序、JVM 或SQL Server证书),则自承载集成运行时是唯一的选择。 Azure集成运行时或与托管虚拟网络的Azure集成运行时不支持自定义组件。
集成运行时架构
根据每个集成运行时的特征,需要不同的体系结构来满足数据集成的业务需求。 下面是一些可用作参考的典型体系结构。
Azure集成运行时
Azure集成运行时是一种完全托管的自动缩放计算,可用于从Azure或非Azure数据源移动数据。
- 从Azure集成运行时到数据存储的流量通过公用网络。
- 我们为Azure集成运行时提供一系列静态公共 IP 地址,这些 IP 地址可以添加到目标数据存储防火墙的允许列表。 若要详细了解如何获取Azure Integration runtime的公共 IP 地址,请参阅Azure Integration Runtime IP 地址一文。
- 可以根据数据源和数据接收器的区域自动解决Azure集成运行时。 或者,你也可以选择特定区域。 建议选择离数据源或接收器最近的区域,这样可以提供更好的执行性能。 详细了解文章《Troubleshoot copy activity on Azure IR》中的性能注意事项。
Azure与托管虚拟网络的集成运行时
将Azure集成运行时与托管虚拟网络配合使用时,应使用托管专用终结点连接数据源,以确保传输期间的数据安全。 使用一些额外的设置(例如Private Link服务和Load Balancer),托管专用终结点也可用于访问本地数据源。
- 托管专用终结点不能在不同的环境中重复使用。 需要为每个环境创建一组托管专用终结点。 有关托管专用终结点支持的所有数据源,请参阅支持的数据源和服务一文。
- 还可以使用托管专用终结点连接到要协调的外部计算资源,例如Azure Databricks和Azure Functions。 若要查看支持的外部计算资源的完整列表,请参阅支持的数据源和服务一文。
- 托管虚拟网络由Azure Data Factory服务管理。 托管虚拟网络和客户虚拟网络之间不支持 VNET 对等连接。
- 客户无法直接更改托管虚拟网络上的 NSG 规则等配置。
- 如果托管专用终结点的任何属性在环境之间是不同的,可以在部署过程中通过参数化该属性并提供相应的值来替代它。
自托管集成运行时
为了防止来自不同环境的数据相互干扰并确保生产环境的安全性,我们需要为每个环境创建相应的自承载集成运行时。 这可确保不同环境之间有足够的隔离。
由于自承载集成运行时在客户托管计算机上运行,为了尽可能减少成本、维护和升级工作量,我们可以将自承载集成运行时的共享功能用于同一环境中的不同项目。 有关自承载集成运行时共享的详细信息,请参阅文章
- ExpressRoute 不是必需的。 在不使用 Express Route 的情况下,数据不会通过专用网络(例如虚拟网络或专用链接)到达接收器,而是通过公用网络。
- 如果本地网络通过 Express Route 或 VPN 连接到Azure虚拟网络,则可以在中心 VNET 中的虚拟机上安装自承载集成运行时。
- 中心辐射型虚拟网络体系结构不仅可以用于不同的项目,还可以用于不同的环境(生产、QA 和开发)。
- 可以与多个数据工厂共享自承载集成运行时。 主数据工厂将它引用为共享自承载集成运行时,而其他数据工厂将它引用为链接的自承载集成运行时。 物理自承载集成运行时可以在一个群集中具有多个节点。 通信仅在主自承载集成运行时和主节点之间发生,工作会从主节点分发到辅助节点。
- 本地数据存储的凭据可以存储在本地计算机或Azure Key Vault中。 强烈建议Azure Key Vault。
- 自承载集成运行时和数据工厂之间的通信可以经过专用链接。 但是,目前通过 Azure Relay 进行的交互式创作和从下载中心自动更新到最新版本的功能都不支持专用链接。 流量将经过本地环境的防火墙。 有关详细信息,请参阅文章 适用于 Azure Data Factory 的 Azure Private Link。
- 只有主数据工厂需要专用链接。 所有流量均经过主数据工厂,然后流向其他数据工厂。
- 可以使用本地网络和 Express Route 的配置(通过本地代理或中心虚拟网络)来控制流量如何进入下载中心和Azure Relay。 确保代理或 NSG 规则允许此流量。
- 如果想保护自承载集成运行时节点之间的通信,可以启用使用 TLS/SSL 证书从 Intranet 进行远程访问。 有关更多信息,请参阅启用使用 TLS/SSL 证书从 Intranet 进行远程访问(高级)一文。