跳至主要内容

Azure Data Factory:初学者完整指南

通过这份循序渐进的指南,了解 Azure Data Factory 基础并构建您的第一条数据管道!
· 13分钟 阅读

使用 AI 探索

Azure Data Factory(ADF)是微软基于云的数据集成服务,专为现代组织打造。它使用户能够在企业级别设计、管理和自动化处理数据迁移与数据转换任务的工作流。

ADF 以其友好的零代码界面脱颖而出,既适合技术用户,也适合非技术用户轻松构建数据管道。其强大的集成能力支持90 多种原生连接器,可连接多样的数据源,包括本地系统和各类云服务,实现数据在不同平台间的流动。

在本指南中,我将全面介绍 Azure Data Factory,包括其组件与功能,并提供实践教程,帮助您创建第一条数据管道。

什么是 Azure Data Factory?

Azure Data Factory(ADF)是一项基于云的数据集成服务,旨在编排与自动化数据工作流。

它用于收集、转换与交付数据,确保分析与决策所需的洞见可以随取随用。

借助其可扩展、无服务器架构,ADF 能处理任意规模的工作流——从简单的数据迁移到复杂的数据转换管道。

ADF 打通数据孤岛,使用户能够在本地系统、云服务与外部平台之间移动与转换数据。无论您处理的是大数据、业务数据库,还是API,Azure Data Factory 都能高效完成连接、处理与统一数据的任务。

Azure Data Factory 的功能

以下是 ADF 提供的一些重要功能。

1. 数据集成

Azure Data Factory 支持与100 多种原生连接器集成,覆盖云端与本地系统。它支持SQL 数据库、NoSQL 系统、REST API 以及基于文件的数据源,让您无论数据来源或格式如何,都能统一数据工作流。它也是支撑 Microsoft Fabric(微软统一数据平台)中数据集成功能的基础引擎。

ADF 中数据连接器的屏幕截图

Azure Data Factory 提供的数据连接器

2. 零代码管道创作

ADF 的拖放式界面简化了数据管道的创建。借助预构建模板、引导式配置向导与直观的可视化编辑器,即使没有编码经验的用户也能设计完整的端到端工作流。

ADF 中创作体验的屏幕截图

Azure Data Factory 的零代码创作体验

3. 调度

Azure Data Factory 的调度工具提供工作流自动化。用户可基于特定条件设置触发器,例如文件到达云存储,或按计划的时间间隔执行。这些调度选项消除了手工操作的需要,确保工作流稳定可靠地一致执行。

ADF 中管道调度界面的屏幕截图

在 Azure Data Factory 中调度管道

Azure Data Factory 的核心组件

理解 Azure Data Factory 的核心组件,是构建高效工作流的基础。

1. 管道(Pipelines)

管道是 Azure Data Factory 的脊梁。它代表数据驱动的工作流,定义了移动和转换数据所需的步骤。

每个管道作为一个容器,包含一个或多个活动(Activity),可顺序或并行执行,以实现所需的数据流。

这些管道使数据工程师能够创建端到端流程,例如摄取原始数据、将其转换为可用格式,并载入目标系统。

在 ADF 中创建的简单管道屏幕截图

Azure Data Factory 中的简单管道示例

2. 活动(Activities)

活动是管道的功能构件,每个活动执行一个特定操作。它们大致分为:

  • 数据移动活动:这些活动在不同存储系统之间传输数据。例如,“Copy data(复制数据)”活动可将数据从 Azure Blob 存储迁移到 Azure SQL 数据库。
  • 数据转换活动:这些活动允许您处理或操作数据。例如,可使用数据流或自定义脚本来转换数据格式、聚合数值,或清洗数据集。
  • 控制流活动:这些活动管理管道内的执行逻辑流程。示例包括条件分支、循环与并行执行,为处理复杂工作流提供灵活性。

ADF 中活动的屏幕截图

Azure Data Factory 中的活动

