Microsoft Fabric 决策指南 - 复制活动、数据流或 Spark
使用此参考指南和示例方案帮助你确定是否需要使用复制活动、数据流或 Spark 来处理 Microsoft Fabric 的工作负载。
复制活动、数据流和 Spark 属性
管道复制活动 | 数据流 Gen 2 | Spark | |
---|---|---|---|
用例 | 数据湖和数据仓库迁移, 数据引入, 轻量级转换 |
数据引入, 数据转换, 数据整理、 数据剖析 |
数据引入, 数据转换, 数据处理 数据剖析 |
主要开发人员角色 | 数据工程师, 数据集成器 |
数据工程师, 数据集成器, 业务分析师 |
数据工程师, 数据科学家, 数据开发人员 |
主要开发人员技能集 | ETL、 SQL、 JSON |
ETL、 M、 SQL |
Spark (Scala、Python、Spark SQL、R) |
编写的代码 | 无代码, 低代码 |
无代码, 低代码 |
代码 |
数据卷 | 低到高 | 低到高 | 低到高 |
开发接口 | 巫师 帆布 |
Power Query | 笔记本 Spark 任务定义 |
源 | 30 多个连接器 | 150 多个连接器 | 数百个 Spark 库 |
目标 | 超过 18 个连接器 | Lakehouse, Azure SQL 数据库, Azure 数据资源探查器 Azure Synapse Analytics |
数百个 Spark 库 |
转换复杂性 | 低: 轻型 - 类型转换、列映射、合并/拆分文件、平展层次结构 |
低到高: 300 多个转换函数 |
低到高: 对原生 Spark 和开源库的支持 |
查看以下三种方案,了解如何在 Fabric 中使用数据。
Scenario1
数据工程师 Leo 需要从本地和云等外部系统引入大量数据。 这些外部系统包括数据库、文件系统和 API。 Leo 不想为每个连接器或数据移动操作编写和维护代码。 他希望遵循奖牌层(铜牌、银牌和金牌)的最佳做法。 Leo 在 Spark 中没有任何经验,因此他尽可能喜欢拖放 UI,只需最少的编码即可。 他还希望按计划处理数据。
第一步是从 Azure 数据资源和各种第三方源(如 Snowflake Web、REST、AWS S3、GCS 等)获取原始数据进入铜牌层湖屋。 他想要一个经过整合的湖屋,以便让各种 LOB、本地和云源中的所有数据都驻留在一个位置。 Leo 查看选项,并选择“管道复制活动”作为原始二进制副本的适当选择。 此模式适用于历史数据和增量数据刷新。 借助复制活动,Leo 可以根据需要将金牌数据加载到数据仓库(无需使用代码),并且管道提供可以移动 PB 级数据的大规模数据引入。 复制活动是将 PB 级数据从各种源(临时或定期)移动到湖屋和仓库的最佳低代码和无代码选择。
Scenario2
Mary 是一名数据工程师,深入了解多个 LOB 分析报告要求。 上游团队已成功实施了一个解决方案,将多个业务线的历史数据和增量数据迁移到一个通用的数据湖仓。 Mary 的任务是清理数据、应用业务逻辑并将其加载到多个目标(例如 Azure SQL DB、ADX 和 lakehouse),以准备各自的报告团队。
Mary 是一位经验丰富的 Power Query 用户,数据量处于低到中等范围内,以实现所需的性能。 数据流提供无代码或低代码接口,用于从数百个数据源引入数据。 使用数据流,可以使用 300 多个数据转换选项转换数据,并使用易于使用、高度可视的用户界面将结果写入多个目标。 Mary 审查这些选项,并决定使用 Dataflow Gen 2 作为她的首选转换选项是有意义的。
Scenario3
Adam 是一家大型零售公司的数据工程师,该公司使用 Lakehouse 来存储和分析其客户数据。 作为他工作的一部分,Adam 负责构建和维护数据管道,以提取、转换和加载数据到湖屋。 公司的业务要求之一是执行客户评审分析,以深入了解客户的体验并改进其服务。
Adam 决定最佳选择是使用 Spark 生成提取和转换逻辑。 Spark 提供了一个分布式计算平台,可以并行处理大量数据。 他使用 Python 或 Scala 编写 Spark 应用程序,该应用程序从 OneLake 读取结构化、半结构化和非结构化数据,以获取客户评论和反馈。 该应用程序可以清理、转换数据并将其写入湖屋中的 Delta 表。 然后,数据已准备好用于下游分析。
相关内容
- 如何通过复制活动复制数据
- 快速入门:创建第一个数据流来获取和转换数据
- 如何在 Fabric 中创建 Apache Spark 作业定义