SuperAPI AI 工具集

microsoft-fabric-unified-analytics

数据与分析

查看项目

更新于 10-15 09:22

技能介绍

Microsoft Fabric 统一分析平台(Skill by ara.so — Data Skills collection)演示如何用 Microsoft Fabric 构建生产级统一分析平台,实现 Medallion 架构(Bronze → Silver → Gold),并整合 OneLake、Dataflow Gen2、Fabric Notebook(PySpark)、语义模型与 Power BI。

用途 该项目用于展示端到端分析流程:从原始数据摄取、清洗转换,到业务指标建模与可视化。核心目标包括:Lakehouse 架构(Bronze 原始层、Silver 清洗层、Gold 业务就绪层);统一 SaaS 平台(摄取、处理、建模、可视化在同一环境);OneLake 集中式数据湖基础;低代码与代码结合(Dataflow Gen2 可视化 + PySpark Notebook);语义建模(可复用业务指标与 KPI);原生 BI 集成(Power BI 直连平台)。

架构概览 原始数据 → Bronze 层(OneLake)→ Dataflow Gen2 → Silver 层(清洗)→ Fabric Notebook(PySpark)→ Gold 层(业务 KPI)→ 语义模型 → Power BI 报表。

前置条件 Microsoft Fabric 工作区(建议 F64 或更高容量);Microsoft Fabric 许可证(Premium 或试用容量);Power BI Pro/Premium(用于发布报表);Python 3.8+(可选,用于本地 Notebook 开发);Azure 存储账户(若从外部源摄取)。

环境搭建

  1. 创建工作区:通过 Web UI 访问 https://app.fabric.microsoft.com,点击 Workspaces → New Workspace,命名如 RetailAnalyticsPlatform,分配 Fabric 容量。
  2. 创建 Lakehouse:New → Lakehouse,命名 retail_analytics_lakehouse,生成支持 Delta 表的 OneLake 存储。
  3. 组织 Medallion 层:在 Lakehouse 中建立 Files/bronze、Files/silver、Files/gold 目录结构。

数据摄取到 Bronze 层 可通过 Lakehouse UI 上传 CSV 至 Files/bronze/online_retail/,或使用 Fabric Notebook 从外部源(如 Azure Blob)读取并写入 Delta 表。示例代码使用 mssparkutils.credentials.getSecret 获取 SAS Token,读取 CSV 后以 Delta 格式写入 Files/bronze/online_retail。

Dataflow Gen2:Bronze 到 Silver 转换 在 Fabric 工作区新建 Dataflow Gen2,从 Lakehouse 获取 Bronze 层表,使用 Power Query M 语言进行转换:去重、处理缺失值、添加业务列(line_total)、提取日期组件(year、month)、标记退货(is_return)、更改数据类型。数据目标设为 Lakehouse → silver/online_retail_cleaned,发布后可经 Fabric REST API 触发刷新。

Fabric Notebook:Silver 到 Gold(PySpark) 收入趋势:读取 Silver 层,过滤退货,按年/月聚合总收入、交易数、平均订单价值,写入 Files/gold/revenue_trends。 产品表现:按 StockCode、Description 聚合收入、销量、交易数、平均单价,取前 100 写入 Files/gold/product_performance。 客户分析:按 CustomerID 聚合总消费、订单数、购买产品数、平均订单价值,写入 Files/gold/customer_analytics。 RFM 分群:计算最近购买时间、频率、金额,使用 ntile 生成 R/F/M 评分,组合为 rfm_score 并分类为 Champions、Loyal Customers、Potential Loyalists、At Risk、Lost,写入 Files/gold/rfm_segmentation。

语义模型 从 Lakehouse 的 Tables 标签选择 Gold 层表,新建语义模型 RetailAnalyticsModel。在 Power BI Desktop 或 Fabric Model View 中定义关系(如 Calendar 表与 revenue_trends 关联),并创建 DAX 度量值:Total Revenue、Total Transactions、Avg Order Value、Revenue Growth %、Customer LTV、Top Product Revenue。

Power BI 报表 Power BI 直接连接 Fabric 语义模型,无需额外代码。关键可视化包括:收入趋势折线图、产品表现表格、RFM 分群饼图、KPI 卡片。

调度与编排 通过 UI 创建 Fabric Pipeline(如 RetailAnalytics_ETL_Pipeline),添加 Dataflow Gen2 活动、Notebook 活动、刷新语义模型活动,设置每日 2:00 触发或基于事件触发。也可用 Fabric REST API 执行管道。

常见模式 Delta 表优化:使用 DeltaTable.optimize().executeCompaction() 与 vacuum(168)。 增量加载:从 Gold 层获取最后处理时间戳,仅处理新记录并追加。 错误处理与日志:将执行状态写入 Files/monitoring/execution_logs。 Fabric Shortcuts:通过 Lakehouse UI 创建指向外部数据(Azure Data Lake Storage Gen2、OneLake、S3 等)的快捷方式,无需复制数据。

故障排查 Dataflow Gen2 刷新失败:检查查询折叠优化,尽早过滤减少数据量。 Notebook Spark 内存问题:调整 spark.executor.memory、spark.driver.memory、spark.sql.shuffle.partitions,使用 repartition 或分批处理。 Delta 表模式演进:启用 mergeSchema 或显式覆盖。

限制 资料未提供具体收费、价格、平台限制或效果保证;实际使用需依据 Microsoft Fabric 官方文档与自身容量配置。