3. 数据集(Datasets)

数据集表示活动中使用的数据。它定义了被摄取或处理数据的架构、格式与位置。

例如,一个数据集可以描述Azure Blob 存储中的 CSV 文件,或 Azure SQL 数据库中的一张表。数据集是连接活动与实际数据源和目标之间的中间层。

ADF 中创建新数据集的屏幕截图

Azure Data Factory 中的数据集

4. 链接服务(Linked services)

链接服务是使活动与数据集能够访问外部系统与服务的连接字符串。

它们充当 Azure Data Factory 与其交互的外部资源(如数据库、存储帐户或计算环境)之间的桥梁。

例如,一个链接服务可以连接到本地 SQL Server,或连接到云端数据湖。

ADF 中创建链接服务的屏幕截图

Azure Data Factory 中的链接服务

5. 集成运行时(Integration runtimes)

集成运行时(IR)是为 Azure Data Factory 中的数据移动、转换与活动执行提供算力的计算环境。ADF 提供三种类型的集成运行时:

  • Azure IR: 处理云端数据集成任务,由 Azure 全权托管。
  • 自托管 IR: 支持在本地系统与云之间进行数据移动,适用于混合场景。
  • SSIS IR: 允许在 Azure 中运行 SQL Server Integration Services(SSIS) 包,让您能够在云端复用现有的 SSIS 工作流。

ADF 中集成运行时的屏幕截图

Azure Data Factory 中的集成运行时

设置 Azure Data Factory

现在,让我们进入本指南的实践部分!

1. 先决条件

1. 一个有效的 Azure 订阅。

2. 一个用于管理 Azure 资源的资源组。

2. 创建 Azure Data Factory 实例

1. 登录Azure 门户。

2. 导航到 创建资源,并选择 Data Factory。

Azure 门户中如何创建新资源的屏幕截图

创建新的 Data Factory 资源

3. 填写所需字段,包括订阅、资源组和区域。

Azure 门户中如何创建新资源的屏幕截图

配置 Data Factory 资源

4. 评审并创建实例。

Azure 门户中如何创建新资源的屏幕截图

Azure Data Factory 实例已创建

3. 浏览 ADF 界面

ADF 界面由以下主要部分组成(可通过左侧导航菜单进入):

1. Author: 用于创建与管理管道。

2. Monitor: 用于跟踪管道运行并排查问题。

3. Manage: 用于配置链接服务与集成运行时。

Azure 门户中 ADF 界面的屏幕截图

Azure Data Factory 界面

在 Azure Data Factory 中构建您的首条管道

下面让我们逐步创建一条简单的数据管道。

步骤 1:创建链接服务

在 ADF 中创建链接服务的屏幕截图

在 Azure Data Factory 中创建链接服务

1. 进入 Manage 选项卡

  • 打开您的 Azure Data Factory 实例,进入 ADF 界面的 Manage 选项卡。在这里定义链接服务,用于连接您的数据源与目标。

2. 为数据源添加链接服务

  • 在 Manage 选项卡下点击 Linked services。
  • 选择 + New 创建新的链接服务。
  • 从可用选项列表中选择要连接的数据源,例如 Azure Blob Storage。
  • 提供所需的连接信息,如存储帐户名称与身份验证方式(例如帐户密钥或托管标识)。
  • 测试连接以确保配置正确,然后点击 Create。

3. 为数据目标添加链接服务

  • 为数据目标重复上述过程,例如 Azure SQL Database。
  • 选择合适的目标类型,配置连接设置(如服务器名称、数据库名称与身份验证方式),并测试连接。
  • 验证无误后,保存链接服务。

步骤 2:创建数据集

在 ADF 中创建数据集的屏幕截图

在 Azure Data Factory 中创建数据集

1. 进入 Author 选项卡

  • 打开 Azure Data Factory 界面中的 Author 选项卡。在这里设计与管理管道、数据集等工作流组件。

