你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Microsoft Fabric 上的 Greenfield lakehouse

Microsoft Fabric
Power BI

本示例工作负荷说明了通过使用 Microsoft Fabric 和湖仓一体设计模式来创建可伸缩数据平台的全新解决方案。 Fabric 是一个集成了数据存储、处理和分析的平台。 全新湖仓一体为设计高效、面向未来的数据生态系统提供了一个崭新起点。

体系结构

演示了通过在 Microsoft Fabric 上使用湖仓一体设计范例来构建稳健、可伸缩数据平台的全新解决方案的示意图。

下载此体系结构的 Visio 文件

数据流

这种设计反映了 Lambda 体系结构,它将数据处理分为两层:

  • 定期处理的大批量处理层,用于历史分析
  • 用于实时分析的低延迟、高吞吐量流处理层

流处理路径可以近乎实时地引入和处理数据,因此非常适合仪表板和异常情况检测。 批处理路径可处理完整的数据集,从而确保数据的一致性,并可进行复杂的历史分析。 这种双管齐下的方法既能提供实时的见解,又能保持可靠的记录以供日后探索。

冷路径:Batch 分析

依赖于关系 SQL 语义的数据仓库是历史数据分析的传统方法。 然而,随着时间的推移,这种模式也在不断演变,而湖仓一体则是当前批处理数据分析的行业标准。 湖仓一体建立在开放源代码文件格式之上,与传统数据仓库的不同之处在于,它可以处理所有类型的数据:结构化、半结构化和非结构化数据。 湖仓一体的计算层通常建立在 Apache Spark 框架之上,该框架因其分布式计算能力和高性能而成为了处理大数据的首选引擎。 Fabric 基于开源的 Delta Lake 文件格式和托管 Spark 运行时,可提供原生的湖仓一体体验。

湖仓一体实现通常使用奖牌体系结构。 在此体系结构中,铜层包含原始数据,银层包含经验证和已删除重复数据的数据,而黄金层包含高度优化的数据,适合支持面向企业的用例。 这种方法适用于所有组织和行业。 虽然这是一般方法,但可根据自己的要求进行自定义。 此体系结构展示了如何使用原生 Fabric 组件来创建湖仓一体。

通过数据工厂的数据引入

(请参阅示意图中的步骤 1。)

Fabric 中的 Azure 数据工厂功能提供了 Azure 数据工厂服务的功能,后者是一种广泛使用的数据集成服务。 虽然数据工厂服务主要通过管道来提供业务流程功能,但 Fabric 中的功能同时提供管道和数据流。

  • 数据管道让你能够应用开箱即用的丰富数据业务流程功能,以组成满足企业需求的灵活数据工作流。
  • 数据流让你能够在数据流设计器中使用 300 多种转换。 通过使用与 Power Query 类似的图形界面,你可以使用这些转换来转换数据。 这些转换包括基于 AI 的智能数据转换。 数据流还可以将数据写入 Fabric 中的原生数据存储,如湖仓一体、仓库、Azure SQL 和 Kusto 数据库。

你可以根据自己的需求,使用其中一种或两种功能来创建丰富的元数据驱动引入框架。 可以按照定义的计划或使用事件触发器从各种源系统导入数据。

数据转换

(请参阅示意图中的步骤 2。)

数据准备和转换有两种方法。 如果你更喜欢代码优先的体验,则可以使用 Spark Notebooks。 如果你更喜欢低代码或无代码体验,则可以使用数据流。

Fabric Notebooks 是开发 Apache Spark 作业的重要工具。 它们提供了一个基于 Web 的交互图面,数据工程师可利用该图面来编写代码。 它们还提供丰富的可视化功能,并支持使用 Markdown 文本。 数据工程师编写用于数据引入、数据准备和数据转换的代码。 数据科学家使用 Notebooks 来创建机器学习解决方案。 例如,他们会用它们来创建实验和模型,并跟踪和部署模型。

