Azure 数据工厂中的集成运行时
适用于: Azure 数据工厂
集成运行时 (IR) 是 Azure 数据工厂用于在不同的网络环境之间提供以下数据集成功能的计算基础结构:
- 数据流:在托管的 Azure 计算环境中执行数据流。
- 数据移动:跨公用或专用网络(本地或虚拟专用网)中的数据存储复制数据。 该服务提供对内置连接器、格式转换、列映射以及高性能和可缩放数据传输的支持。
- 活动分派:分派和监视在各种计算服务(如 Azure Databricks、Azure HDInsight、Azure SQL 数据库、SQL Server 等)上运行的转换活动。
- SSIS 包执行:在托管的 Azure 计算环境中本机执行 SQL Server 集成服务 (SSIS) 包。
在数据工厂中,活动定义要执行的操作。 链接服务定义目标数据存储或计算服务。 Integration Runtime 在活动和链接服务之间起到衔接作用。 它被链接服务或活动引用,提供直接运行或分派活动的计算环境。 这样,就可以在最接近目标数据存储或计算服务的区域执行活动,以最大限度地提高性能,同时还允许灵活地满足安全性和合规性要求。
可以在 Azure 数据工厂 UI 中,直接通过管理中心以及引用 Integration Runtime 的任何活动、数据集或数据流来创建 Integration Runtime。
集成运行时类型
数据工厂提供三种类型的 Integration Runtime (IR),应选择最能满足你的数据集成功能和网络环境需求的类型。 这三种类型的 IR 为:
- Azure
- 自承载
- Azure-SSIS
下表介绍了针对其中每个集成运行时类型提供的功能和网络支持:
IR 类型 | 公用网络支持 | 专用链接支持 |
---|---|---|
Azure | 数据流 数据移动 活动分派 |
数据流 数据移动 活动分派 |
自承载 | 数据移动 活动分派 |
数据移动 活动分派 |
Azure-SSIS | SSIS 包执行 | SSIS 包执行 |
Azure 集成运行时
Azure 集成运行时可以:
- 在 Azure 中运行数据流
- 在云数据存储之间运行复制活动
- 在公用网络中分派以下转换活动:Databricks Notebook/ Jar/ Python 活动、HDInsight Hive 活动、HDInsight Pig 活动、HDInsight MapReduce 活动、HDInsight Spark 活动、HDInsight Streaming 活动、Machine Learning Batch Execution 活动、Machine Learning Update Resource 活动、Stored Procedure 活动、.NET 自定义活动、Web 活动、Lookup 活动和 Get Metadata 活动。
Azure IR 网络环境
Azure Integration Runtime 支持使用可公开访问的终结点连接到数据存储和计算服务。 启用托管虚拟网络后,Azure Integration Runtime 支持使用专用网络环境中的专用链接服务连接到数据存储。
Azure IR 计算资源和缩放
Azure 集成运行时在 Azure 中提供完全托管的无服务器计算。 无需担心基础结构配置、软件安装、修补或功能缩放。 此外,只需为实际使用时间付费。
Azure 集成运行时提供了使用安全、可靠和高性能的方式在云数据存储之间移动数据的本机计算。 可以设置在复制活动上要使用的数据集成单元的数量,相应地,Azure IR 的计算大小弹性地纵向扩展,无需显式调整 Azure Integration Runtime 的大小。
活动分派是将活动路由到目标计算服务的轻型操作,因此,无需纵向扩展此方案的计算大小。
有关创建和配置 Azure IR 的信息,请参阅如何创建和配置 Azure Integration Runtime。
注意
Azure 集成运行时具有与数据流运行时相关的属性,该运行时定义将用来运行数据流的底层计算基础结构。
自承载集成运行时
自承载 IR 能够:
- 在专用网络中的云数据存储和数据存储之间运行复制活动。
- 对本地或 Azure 虚拟网络中的计算资源分派以下转换活动:HDInsight Hive 活动 (BYOC-Bring Your Own Cluster)、HDInsight Pig 活动 (BYOC)、HDInsight MapReduce 活动 (BYOC)、HDInsight Spark 活动 (BYOC)、HDInsight Streaming 活动 (BYOC)、机器学习批处理执行活动、Machine Learning Update Resource 活动、存储过程活动、自定义活动(在 Azure Batch 上运行)、Lookup 活动和 Get Metadata 活动。
注意
使用自承载集成运行时支持需要自带驱动程序的数据存储(例如 SAP Hana、MySQL 等)。有关详细信息,请参阅支持的数据存储。
注意
Java Runtime Environment (JRE) 是自承载 IR 的依赖项。 请确保将 JRE 安装在同一主机上。
自承载 IR 网络环境
如果想要在专用网络环境中安全地执行数据集成(不在公有云环境中建立直通连接),可以在防火墙后的本地环境中或虚拟专用网内安装自承载 IR。 自承载集成运行时仅与 Internet 建立基于 HTTP 的出站连接。
自承载 IR 计算资源和缩放
在本地计算机或专用网络中的虚拟机上安装自承载 IR。 目前,仅支持在 Windows 操作系统上运行自承载 IR。
为了获得高可用性和可伸缩性,可以通过在主动-主动模式中将逻辑实例与多个本地计算机相关联来向外扩展自承载 IR。 有关详细信息,请参阅如何创建和配置自承载 IR 一文。
Azure-SSIS 集成运行时
若要提升和切换现有 SSIS 工作负荷,可以创建 Azure-SSIS IR 以本机执行 SSIS 包。
Azure-SSIS IR 网络环境
可以在公用网络或专用网络中预配 Azure-SSIS IR。 通过将 Azure-SSIS IR 加入连接到本地网络的虚拟网络来支持本地数据访问。
Azure-SSIS IR 计算资源和缩放
Azure-SSIS IR 是完全托管的 Azure VM 群集,专用于运行 SSIS 包。 可使用自己的 Azure SQL 数据库或 SQL 托管实例来托管 SSIS 项目/包 (SSISDB) 的目录。 可以通过指定节点大小纵向扩展计算能力并通过指定群集中的节点数对其进行横向扩展。 可以按需停止和启动 Azure-SSIS Integration Runtime 以管理其运行成本。
有关详细信息,请参阅如何创建和配置 Azure-SSIS IR。 创建后,即可使用熟悉的工具(如 SQL Server Data Tools (SSDT) 和 SQL Server Management Studio (SSMS))部署和管理现有 SSIS 包,而无需对其进行更改或仅做少量更改,就像在本地使用 SSIS 一样。
有关 Azure-SSIS 运行时的详细信息,请参阅以下文章:
- 教程:将 SSIS 包部署到 Azure。 此文提供有关创建 Azure-SSIS IR,并使用 Azure SQL 数据库来承载 SSIS 目录的分步说明。
- 如何:创建 Azure-SSIS 集成运行时。 此文延伸了本教程的内容,介绍了如何使用 SQL 托管实例以及如何将 IR 加入虚拟网络。
- 监视 Azure-SSIS IR。 此文介绍如何检索有关 Azure-SSIS IR 的信息,并提供返回信息中的状态说明。
- 管理 Azure-SSIS IR。 此文介绍如何停止、启动或删除 Azure-SSIS IR。 此外,介绍如何通过在 Azure-SSIS IR 中添加更多节点来扩展 IR。
- 将 Azure-SSIS IR 加入虚拟网络。 此文提供有关将 Azure-SSIS IR 加入 Azure 虚拟网络的概念性信息。 此外,还介绍可以执行哪些步骤来使用 Azure 门户配置虚拟网络并将 Azure-SSIS IR 加入其中。
集成运行时位置
工厂位置和 IR 位置之间的关系
创建数据工厂实例时,需要指定其位置。 实例的元数据存储在此处,并从此处启动管道触发。 元数据仅存储在所选区域,而不会存储在其他区域。
同时,管道可以访问其他 Azure 区域的数据存储和计算数据,在数据存储之间移动数据或使用计算服务处理数据。 此行为通过全局可用 IR 来实现,以确保数据的符合性、有效性并减少网络对外费用。
IR 位置定义其后端计算的位置,以及执行数据移动、活动分派和 SSIS 包执行的位置。 IR 位置可能与它所属的数据工厂的位置不同。
Azure IR 位置
可以设置 Azure IR 的位置区域,这样活动执行或分派就会发生在该选定区域。
默认为自动解析公用网络中的 Azure IR。 使用此选项:
对于复制活动,数据工厂会尽最大努力自动检测接收器数据存储的位置,然后使用同一区域中的 IR(如果可用)或者使用同一地理位置中最靠近的 IR;如果检测不到接收器数据存储的区域,则会改用实例区域中的 IR。
例如,在中国东部创建了数据工厂,
- 将数据复制到中国北部的 Azure Blob 时,如果检测到该 Blob 在中国北部区域,则在中国北部的 IR 上执行复制活动;如果区域检测失败,则在中国东部的 IR 上执行复制活动。
- 将数据复制到未检测到其所在区域的 Salesforce 时,将在中国东部的 IR 上执行复制活动。
提示
如果有严格的数据符合性要求,并需确保数据不离开特定的地理位置,则可在特定区域显式创建一个 Azure IR,然后使用 ConnectVia 属性将链接服务指向该 IR。
对于 Lookup/GetMetadata/Delete 活动执行(管道活动)、转换活动分派(外部活动)和创作操作(测试连接、浏览文件夹列表和表列表、预览数据),IR 与数据工厂位于同一区域。
对于数据流,将使用数据工厂区域中的 IR。
提示
最佳做法是尽可能确保数据流在相应数据存储所在的区域中运行。 若要实现此目的,可自动解析 Azure IR(如果数据存储位置与数据工厂位置相同),也可在数据存储所属的区域创建新的 Azure IR 实例,然后在其中执行数据流。
如果为自动解析 Azure IR 启用托管虚拟网络,将使用数据工厂区域中的 IR。
可以在数据工厂工作室或活动监视有效负载的管道活动监视视图中监视哪个 IR 位置在活动执行期间生效。
自承载 IR 位置
自承载 IR 逻辑上注册到数据工厂,用于支持其功能的计算由你提供。 因此,没有适用于自承载 IR 的显式位置属性。
用于执行数据移动时,自承载 IR 从源提取数据并写入到目标。
Azure-SSIS IR 位置
为你的 Azure-SSIS IR 选择正确的位置对在提取-转换-加载 (ETL) 工作流中实现高性能至关重要。
- Azure-SSIS IR 的位置无需与数据工厂的位置相同,但应与你自己的托管 SSISDB 的 Azure SQL 数据库或 SQL 托管实例的位置相同。 这样一来,Azure-SSIS Integration Runtime 就可以轻松访问 SSISDB,且不会在不同位置之间产生过多的流量。
- 如果没有现有 SQL 数据库或 SQL 托管实例,但有本地数据源/目标,则应在连接到本地网络的虚拟网络的同一位置创建新的 Azure SQL 数据库或 SQL 托管实例。 这样,就可以使用新的 Azure SQL 数据库或 SQL 托管实例创建 Azure-SSIS IR,并加入该虚拟网络。 所有这些都位于同一位置,从而最大限度地减少了数据移动和相关成本,同时最大限度地提高了性能。
- 如果现有 Azure SQL 数据库或 SQL 托管实例的位置与连接到本地网络的虚拟网络的位置不同,请先使用现有 Azure SQL 数据库或 SQL 托管实例创建 Azure-SSIS IR,并加入同一位置中的另一个虚拟网络。 然后,配置不同位置之间的虚拟网络到虚拟网络连接。
下图显示了数据工厂及其集成运行时的位置设置:
确定要使用哪个 IR
如果一个活动与多种类型的集成运行时关联,它将解析为其中一种。 自承载集成运行时优先于 Azure 数据工厂实例中使用托管虚拟网络的 Azure Integration Runtime。 而后者优先于公用 Azure 集成运行时。
例如,一个复制活动用于将数据从源复制到接收器。 公共 Azure Integration Runtime 与源的链接服务相关联,而 Azure 数据工厂托管虚拟网络中的 Azure Integration Runtime 与接收器的链接服务相关联,结果是源和接收器链接服务都使用 Azure 数据工厂托管虚拟网络中的 Azure Integration Runtime。 但如果自承载集成运行时关联源的链接服务,则源和接收器链接服务都使用自承载集成运行时。
复制活动
复制活动需要使用源和接收器链接服务,以定义数据流的方向。 以下逻辑用于确定执行复制所使用的集成运行时实例的类型:
- 在两个云数据源之间复制:如果源和接收器链接服务都使用 Azure IR,数据工厂会使用区域性的 Azure IR(如果已指定),或者自动确定 Azure IR 的位置,前提是你根据 Integration Runtime 位置部分的说明选择了自动解析 IR(默认)选项。
- 在云数据源和专用网络中的数据源之间复制:如果源或接收器链接服务指向自承载 IR,则在该自承载 IR 上执行复制活动。
- 在专用网络中的两个数据源之间复制:源和接收器链接服务必须指向同一 Integration Runtime 实例,且该 IR 用于执行复制活动。
查找和 GetMetadata 活动
查找和 GetMetadata 活动在关联到数据存储链接服务的集成运行时上执行。
外部转换活动
每个使用外部计算引擎的外部转换活动都有一个目标计算链接服务,该服务指向一个 Integration Runtime。 此 IR 实例确定外部手动编码转换活动的分派位置。
数据流活动
数据流活动在与其关联的 Azure Integration Runtime 上执行。 数据流使用的 Spark 计算由 Azure IR 中的数据流属性决定,且完全由该服务托管。
后续步骤
请参阅以下文章:
- 创建 Azure 集成运行时
- 创建自承载集成运行时
- 创建 Azure-SSIS 集成运行时。 此文延伸了本教程的内容,介绍了如何使用 SQL 托管实例以及如何将 IR 加入虚拟网络。