2. 为源添加数据集

  • 点击 + 按钮,从下拉菜单中选择 Dataset。
  • 选择与您的源链接服务匹配的数据存储类型。例如,若源为 Azure Blob Storage,请选择相应的数据存储类型,如 Delimited Text、Parquet 等。
  • 配置数据集:
    • Linked service: 选择之前为数据源创建的链接服务。
    • File path: 指定源数据所在的路径或容器。
    • Schema 与格式: 定义数据格式(例如 CSV、JSON),并在适用时导入架构,以便 ADF 了解数据结构。
  • 点击 OK 保存数据集。

3. 为目标添加数据集

  • 为目标数据集重复上述过程。
  • 选择与目标链接服务匹配的数据存储类型。例如,若目标是 Azure SQL Database,请选择合适的类型,如 Table。
  • 配置数据集:
    • Linked service: 选择您为目标创建的链接服务。
    • 表名或路径: 指定要写入数据的表或目标路径。
    • 架构: 可选地为目标数据集定义或导入架构,以确保与源数据的兼容性。
  • 保存数据集。

步骤 3:添加活动

ADF 中管道创作的屏幕截图

在 Azure Data Factory 中添加复制数据活动

1. 打开管道编辑器

  • 在 Author 选项卡中,点击 + 并选择 Pipeline 创建新管道。
  • 这将打开管道编辑器,一个用于设计数据工作流的可视化界面。

2. 添加复制数据活动

  • 在左侧工具箱中,找到 Copy data 活动,位于 Move & Transform 分类下。
  • 将 Copy data 活动拖到画布上。该活动会将数据从源移动到目标。

3. 配置复制数据活动

  • 点击 Copy data 活动以打开其设置面板。
  • 在 Source 选项卡下:
    • 选择您之前创建的源数据集。
    • 如有需要,配置文件或文件夹筛选等附加选项。
  • 在 Sink 选项卡下:
    • 选择目标数据集。
    • 指定其他设置,例如如何处理目标中的现有数据(如 overwrite 或 append)。
  • 使用 Mapping 选项卡,将源与目标的字段或列进行映射,确保数据兼容性。
  • 保存配置。

步骤 4:发布并运行管道

ADF 中发布界面的屏幕截图

在 Azure Data Factory 中发布管道

1. 发布您的管道

  • 完成管道配置后,点击工具栏中的 Publish。
  • 这会保存您的管道并使其可执行。未发布的更改仍处于草稿状态,无法运行。

2. 运行管道

  • 要测试管道,点击顶部的 Add Trigger,选择 Trigger Now 进行手动运行。这样可验证管道是否按预期工作。
  • 或者,设置自动化调度:
    • 转到 Triggers 选项卡并创建新触发器。
    • 定义触发条件,如基于时间的计划(例如每天上午 8:00)或基于事件的条件(例如 Azure Blob 存储中文件到达)。
    • 将触发器与您的管道关联以启用自动化。

Azure Data Factory 的集成与转换能力

Azure Data Factory 提供强大的数据集成与转换功能,简化复杂工作流并提升生产力。本节将对这些功能进行回顾。

1. 数据流(Data flows)

数据流提供用于定义转换逻辑的可视化环境,便于用户在无需编写复杂代码的情况下操作与处理数据。常见任务包括:

  • 聚合: 汇总数据以提炼有意义的洞见,例如计算销售总额或平均绩效指标。
  • 连接(Join): 将来自多个来源的数据合并,构建可用于下游处理的富化数据集。
  • 筛选: 根据定义的条件选取数据子集,聚焦相关信息。

数据流还支持列派生、数据类型转换与条件转换等高级操作,足以应对多样化的数据需求。

2. 与 Azure Synapse Analytics 的集成

