Azure 数据工厂中的集成运行时

适用于: Azure 数据工厂 Azure Synapse Analytics

提示

试用 Microsoft Fabric 中的数据工厂,这是一种适用于企业的一站式分析解决方案。 Microsoft Fabric 涵盖从数据移动到数据科学、实时分析、商业智能和报告的所有内容。 了解如何免费开始新的试用

集成运行时 (IR) 是 Azure 数据工厂和 Azure Synapse 管道用于在不同的网络环境之间提供以下数据集成功能的计算基础结构:

  • 数据流:在托管的 Azure 计算环境中执行数据流
  • 数据移动:跨公用或专用网络(本地或虚拟专用网)中的数据存储复制数据。 该服务提供对内置连接器、格式转换、列映射以及高性能和可缩放数据传输的支持。
  • 活动分派:分派和监视在各种计算服务(如 Azure Databricks、Azure HDInsight、Azure SQL 数据库、SQL Server 等)上运行的转换活动。
  • SSIS 包执行:在托管的 Azure 计算环境中本机执行 SQL Server 集成服务 (SSIS) 包。

在数据工厂和 Synapse 管道中,活动定义要执行的操作。 链接服务定义目标数据存储或计算服务。 Integration Runtime 在活动和链接服务之间起到衔接作用。 它被链接服务或活动引用,提供直接运行或分派活动的计算环境。 这样,就可以在最靠近目标数据存储或计算服务的区域中执行活动,或者,以最大程度地提高性能的同时灵活满足安全与合规要求。

可以在 Azure 数据工厂和 Azure Synapse UI 中直接通过管理中心以及从引用集成运行时的任何活动、数据集或数据流来创建集成运行时。

集成运行时类型

数据工厂提供三种类型的 Integration Runtime (IR),应选择最能满足你的数据集成功能和网络环境需求的类型。 这三种类型的 IR 为:

  • Azure
  • 自承载
  • Azure-SSIS

注意

Synapse 管道目前仅支持 Azure 或自承载集成运行时。

下表介绍了针对其中每个集成运行时类型提供的功能和网络支持:

IR 类型 公用网络支持 专用链接支持
Azure 数据流
数据移动
活动分派
数据流
数据移动
活动分派
自承载 数据移动
活动分派
数据移动
活动分派
Azure-SSIS SSIS 包执行 SSIS 包执行

注意

出站控制因 Azure IR 的服务而异。 在 Synapse 中,工作区可以选择在使用 Azure IR 时限制来自托管虚拟网络的出站流量。 在数据工厂中,在使用 Azure IR 时,所有端口都会打开,以方便进行出站通信。 Azure-SSIS IR 可与 vNET 集成,以提供出站通信控制。

Azure 集成运行时

Azure 集成运行时可以:

  • 在 Azure 中运行数据流
  • 在云数据存储之间运行复制活动
  • 在公用网络中调度以下转换活动:
    • .NET 自定义活动
    • Azure 函数活动
    • Databricks Notebook/Jar/Python 活动
    • Data Lake Analytics U-SQL 活动
    • 获取元数据活动
    • HDInsight Hive 活动
    • HDInsight Pig 活动
    • HDInsight MapReduce 活动
    • HDInsight Spark 活动
    • HDInsight Streaming 活动
    • 查找活动
    • 机器学习工作室(经典)批处理执行活动
    • 机器学习工作室(经典)更新资源活动
    • 存储过程活动
    • 验证活动
    • Web 活动

Azure IR 网络环境

Azure Integration Runtime 支持使用可公开访问的终结点连接到数据存储和计算服务。 启用托管虚拟网络后,Azure Integration Runtime 支持使用专用网络环境中的专用链接服务连接到数据存储。 在 Synapse 中,工作区可以选择限制来自 IR 托管虚拟网络的出站流量。 在数据工厂中,所有端口都已打开,以方便进行出站通信。 Azure-SSIS IR 可与 vNET 集成,以提供出站通信控制。

Azure IR 计算资源和缩放

Azure 集成运行时在 Azure 中提供完全托管的无服务器计算。 无需担心基础结构配置、软件安装、修补或功能缩放。 此外,只需为实际使用时间付费。

Azure 集成运行时提供了使用安全、可靠和高性能的方式在云数据存储之间移动数据的本机计算。 可以设置在复制活动上要使用的数据集成单元的数量,相应地,Azure IR 的计算大小弹性地纵向扩展,无需显式调整 Azure Integration Runtime 的大小。

活动分派是将活动路由到目标计算服务的轻型操作,因此,无需纵向扩展此方案的计算大小。

有关创建和配置 Azure IR 的信息,请参阅如何创建和配置 Azure Integration Runtime

注意

