如何在Microsoft Fabric中搭建Medallion架构及青铜到黄金管道?
在Microsoft Fabric中搭建从青铜层到黄金层的Medallion数据管道
1. 准备基础环境
- 创建一个Fabric工作区,在工作区内新建3个Lakehouse,分别命名为
Bronze_LH、Silver_LH、Gold_LH,对应Medallion架构的三层。 - 确保拥有工作区编辑权限及Lakehouse的读写权限。
2. 青铜层:导入原始数据
青铜层用于存储未经处理的原始数据,支持多种导入方式:
- 本地文件上传:直接将CSV/Parquet等格式的原始文件上传到
Bronze_LH的Files或Tables目录。 - 复制数据活动:用Fabric Data Pipeline的复制数据活动,从Azure SQL、Blob Storage、API等外部数据源同步原始数据到
Bronze_LH的表中。示例Spark SQL语句:CREATE TABLE Bronze_LH.raw_sales USING CSV OPTIONS (path 'Files/raw/sales/*.csv', header 'true', inferSchema 'true');
3. 白银层:数据清洗与转换
白银层负责完成标准化、去重、补全缺失值、格式转换等核心清洗操作,可通过两种方式实现:
- Spark Notebook处理:
# 读取青铜层原始数据 df = spark.sql("SELECT * FROM Bronze_LH.raw_sales") # 执行清洗逻辑:去重、填充缺失值、转换日期格式 cleaned_df = df.dropDuplicates() \ .fillna({"customer_id": "unknown", "amount": 0}) \ .withColumn("sale_date", to_date(col("sale_date"), "yyyy-MM-dd")) # 将清洗后的数据写入白银层 cleaned_df.write.mode("overwrite").saveAsTable("Silver_LH.cleaned_sales") - 可视化数据流:用Data Pipeline的数据流活动,通过拖拽配置过滤无效数据、映射字段类型、关联表等规则,无需编写代码。
4. 黄金层:数据聚合与业务建模
黄金层是面向业务场景的结构化数据模型,比如维度表、事实表,用于BI分析或报表输出:
- Spark SQL创建聚合表示例:
-- 创建每日区域销售汇总的黄金层表 CREATE TABLE Gold_LH.daily_sales_summary USING PARQUET AS SELECT sale_date, region, COUNT(DISTINCT order_id) AS total_orders, SUM(amount) AS total_revenue FROM Silver_LH.cleaned_sales GROUP BY sale_date, region; - 数仓模式:如果熟悉传统数仓,也可以用Fabric Data Warehouse构建黄金层,支持T-SQL语法完成建模。
5. 自动化调度
若需定期同步更新数据,可在Data Pipeline中配置触发器:
- 时间触发:设置每日凌晨等固定时间,自动执行从青铜到白银再到黄金的全流程。
- 事件触发:绑定青铜层数据更新事件,当有新原始数据导入时自动启动处理流程。
内容的提问来源于stack exchange,提问作者Anonymous
相关产品推荐
相关产品推荐