ADF 与Azure Synapse Analytics无缝集成,提供一体化的大数据处理与高级分析平台。该集成使用户能够:

  • 编排端到端数据工作流,包括数据摄取、准备与分析。
  • 利用 Synapse 强大的查询引擎高效处理海量数据集。
  • 创建直接馈入 Synapse Analytics 的数据管道,用于机器学习与报告等场景。

ADF 与 Synapse 的协同可精简工作流,减少分别管理数据集成与分析工具的复杂度。

3. 管道的调度与监控

  • 调度: 如前所述,ADF 的调度功能提供稳健的自动化能力。用户可基于时间间隔(如每小时、每日)或事件(例如文件到达Azure Blob 存储)定义触发器。
  • 监控: ADF 中的 Monitor 选项卡结合Azure Monitor,提供对管道执行的实时跟踪与诊断。用户可查看详细日志、跟踪进度,并快速定位瓶颈或失败点。同时也能轻松配置告警与通知。

Azure Data Factory 的使用场景

在深入了解 ADF 的功能与组件之后,让我们看看它可以用于哪些场景。

1. 数据迁移

ADF 是将数据从本地系统迁移到云平台的强大工具。它通过自动化数据移动来简化复杂迁移,确保数据完整性并最大限度减少停机时间。

例如,您可以使用 ADF 将数据从本地 SQL Server 迁移到 Azure SQL Database,所需的人工干预极少。借助内置连接器与集成运行时,ADF 可确保迁移过程安全高效,能处理结构化与非结构化数据。

2. 数据仓库的 ETL

抽取、转换、加载(ETL)是现代数据仓库的核心流程。Azure Data Factory 通过整合多源数据、应用转换逻辑并将其加载到数据仓库来简化这些工作流。

例如,ADF 可以整合不同地区的销售数据,将其转换为统一格式,并加载到 Azure Synapse Analytics。这一精简流程可让您保持用于报告与决策的高质量、最新数据。

查看 2024 年 23 款最佳 ETL 工具及其选择理由。

3. 数据湖的数据集成

数据湖作为多样化数据集的中心存储库,可支持高级分析与机器学习。ADF 便于将各类来源的数据摄入 Azure Data Lake Storage,支持批处理与流式场景。

例如,您可以使用 ADF 将日志文件、社交媒体信息流与物联网传感器数据汇集到单一数据湖。通过提供数据转换与集成工具,ADF 可确保数据湖结构清晰,便于下游分析与 AI 工作负载。

使用 Azure Data Factory 的最佳实践

最后,值得回顾一些高效使用 ADF 的最佳实践。

1. 模块化管道设计

为构建可维护、可扩展的工作流,请以可复用组件设计管道。模块化设计便于对管道各部分进行调试、测试与更新。例如,与其在每条管道中嵌入数据转换逻辑,不如创建一条可复用的管道,在多个工作流间调用。这样可以减少冗余并提升项目一致性。

2. 优化数据移动

  • 使用压缩: 为缩短数据传输时间并降低网络带宽占用,请在移动大数据集前进行压缩。例如,使用 gzip 等方式可显著加快大文件的移动。
  • 选择合适的集成运行时: 为获得最佳性能,需正确选择集成运行时(Azure IR、自托管 IR 或 SSIS IR)。例如,自托管 IR 适合本地数据与云之间的传输,确保安全高效;而 Azure IR 则适用于云原生操作。

3. 实施健壮的错误处理

  • 重试策略: 为瞬时错误(例如临时网络中断或服务器超时)配置重试策略,确保管道无需人工干预即可恢复并成功完成。
  • 设置告警: 实施告警与通知,主动告知团队管道失败或性能问题。使用 Azure Monitor 等工具,基于特定错误类型或执行延迟配置自定义告警,确保快速响应并将停机时间降至最低。

那么,Azure Data Factory 与 Databricks 有何区别?如果您感兴趣并想了解二者的不同,请查看《Azure Data Factory vs Databricks:详细对比》博文。

Azure Data Factory 与 Microsoft Fabric