Azure 集成运行时具有与数据流运行时相关的属性,该运行时定义将用来运行数据流的底层计算基础结构。

自承载集成运行时

自承载 IR 能够:

  • 在专用网络中的云数据存储和数据存储之间运行复制活动。
  • 对本地或 Azure 虚拟网络中的计算资源分派以下转换活动:
    • Azure 函数活动
    • 自定义活动(在 Azure Batch 上运行)
    • Data Lake Analytics U-SQL 活动
    • 获取元数据活动
    • HDInsight Hive 活动(BYOC-自带群集)
    • HDInsight Pig 活动 (BYOC)
    • HDInsight MapReduce 活动 (BYOC)
    • HDInsight Spark 活动 (BYOC)
    • HDInsight Streaming 活动 (BYOC)
    • 查找活动
    • 机器学习工作室(经典)批处理执行活动
    • 机器学习工作室(经典)更新资源活动
    • 机器学习执行管道活动
    • 存储过程活动
    • 验证活动
    • Web 活动

注意

使用自承载集成运行时支持需要自带驱动程序的数据存储(例如 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 位置之间的关系

创建数据工厂或 Synapse 工作区的实例时,需要指定该实例的位置。 实例的元数据将存储在该位置,并且管道触发将从中启动。 元数据仅存储在所选区域,而不会存储在其他区域。

同时,管道可以访问其他 Azure 区域的数据存储和计算数据,在数据存储之间移动数据或使用计算服务处理数据。 此行为通过全局可用 IR 来实现,以确保数据的符合性、有效性并减少网络对外费用。

IR 位置定义其后端计算的位置,以及执行数据移动、活动分派和 SSIS 包执行的位置。 IR 位置可能与它所属的数据工厂的位置不同。

Azure IR 位置

可以设置 Azure IR 的位置区域,这样活动执行或分派就会发生在该选定区域。

默认为自动解析公用网络中的 Azure IR。 使用此选项:

  • 对于复制活动,会尽最大努力自动检测接收器数据存储的位置,然后使用同一区域中的 IR(如果可用)或者使用同一地理位置中最靠近的 IR;如果检测不到接收器数据存储的区域,则会改用实例所在区域中的 IR。

    例如,某个数据工厂或 Synapse 工作区是在中国东部创建的。

    • 将数据复制到中国北部的 Azure Blob 时,如果检测到该 Blob 在中国北部区域,则在中国北部的 IR 上执行复制活动;如果区域检测失败,则在中国东部的 IR 上执行复制活动。
    • 将数据复制到未检测到其所在区域的 Salesforce 时,将在中国东部的 IR 上执行复制活动。

    提示

    如果有严格的数据符合性要求,并需确保数据不离开特定的地域,则可在特定区域显式创建一个 Azure IR,然后使用 ConnectVia 属性将链接服务指向该 IR。

  • 对于查找/获取元数据/删除活动执行(管道活动)、转换活动分派(外部活动)和创作操作(测试连接、浏览文件夹列表和表列表和预览数据),会使用与数据工厂或 Synapse 工作区在同一区域中的 IR。

  • 对于数据流,将使用数据工厂或 Synapse 工作区区域中的 IR。

    提示

    最佳做法是在可能的情况下,确保数据流在相应数据存储所在的同一区域中运行。 要实现此目的,可以自动解析 Azure IR(如果数据存储位置与数据工厂或 Synapse 工作区位于同一位置),或者在数据存储所在的同一区域中创建一个新的 Azure IR 实例,然后在其中执行数据流。

如果为自动解析 Azure IR 启用托管虚拟网络,则会使用数据工厂或 Synapse 工作区区域中的 IR。

可以在 Data Factory Studio 或 Synapse Studio 的管道活动监视视图中或在活动监视有效负载中,监视哪个 IR 位置在活动执行期间生效。

自承载 IR 位置

自承载 IR 逻辑上注册到数据工厂或 Synapse 工作区,用于支持其功能的计算由你提供。 因此,没有适用于自承载 IR 的显式位置属性。

用于执行数据移动时,自承载 IR 从源提取数据并写入到目标。

Azure-SSIS IR 位置

注意

Synapse 管道目前不支持 Azure-SSIS 集成运行时。

为你的 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,并加入同一位置中的另一个虚拟网络。 然后,配置不同位置之间的虚拟网络到虚拟网络连接。

下图显示了数据工厂及其集成运行时的位置设置:

Shows Data Factory integration runtime locations.

确定要使用哪个 IR

如果一个活动与多种类型的集成运行时关联,它将解析为其中一种。 自承载集成运行时优先于 Azure 数据工厂或使用托管虚拟网络的 Synapse 工作区实例中的 Azure 集成运行时。 而后者优先于公用 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 中的数据流属性决定,且完全由该服务托管。

请参阅以下文章: