规划从 Azure 数据工厂迁移
Microsoft Fabric 是Microsoft数据分析 SaaS 产品,将所有Microsoft市场领先的分析产品汇集到单个用户体验中。 Fabric 数据工厂提供工作流编排、数据移动、数据复制和数据转换,并具有 Azure 数据工厂(ADF)中相同的功能。 如果您希望将现有的 ADF 解决方案升级到 Fabric 数据工厂,本文档将帮助您了解迁移的注意事项、策略和方法。
从 Azure PaaS ETL/DI 服务 ADF & Synapse 管道和数据流迁移可提供几个重要优势:
- 新的集成管道功能(包括电子邮件和 Teams 活动)可在管道执行期间轻松路由消息。
- 内置持续集成和交付(CI/CD)功能(部署管道)不需要外部与 Git 存储库集成。
- 工作区与 OneLake 数据湖的集成使得能够使用单一虚拟管理平台轻松进行分析管理。
- 使用完全集成的管道活动在 Fabric 中轻松刷新语义数据模型。
Microsoft Fabric 是一个用于自助服务和 IT 托管企业数据的集成平台。 随着数据量和复杂性的指数增长,Fabric 客户需要企业解决方案,这些解决方案可缩放、安全、易于管理,并且可供组织中最大的所有用户访问。
近年来,Microsoft投入了大量精力,将可缩放的云功能交付给高级版。 为此,Fabric 中的数据工厂可以立即为一个大型的数据集成开发人员和数据集成解决方案提供生态系统,这些解决方案已经构建了几十年,以应用完整的特性和功能,这些功能远远超出了前几代可用的可比功能。
当然,客户会询问是否有机会通过在 Fabric 中托管其数据集成解决方案来整合。 常见问题包括:
- 我们依赖的所有功能在 Fabric 管道中是否能正常运行?
- 哪些功能仅在 Fabric 管道中可用?
- 如何将现有管道迁移到 Fabric 管道?
- Microsoft在企业数据摄入方面的路线图是什么?
平台差异
迁移整个 ADF 实例时,在 Fabric 中的 ADF 和数据工厂之间需要考虑许多重要差异,这在迁移到 Fabric 时变得非常重要。 我们探讨本部分中的一些重要差异。
若要更详细地了解 Azure 数据工厂与 Fabric 数据工厂之间功能差异的映射,请参阅 比较 Fabric 数据工厂和 Azure 数据工厂。
集成运行时
在 ADF 中,集成运行时(IR)是表示 ADF 用于完成数据处理的计算的配置对象。 这些配置属性包括用于云计算和数据流 Spark 计算大小的 Azure 区域。 其他 IR 类型包括用于本地数据连接的自承载 IR、用于运行 SQL Server Integration Services 包的 SSIS IR 和已启用 Vnet 的云 IR。
Microsoft Fabric 是软件即服务(SaaS)产品,而 ADF 是平台即服务(PaaS)产品。 这种区别在集成运行时方面的含义是,无需配置任何内容以使用 Fabric 中的管道或数据流,因为默认值是在 Fabric 容量所在的区域中使用基于云的计算。 SSIS IR 在 Fabric 中并不存在,对于本地数据连接,请使用一种特定于 Fabric 的组件,称为 本地数据网关(OPDG)。 对于与受保护网络的基于虚拟网络的连接,可以使用 Fabric 中的虚拟网络数据网关。
从 ADF 迁移到 Fabric 时,无需迁移公用网络 Azure(云)IR。 需要将 SHIR 重新创建为 OPDG,并将已启用虚拟网络的 Azure IR 重新创建为虚拟网络数据网关。
管道
管道是 ADF 的基本组件,用于进行数据移动、数据转换和进程编排,这是 ADF 进程的主要工作流和编排功能。 Fabric 数据工厂中的管道与 ADF 几乎完全相同,但具有适合基于 Power BI 的 SaaS 模型的额外组件。 这种相似性包括针对电子邮件、Teams 和语义模型刷新的原生活动。
Fabric 数据工厂中管道的 JSON 定义与 ADF 略有不同,因为两个产品之间的应用程序模型存在差异。 由于这种差异,无法复制/粘贴管道 JSON、导入/导出管道或指向 ADF Git 存储库。
将 ADF 管道重建为 Fabric 管道时,基本上使用与 ADF 中相同的工作流模型和技能。 主要注意事项与链接服务和数据集有关,这些概念在 ADF 中不存在于 Fabric 中。
链接服务
在 ADF 中,链接服务定义连接到数据存储所需的连接属性,以便进行数据移动、数据转换和数据处理活动。 在 Fabric 中,需要将这些定义重新创建为连接,它们是复制和数据流等活动的属性。
数据集
数据集定义了在 ADF 中的数据的形状、位置和内容,但在 Fabric 中并不存在作为实体。 若要在 Fabric 数据工厂管道中定义数据类型、列、文件夹、表等数据属性,请在管道活动内内内以及之前在链接服务部分引用的 Connection 对象内联定义这些特征。
数据流
在 Fabric 数据工厂中,数据流术语 是指无代码数据转换活动,而在 ADF 中,相同的功能称为 数据流。 构造数据工厂数据流具有基于 Power Query 构建的用户界面,该用户界面用于 ADF Power Query 活动。 用于在 Fabric 中执行数据流的计算是一种本机执行引擎,可以使用新的 Fabric 数据仓库计算引擎横向扩展进行大规模数据转换。
在 ADF 中,数据流基于 Synapse Spark 基础结构构建,并使用构造用户界面定义,该用户界面使用称为 数据流脚本的基础域特定语言(DSL)。 此定义语言与 Fabric 中基于 Power Query 的数据流大相径庭,这些数据流使用称为 M 的定义语言来定义其行为。 由于这些用户界面、语言和执行引擎的差异,Fabric 数据流 和 ADF 数据流 不兼容,因此在将解决方案升级到 Fabric 时,您需要将 ADF 数据流 重新创建为 Fabric 数据流。
触发器
触发信号 ADF,根据挂钟时间安排、翻转窗口时间片、基于文件的事件或自定义事件执行管道。 这些功能在 Fabric 中相似,尽管基础实现不同。
在 Fabric 中,触发器 仅作为管道概念存在。 在 Fabric 中,管道触发器使用的更大框架被称为 Data Activator,这是 Fabric 中实时智能功能的事件和警报子系统。
Fabric Data Activator 具有可用于创建文件事件和自定义事件触发器的警报。 而计划触发器是 Fabric 中的独立实体,被称为“计划”。 这些安排属于 Fabric 的平台级别,而并不专属于任何特定管道。 它们在 Fabric 中也不被称为“触发器”。
要将触发器从 ADF 迁移到 Fabric,请考虑将计划触发器简单地重新构建为计划,这些计划是 Fabric 管道的属性。 对于所有其他触发器类型,请使用 Fabric 管道中的“触发器”按钮,或者在 Fabric 中本机使用 Data Activator。
调试
在 Fabric 中调试管道比在 ADF 中更简单。 这种简洁性源于 Fabric 数据工厂管道不像你在 ADF 管道和数据流中找到的那样,具有调试模式的单独概念。 相反,在构建管道时,你总是处于交互模式。 若要测试和调试管道,只需在开发周期中准备就绪时,从管道编辑器工具栏中选择播放按钮。 Fabric 中的管道不包含调试,直到以交互方式执行逐步调试模式。 相反,在 Fabric 中,你将利用活动状态并仅设置想要测试为活动的活动,同时将所有其他活动设置为非活动,以实现相同的测试和调试模式。 请参阅以下视频,了解如何在 Fabric 中实现此调试体验。
变更数据捕获
ADF 中的变更数据捕获(CDC)是一项预览功能,通过应用数据存储的源端 CDC 功能,可以轻松地以增量方式移动数据。 要将 CDC 工件迁移到 Fabric 数据工厂,请在 Fabric 工作区内将这些工件重新创建为“复制作业”项。 此功能通过易于使用的 UI 提供增量数据移动的类似功能,而无需管道,就像在 ADF CDC 中一样。 有关详细信息,请参阅 Fabric 中数据工厂的复制作业。
Azure Synapse Link
尽管在 ADF 中不可用,Synapse 管道用户经常利用 Azure Synapse Link,以一站式方法将数据从 SQL 数据库复制到其数据湖。 在 Fabric 中,将 Azure Synapse Link 工件重新创建为工作区中的“镜像”项。 有关详细信息,请参阅 Fabric 数据库镜像。
SQL Server Integration Services (SSIS)
SSIS 是Microsoft SQL Server 附带的本地数据集成和 ETL 工具。 在 ADF 中,您可以使用 ADF SSIS IR 将 SSIS 包迁移到云端。 在 Fabric 中,我们没有 IR 的概念,因此目前无法实现此功能。 但是,我们正努力实现通过 Fabric 本身直接运行 SSIS 包,并希望能尽快将此功能引入产品。 同时,使用 Fabric 数据工厂在云中执行 SSIS 包的最佳方式是在 ADF 工厂中启动 SSIS IR,然后调用 ADF 管道来调用 SSIS 包。 可使用以下部分所述的“已调用管道”活动,从 Fabric 管道远程调用 ADF 管道。
“调用管道”活动
ADF 管道中使用的常见活动是 执行管道活动,可用于调用工厂中的另一个管道。 在 Fabric 中,我们将此活动增强为“调用管道”活动。 请参阅“调用管道”活动文档。
此活动适用于迁移方案,其中有许多 ADF 管道使用特定于 ADF 的功能,例如映射数据流或 SSIS。 可以在 ADF 甚至 Synapse 管道中原样维护这些管道,然后通过使用“调用管道”活动并指向远程工厂管道,从新的 Fabric 数据工厂管道内联调用该管道。
示例迁移方案
您在从 ADF 迁移到 Fabric Data Factory 时可能会遇到的常见迁移场景如下。
场景 #1:ADF 管道和数据流
工厂迁移的主要用例基于将 ETL 环境从 ADF 工厂 PaaS 模型现代化到新的 Fabric SaaS 模型。 要迁移的主要工厂项是管道和数据流。 您需要为迁移规划的几个基本工厂元素,除了那两个顶级项之外,还有:链接服务、集成运行时、数据集和触发器。
- 需要在 Fabric 中将链接服务重新创建为管道活动中的连接。
- 工厂中不存在数据集。 数据集的属性表示为管道活动(如复制或查找)中的属性,而 Connections 包含其他数据集属性。
- Fabric 中不存在集成运行时。 但是,可以使用 Fabric 中的本地数据网关 (OPDG) 和 Azure 虚拟网络 IR 将自承载 IR 重新创建为 Fabric 中的托管虚拟网络网关。
- Fabric 数据工厂中不包括这些 ADF 管道活动:
- Data Lake Analytics (U-SQL) - 此功能是已弃用的 Azure 服务。
- 验证活动 - ADF 中的验证活动是一项帮助程序活动,你可使用“获取元数据”活动、管道循环和 If 活动在 Fabric 管道中轻松地重新构建它。
- Power Query - 在 Fabric 中,所有数据流都是使用 Power Query UI 生成的,因此只需从 ADF Power Query 活动复制和粘贴 M 代码,并将其生成为 Fabric 中的数据流。
- 如果使用在 Fabric 数据工厂中找不到的任何 ADF 管道功能,请使用 Fabric 中的“调用管道”活动来调用 ADF 中的现有管道。
- 以下 ADF 管道活动合并为单一用途活动:
- Azure Databricks 活动(Notebook、Jar、Python)
- Azure HDInsight(Hive、Pig、MapReduce、Spark、流式处理)
下图显示了 ADF 数据集配置页,其中包含其文件路径和压缩设置:
下图展示了 Fabric 平台中数据工厂复制活动的配置,其中压缩和文件路径在活动中直接嵌入。
方案 #2:具有 CDC、SSIS 和 Airflow 的 ADF
CDC & ADF 中的 Airflow 是预览版功能,而 ADF 中的 SSIS 是多年来一般可用的功能。 其中每个功能都满足不同的数据集成需求,但在从 ADF 迁移到 Fabric 时需要特别注意。 变更数据捕获 (CDC) 是一个顶级 ADF 概念,但在 Fabric 中,你将此功能视为复制作业。
Airflow 是 ADF 云管理的 Apache Airflow 功能,在 Fabric 数据工厂中也可用。 您应该可以使用相同的 Airflow 源存储库,或者将您的 DAG 复制并粘贴到 Fabric Airflow 产品/服务中,几乎无需更改。
方案 #3:已启用 Git 的数据工厂迁移到 Fabric
虽然不是必需的,但将 ADF 或 Synapse 工厂和工作区连接到 ADO 或 GitHub 中你自己的外部 Git 提供程序的情况很常见。 在此方案中,需要将工厂和工作区项迁移到 Fabric 工作区,然后在 Fabric 工作区上设置 Git 集成。
Fabric 提供了两种主要方法,可在工作区级别启用 CI/CD:Git 集成,在 ADO 中自带 Git 存储库,并从 Fabric 和内置部署管道连接到它,无需自带 Git 即可将代码提升到更高环境。
在这两种情况下,来自 ADF 的现有 Git 存储库都不适用于 Fabric。 相反,需要指向新的存储库,或者在 Fabric 中启动新的部署管道,并在 Fabric 中重新构建管道工件。
将现有 ADF 实例直接装载到 Fabric 工作区
之前,我们讨论了使用 Fabric 数据工厂的“调用管道”活动作为维护现有 ADF 管道投资的一种机制,并从 Fabric 中直接调用它们。 在 Fabric 中,可以更进一步采用类似的概念,将整个工厂作为原生 Fabric 项装载到你的 Fabric 工作区。
有关装载使用场景的详细信息,请参阅内容协作和交付场景。
在 Fabric 工作区中装载 Azure 数据工厂会带来许多好处。 如果你不熟悉 Fabric,并且希望将工厂并排保留在同一虚拟管理平台中,你可以将它们装载到 Fabric 中,以便可在 Fabric 内部管理这两者。 现在,你可以从已安装的工厂环境中访问完整的 ADF UI,并能在 Fabric 工作区中全面监控、管理和编辑 ADF 工厂项。 借助此功能,可以更轻松地开始将这些项作为本机 Fabric 工件迁移到 Fabric 中。 此功能主要便于轻松使用,并且使得可轻松地在 Fabric 工作区中查看你的 ADF 工厂。 但是,管道、活动、集成运行时等的实际执行仍发生在 Azure 资源内部。