当您逐步掌握 Azure Data Factory 时,了解其发展方向至关重要:Microsoft Fabric。

虽然 Azure Data Factory(ADF)仍是企业广泛采用的、成熟的独立 PaaS 解决方案,但微软已推出 Fabric 作为其数据生态的未来。Fabric 是一个一体化的 SaaS 平台,将 Data Factory、Synapse Analytics 和 Power BI 统一到同一环境中。

该用 ADF 还是 Fabric?

  • 若选择 ADF: 您需要一个成熟且高度可定制的 PaaS 方案,能与传统本地系统深度集成,或需要对基础设施进行精细化控制(如专用集成运行时)。
  • 若考虑 Fabric: 您正在构建全新的现代数据平台,希望在一个工作区内获得统一体验,让数据工程、数据仓库与 Power BI 可视化在无需移动数据的前提下(得益于 OneLake)协同完成。

注意:ADF 管道与 Fabric Data Factory 管道高度相似,您今天在 ADF 学到的技能可直接迁移到 Fabric。您可以学习我们的 Introduction to Microsoft Fabric 课程以进一步了解。

结语

Azure Data Factory 简化了在云中构建、管理与扩展数据管道的过程。它提供直观的平台,既适合技术用户,也适合非技术用户,使其能够高效整合并转换来自各类来源的数据。

通过利用其零代码管道创作、集成功能与监控工具,用户可以轻松创建可扩展、可靠的工作流。

如需进一步了解 Azure Data Factory,建议查看《最常见的 27 个 Azure Data Factory 面试问答》。

如果您想深入了解 Azure 的基础架构,包括容器、虚拟机等主题,我推荐这门优秀的免费课程:Understanding Microsoft Azure Architecture and Services。

Azure Data Factory 常见问题

Azure Data Factory 是 ETL 还是 ELT 工具?

两者都支持。ADF 传统上用于 ELT(抽取、加载、转换),即先将原始数据加载到云端目的地再进行处理。不过,借助 Mapping Data Flows,它也提供完整的可视化 ETL 能力,让您无需编写代码即可在传输过程中转换数据。

Azure Data Factory 与 Microsoft Fabric 有何区别?

Azure Data Factory(ADF)是专注于数据集成的独立 PaaS(平台即服务)工具。Microsoft Fabric 是统一的 SaaS(软件即服务)平台,在单一环境中同时提供 Data Factory 能力,以及 Power BI、Synapse 与数据科学工具。

使用 Azure Data Factory 需要编程技能吗?

不需要。ADF 主要是低代码/零代码平台,采用拖放界面构建管道。不过,建议掌握 SQL 以便与数据库交互;如果计划使用如 Airflow 等高级编排特性,了解 Python 也很有帮助。

Azure Data Factory 的定价如何运作?

ADF 采用按量计费模式。您不会被收取固定月费;费用基于活动运行次数、数据移动小时数以及数据流执行时长计算。这使其对大小规模的工作负载都具备成本效益。

Azure Data Factory 能连接本地数据吗?

可以。您可以通过在本地网络中的一台机器上安装自托管集成运行时(Self-Hosted Integration Runtime),安全地连接到本地服务器(如 SQL Server、Oracle 或文件系统)。它充当到云端的安全网关/桥梁,无需打开防火墙端口。

ADF 与 Databricks 有何不同?

ADF 是用于调度与管理工作流的编排器。Databricks 是针对大规模数据处理优化的计算引擎,使用 Spark 与 Python。在许多架构中,ADF 会触发 Databricks 笔记本来执行复杂转换。

ADF 如何保障安全?

Azure Data Factory 提供企业级安全,包括 托管标识(Managed Identity),可在无需管理凭据的情况下实现无缝身份验证;支持 Azure Key Vault 存储机密;以及专用终结点(通过 Azure Private Link),确保数据流量不经由公共互联网。

Moez Ali

作者

Moez Ali

数据科学家,PyCaret 的创始人兼作者

主题