Microsoft Fabric Dataflow Gen2 性能革命:从 Dataslows 到 Dataflows

作者
  • avatar
    姓名
    Nino
    职业
    Senior Tech Editor

多年来,数据工程师和 Power BI 开发人员一直对 Dataflows(数据流)爱恨交织。虽然低代码、基于 Web 的 ETL 工具的愿景非常诱人,但现实情况往往让它们赢得了 “Dataslows”(数据慢流)的绰号。它们经常被认为是摄取数据最慢、最不理想的选择,在处理大型数据集时极易出现超时和性能瓶颈。然而,随着 Microsoft Fabric 的到来和 Dataflow Gen2 的引入,范式发生了根本性的转变。我们正在见证一场性能革命,它重新定义了 Power Query 在企业数据栈中的角色。

架构转型:为什么 Gen2 与众不同

Dataflow Gen1 (Power BI) 和 Dataflow Gen2 (Fabric) 之间的根本区别在于计算和存储架构。在 Gen1 中,Mashup 引擎负责数据转换和存储管理,通常在有限的共享资源上运行。而在 Gen2 中,微软将这些职责解耦,并将其集成到 Fabric 生态系统中。

最重要的升级之一是引入了 暂存 (Staging) 机制。当你创建一个 Dataflow Gen2 时,Fabric 会自动在你的 Lakehouse 中创建一个暂存区。这允许系统快速落地数据,然后利用高性能的 Fabric 计算引擎(Spark 或 SQL 引擎)执行复杂的转换。这与过去的方法大相径庭,过去每一个转换步骤都必须由 Mashup 引擎按顺序处理。

快速复制 (Fast Copy):数据摄取的规则改变者

“快速复制” 功能可能是性能提升中最关键的部分。传统上,Power Query 会逐行读取数据,这对于数百万行的表来说效率极低。快速复制允许 Dataflow Gen2 绕过 Mashup 引擎进行数据传输,转而使用类似于 Azure Data Factory 中 “复制活动” 的高吞吐量连接器。

要触发快速复制,必须满足某些条件:

  • 数据源:必须是受支持的高速数据源(例如 ADLS Gen2、Azure SQL Database、Blob Storage)。
  • 目的地:必须是 Fabric Lakehouse、Warehouse 或 KQL Database。
  • 转换操作:在数据到达目的地之前,只允许执行某些可 “折叠” (Foldable) 的转换。

当满足这些条件时,你会发现摄取速度比旧版 Dataflows 提高 10 到 20 倍。对于希望优化管道的开发人员,利用 n1n.ai 访问先进的 LLM(如 Claude 3.5 Sonnet)可以帮助编写优化的 M 代码,确保转换逻辑能够实现 “查询折叠”,防止 “快速复制” 回退到较慢的 Mashup 引擎模式。

数据目的地与计算引擎

在 Gen1 中,目的地始终是专有的内部存储或 Azure Data Lake。Gen2 引入了灵活的 数据目的地。你现在可以直接写入:

  1. Fabric Lakehouse (Delta/Parquet)
  2. Fabric Warehouse (T-SQL)
  3. Azure SQL Database
  4. Azure Synapse Analytics

通过写入这些目的地,Dataflow Gen2 可以利用底层的 Fabric 容量 (Capacity)。如果你使用的是 F64 或更高规格的容量,这些操作可用的计算能力将远高于旧的 Power BI Premium 容量。这意味着过去需要数小时才能完成的连接 (Join)、合并 (Merge) 和聚合 (Aggregation) 操作,现在只需几分钟即可完成。

性能对比:Gen1 vs. Gen2

特性Dataflow Gen1Dataflow Gen2性能影响
引擎仅 Mashup 引擎Mashup + Fabric 计算引擎
数据摄取基于行 (Row-based)快速复制 (批量)极高
暂存机制无(仅内部)基于 Lakehouse 的暂存
编排基础刷新与 Data Factory 管道集成
扩展性受限于工作区随 Fabric 容量扩展

优化 Dataflow Gen2 的专业技巧

  1. 明智使用暂存:对于小型数据集,暂存实际上可能会增加开销。如果写入 Lakehouse 的开销超过了转换带来的收益,你可以针对特定查询禁用暂存。
  2. 监控 “刷新历史”:Fabric 为 Dataflow Gen2 提供了详细的执行计划。在刷新历史中寻找 “Copy” 图标,以验证是否真正利用了快速复制功能。
  3. 利用 AI 编写 M 代码:编写复杂的 Power Query M 代码可能非常乏味。使用 n1n.ai 提供的 LLM API(如 GPT-4o),你可以用自然语言描述转换逻辑,并获得优化的、支持折叠的 M 代码片段,从而最大化性能。
  4. 分区策略:虽然 Dataflow Gen2 目前还没有与 Gen1 完全相同的 “增量刷新” UI,但你可以通过在 Fabric Data Factory 中使用参数和管道循环来实现手动分区,从而分块加载数据。

与现代数据栈集成

Microsoft Fabric 不仅仅是移动数据,它还旨在让数据更易于被 AI 和分析工具使用。一旦你的数据通过 Dataflow Gen2 进入 Lakehouse,它就会自动在 “OneLake” 中可用。这实现了与 AI 服务的无缝集成。例如,你可以使用 n1n.ai 将 Fabric 托管的数据连接到各种 LLM,用于自动洞察生成、情感分析或数据清洗脚本。

总结

从 “Dataslows” 到高性能 Dataflows 的演变,证明了微软对 Fabric 生态系统的投入。通过将计算与存储解耦,并引入快速复制和 Lakehouse 暂存等功能,Dataflow Gen2 已成为一个可用的企业级 ETL 工具。无论你是迁移旧的 Power BI 工作负载,还是构建新的 Lakehouse 架构,了解这些性能杠杆都至关重要。在处理复杂逻辑时,结合 n1n.ai 提供的强大 AI 能力,将使你的数据工程效率提升到新的高度。

Get a free API key at n1n.ai