Fabric 中的每个工作区都配有一个 Spark 初学者池,用于默认 Spark 作业。 有了初学者池,就有望实现快速的 Apache Spark 会话初始化,通常在 5 到 10 秒内即可完成,而无需任何手动设置。 你还可以根据自己的数据工程需求来灵活自定义 Apache Spark 池。 你可以根据 Spark 作业要求来确定节点大小、自动缩放和动态分配执行程序。 对于 Spark 运行时自定义,可以使用环境。 在一个环境中,你可以配置计算属性,选择不同的运行时,并根据工作负荷要求来设置库包依赖项。

数据流允许你从各种来源提取数据,使用各种操作对其进行转换,并将其加载到目标中。 从传统上讲,数据工程师会花费大量时间提取、转换数据并将数据加载为可使用的格式,以便进行下游分析。 数据流 Gen2 通过在 Power Query Online 中使用可视化指示,为执行提取、转换和加载 (ETL) 任务提供了一种简单、可重复使用的方法。 数据流保留了所有转换步骤。 若要在转换后执行其他任务或将数据加载到其他目标,请创建一个数据管道并将数据流 Gen2 活动添加到管道业务流程。

热路径:实时分析

实时数据处理对于希望保持敏捷性、快速做出明智决策并利用即时见解来改善运营和客户体验的企业来说至关重要。 在 Fabric 中,这项功能由实时智能服务提供。 它由多个捆绑在一起的 Fabric 功能组成,可通过实时中心访问。 实时中心为整个组织内的动态数据流式处理提供了一个位置。

Fabric 中的实时智能功能可对事件驱动的场景、流数据和数据日志进行分析和数据可视化。 它通过使用无代码连接器目录连接各种来源的基于时间的数据,并为数据引入、转换、存储、分析、可视化、跟踪、AI 和实时操作提供端到端解决方案。 虽然服务名称中带有“实时”一词,但你的数据并不需要以很高的速率和流量传输。 实时智能提供事件驱动而非计划驱动的解决方案。

实时引入

(请参阅示意图中的步骤 3。)

事件流是 Fabric 的一项功能,可通过无代码方法从各种来源引入实时事件并将其发送到不同的目标。 它可以根据内容进行数据筛选、转换、聚合和路由规划。 还可以使用它从现有信息流中创建新信息流,并通过实时中心在整个组织内共享这些信息流。 Eventstream 支持多个数据源和数据目标。 可以使用多种连接器来连接外部源,如 Apache Kafka 群集、数据库变更数据捕获源、AWS 流源 (Kinesis) 和 Google (GCP Pub/Sub)。

可以创建一个 eventstream,在流中添加事件数据源,选择性地添加转换以转换事件数据,然后将数据路由到支持的目标。 Fabric 湖仓一体是受支持的目标之一,因此可以在将实时事件引入湖仓一体之前对其进行转换。 实时事件将转换为 Delta Lake 格式,然后存储在指定的湖仓一体表中。 这种模式可用于数据仓库方案和快速移动数据的历史分析。

实时分析

(请参阅示意图中的步骤 4。)

在 Fabric 中使用实时智能时,根据你的用例,有两种典型的流数据路径:Reflex 项目和 eventhouse

Reflex 是一个 Fabric 项目,可让你在数据条件发生时做出反应。 这种反应可以是通过电子邮件或 Microsoft Teams 发送一条简单的警报信息,也可以是通过触发 Power Automate 流程来调用自定义操作。 也可以通过 Relex 来触发任何 Fabric 项目。 许多可观测性用例都由 Reflex 支持,其中之一就是在 eventstream 中出现流数据时对其做出反应。

eventhouse 是一个或多个 Kusto 查询语言 (KQL) 数据库的集合。 KQL 数据库专为结构化、半结构化和非结构化数据的基于时间的流式处理事件而设计。 数据会根据引入时间自动编制索引和分区,从而提供快速、复杂的分析查询功能,甚至在数据流进入时也是如此。 存储在 eventhouse 中的数据可在 OneLake 中供其他 Fabric 流程使用。 可以在 Fabric 中使用各种代码、低代码或无代码选项来查询这些数据,包括 KQL queryset 中的本地 KQL 和 T-SQL。

实时仪表板旨在从流入 eventhouse 的数据中提供即时见解。 可以在仪表板中添加各种类型的可视化信息,如图表和图形,并根据自己的需要进行自定义。 实时仪表板的特定用途是在 eventhouse 的高速数据中快速识别趋势和异常。 它们与 Power BI 仪表板不同,后者适用于企业 BI 报告工作负荷。

数据服务

(请参阅示意图中的步骤 5。)

有多种低代码或专业代码选项可用于使用 Fabric 湖仓一体和 eventhouse 中的数据。

SQL 分析终结点

Fabric 中的每个湖仓一体都会自动生成 SQL 分析终端节点。 SQL 分析终端节点为只读。 要修改数据,需要切换到湖仓一体模式并使用 Spark。 通过从湖仓一体模式切换到湖仓一体的 SQL 模式,可以直接在 Fabric 门户中使用 SQL 分析终结点来查询数据。 或者,也可以使用湖仓一体的 SQL 连接字符串,通过 Power BI、Excel 和 SQL Server Management Studio 等客户端工具来进行连接。 此选项适合数据团队中的数据和业务分析师。

Spark Notebooks

Notebooks 是与湖仓一体数据交互的一种常用方法。 Fabric 提供了一个基于 Web 的交互图面,数据工作者可以用它来编写代码。 这些辅助角色可以应用丰富的可视化和 Markdown 文本。 数据工程师编写用于数据引入、数据准备和数据转换的代码。 数据科学家使用 Notebooks 来进行数据探索、创建机器学习实验和模型,以及跟踪和部署模型。 此选项适合专业数据工程师和数据科学家。

Power BI

Fabric 中的每个湖仓一体都随附了预生成的默认语义模型。 在设置湖仓一体并将数据加载到其中时,它就会自动创建。 这些模型继承了湖仓一体的业务逻辑,可以更轻松地直接在湖仓一体体验中创建 Power BI 报告和仪表板。 还可以根据特定业务需求,在湖仓一体表上创建自定义语义模型。 在湖仓一体上创建 Power BI 报告时,可以使用 Direct Lake 模式,该模式不需要单独导入数据。 通过该模式,你可以在不将数据移出湖仓一体的情况下获得报告的内存中性能。

自定义 API

Fabric 可为所有项目提供丰富的 API 图面。 OneLake 通过 Azure Data Lake Storage API 和 SDK 提供对所有 Fabric 项目的开放访问。 只需使用 OneLake URI,即可通过任何与 Data Lake Storage 兼容的 API、SDK 或工具访问 OneLake 中的数据。 可以使用 Azure 存储资源管理器将数据上传到湖仓一体,或通过 Azure Databricks 中的快捷方式来读取增量表。 OneLake 还支持 Azure Blob 文件系统 (ABFS) 驱动程序,以便与 Data Lake Storage 和 Azure Blob 存储 更兼容。 要在下游应用中使用流数据,可以将 eventstream 数据推送到自定义 API 终结点。 然后就可以使用 Azure 事件中心或 AMQP 或 Kafka 协议从 Fabric 使用这些流式处理输出。

Power Automate(工作流程自动化)

Power Automate 是一个低代码应用程序平台,可用于自动执行重复任务并处理数据。 Fabric 中的 Reflex 项目支持将 Power Automate 流作为目标。 此集成可以解锁许多用例,并允许通过使用适用于 Microsoft 和非 Microsoft 系统的各种连接器来触发下游操作。

组件

此解决方案中使用了以下组件。

  • Fabric:专为企业设计的端到端基于云的数据分析平台。 它为数据引入、转换、分析和可视化等各种数据任务提供了一个统一的环境。

    • OneLake:Fabric 中所有数据的中心枢纽。 它被设计成一个开放的数据湖,这意味着它能以本地格式存储数据,而不受结构的限制。

    • 数据工厂:基于云的 ETL 和业务流程服务,用于自动数据移动和转换。 通过它,你可以在各种数据源之间实现大规模的数据移动和转换自动化。

    • 数据工程:能够收集、存储、处理和分析大量数据的工具。

    • 数据科学:使你能够完成端到端数据科学工作流以丰富数据并获得业务见解的工具。

    • 实时智能:提供流引入和处理功能的服务。 它可以让你从不断流动的数据中获得见解,从而根据实时趋势和异常情况更快地做出决策。

    • Copilot:可用于在 Fabric 和 Power BI 中使用自然语言分析数据、生成见解并创建可视化和报告的一个工具。

  • Power BI:一种商业智能工具,用于创建交互式仪表板和报告,以便让数据可视化并获得见解。

备选方法

Fabric 提供了一系列强大的工具,但根据具体需求,你可能会受益于 Azure 生态系统中其他服务提供的增强功能。

  • Azure Databricks 可以替代或补充本机 Fabric 数据工程功能。 Azure Databricks 通过提供基于云的 Apache Spark 环境,为大规模数据处理提供了另一种选择。 Azure Databricks 还为你的整个数据资产和功能提供通用治理,以支持数据科学、数据工程、机器学习、AI 和基于 SQL 的分析等关键用例。

  • Azure 机器学习可取代或补充本机 Fabric 数据科学工具。 机器学习超越了 Fabric 中的模型实验和管理功能,增加了能够托管用于在线推理用例的模型、监控模型偏移以及创建自定义生成式 AI 应用程序的功能。

方案详细信息

此体系结构适用于以下方案:

  • 没有旧式系统限制的全新组织。
  • 预计数据量在 0.5 TB 至 1.5 TB 之间的组织。
  • 喜欢简单、精简的模式,在成本、复杂性和性能之间取得平衡的组织。
  • 需要一个简单、经济、高性能的数据平台来满足报告、分析和机器学习需求的组织。
  • 希望整合多个来源的数据以获得统一视图的组织。

不建议将此解决方案用于:

  • 具有 SQL 或关系数据库背景,但在 Apache Spark 方面技能有限的团队。
  • 从旧式系统或数据仓库迁移到新式平台的组织。

注意事项

这些注意事项实施 Azure 架构良好的框架的支柱原则,即一套可用于改善工作负荷质量的指导原则。 有关详细信息,请参阅 Microsoft Azure 架构良好的框架

可靠性

可靠性可确保应用程序能够履行对客户的承诺。 有关详细信息,请参阅可靠性设计评审核对清单

Fabric 可跨可用性区域自动复制资源,而无需进行任何配置。 例如,在区域范围的服务中断期间,无需采取任何行动来恢复区域。 在 受支持的区域中,Fabric 可以自动自我愈合和重新平衡,以利用正常的区域。

安全性

安全性针对蓄意攻击及滥用宝贵数据和系统提供保障措施。 有关详细信息,请参阅可靠性设计审查检查表

可以根据不断变化的需求和要求,使用 Fabric 来管理、控制和审核你的安全设置。 有关使用 Fabric 的主要安全建议包括:

  • 身份验证。 在 Microsoft Entra ID 中配置单点登录 (SSO),以便从各种设备和位置进行访问。

  • 基于角色的访问控制 (RBAC)。 实施基于工作区的访问控制,以便管理谁可以访问特定数据集并与之交互。

  • 网络安全。 在连接网络内外的数据或服务时,可以使用 Fabric 入站和出站网络安全控制。 关键功能包括 条件访问专用链接受信任的工作区访问托管专用终结点

  • 审核日志。 使用 Fabric 提供的详细审核日志来跟踪用户活动,并确保整个平台的问责制。

有关详细信息,请参阅 Microsoft Fabric 中的安全性

成本优化

成本优化是研究减少不必要的开支和提高运营效率的方法。 有关详细信息,请参阅 成本优化的设计评审清单。

Fabric 为给定数量的容量单元 (CU) 提供容量预留。 当你承诺预留一年的 Fabric 容量使用情况时,容量预留将有助于节省成本。

为了最大限度地利用 Fabric 容量,请考虑以下建议:

  • 正确调整 F SKU 大小。 要确定合适的容量大小,可以预置试用容量即用即付 F SKU,以便在购买 F SKU 预留实例之前衡量自己所需的实际容量大小。 建议使用具有代表性的工作负荷执行范围概念验证,监控 CU 使用情况,然后推断出生产中的 CU 估计使用情况。 Fabric 可提供无缝缩放。 可以从保守的容量大小开始,如果需要更大的容量,再进行纵向扩展。
  • 监控使用模式。 定期跟踪和分析使用情况,以确定高峰和非高峰时段。 这样做可以帮助你了解资源使用率最高的时间,从而在非高峰期安排非关键任务,以便避免 CU 使用量激增。
  • 优化查询和工作负荷。 确保优化查询和工作负荷,以便减少不必要的计算使用。 优化 DAX 查询、Python 代码和其他操作。
  • 使用突发和平滑。 利用 Fabric 的突发和平滑功能来处理 CPU 密集型活动,而无需更高的 SKU。 这样做既有助于控制成本,又能保持性能。 有关详细信息,请参阅评估和优化 Fabric 容量
  • 设置警报和通知。 配置主动警报,以便容量管理员监控和管理高计算使用情况。 这样做可以使他们及时采取行动,防止成本超支。
  • 实现工作负荷管理。 根据资源可用性和系统需求,错开时间计划日志运行作业,以便优化容量使用。 有关详细信息,请参阅工作负荷管理

还要记住以下注意事项:

  • Data Lake Storage 定价取决于存储的数据量以及使用数据的频率。 示例定价包括 1 TB 的数据存储量以及其他事务假设。 1 TB 是指数据湖的大小,而不是原始的旧数据库大小。
  • Fabric 定价基于 Fabric F SKU 容量价格或 Premium Per User 价格。 无服务器容量会使用已购买的专用容量中的 CPU 和内存。
  • 事件中心根据层级、预配的吞吐量单位和接收到的入口流量进行计费。 该示例假设标准层中的一个吞吐量单位在一个月内超过一百万个事件。

卓越运营

卓越运营涵盖了部署应用程序并使其在生产环境中保持运行的运营流程。 有关详细信息,请参阅设计卓越运营的审查清单

Fabric 提供了许多组件来帮助管理数据平台。 每个组件都支持独特的操作,你可以在 Microsoft Fabric Capacity Metrics app 中查看这些操作。 使用 Fabric Capacity Metrics app 监控容量消耗,并就如何使用容量资源做出明智决策。

性能效率

性能效率是工作负荷以高效方式满足用户对它的需求的能力。 有关详细信息,请参阅性能效率设计评审核对清单

Fabric 提供多种功能来优化各组件的性能。 这些工具和做法有助于有效管理计算资源,防止过载,并就工作负荷的缩放和优化做出明智的决策。

Fabric 中的一些主要性能效率功能包括:

  • 突发和平滑,以确保快速完成 CPU 密集型活动,而不需要更高的 SKU。 将这些活动安排在一天中的任何时间。

  • 限制,当 CPU 需求持续超过 SKU 限制时,容量会延迟或拒绝操作。

  • Fabric Capacity Metrics app,用于可视化容量使用情况、优化工件性能和优化高计算项目。 应用可区分交互式操作(如 DAX 查询)和后台操作(如语义模型刷新),以便进行有针对性的优化。

作者

本文由 Microsoft 维护, 它最初是由以下贡献者撰写的。

主要作者:

要查看非公开的 LinkedIn 个人资料,请登录到 LinkedIn。

后续步骤