Token导航 LogoToken导航TokenDH.com
研究检索external-servicegithub未标认证来源可访问许可证需确认审计通过

e2e-medallion-architecturee2e 奖章架构

Agent Skill

e2e-medallion-architecture 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

447

周安装

19

GitHub Stars

306

下载量

157
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:e2e-medallion-architecture(e2e 奖章架构)
来源仓库:https://github.com/microsoft/skills-for-fabric
仓库路径:skills/e2e-medallion-architecture
安装命令:
npx skills add https://github.com/microsoft/skills-for-fabric --skill e2e-medallion-architecture
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/microsoft/skills-for-fabric --skill e2e-medallion-architecture

简介

Microsoft Fabric 奖章架构技能提供数据湖仓一体化解决方案实施指南。

  • 首次使用需执行 check-updates 确保本地版本与云端同步,避免兼容性问题。
  • 通过 workspace/item ID 精准定位资源,支持 lakehouse/table 级别的策略配置。
  • 需结合具体 Fabric 订阅类型判断功能可用性,免费版可能有特性限制。
  • e2e-medallion-architecture 属于研究检索类 Skill,可作为该场景下的辅助能力补充。

SKILL.md

Update Check — ONCE PER SESSION (mandatory) The first time this skill is used in a session, run the check-updates skill before proceeding. - GitHub Copilot CLI / VS Code: invoke the check-updates skill. - Claude Code / Cowork / Cursor / Windsurf / Codex: compare local vs remote package.json version. - Skip if the check was already performed earlier in this session.
CRITICAL NOTES 1. To find the workspace details (including its ID) from workspace name: list all workspaces and, then, use JMESPath filtering 2. To find the item details (including its ID) from workspace ID, item type, and item name: list all items of that type in that workspace and, then, use JMESPath filtering

End-to-End Medallion Architecture

Prerequisite Knowledge

Read these companion documents — they contain the foundational context this skill depends on:

  • COMMON-CORE.md — Fabric REST API patterns, authentication, token audiences, item discovery
  • COMMON-CLI.mdaz rest, az login, token acquisition, Fabric REST via CLI
  • SPARK-AUTHORING-CORE.md — Notebook deployment, lakehouse creation, job execution
  • notebook-api-operations.mdRequired for notebook creation.ipynb structure requirements, cell format, getDefinition/updateDefinition workflow

For Spark-specific optimization details, see data-engineering-patterns.md.


Architecture Overview

Medallion Architecture is a data lakehouse pattern with three progressive layers:

LayerPurposeOptimization ProfileUse Case
Bronze (Raw)Land raw data exactly as receivedWrite-optimized, append-only, partitioned by ingestion dateAudit trail, reprocessing, lineage
Silver (Cleaned)Deduplicated, validated, conformed dataBalanced read/write, partitioned by business dateFeature engineering, operational reporting
Gold (Aggregated)Pre-calculated metrics for analyticsRead-optimized (ZORDER, compaction), partitioned by month/yearPower BI reports, dashboards, ad-hoc analytics via SQL endpoint
  • Bronze: Schema-on-read — flexible schema, Delta time travel supports audit and rollback
  • Silver: Schema enforcement — reject non-conforming writes; handle schema evolution with mergeSchema when sources change
  • Gold: Strict schema governance — curated, business-approved datasets only

Must/Prefer/Avoid

MUST DO

  • Create a separate lakehouse for each medallion layer (Bronze, Silver, Gold)
  • Add metadata columns in Bronze: ingestion timestamp, source file, batch ID
  • Apply data quality rules in the Bronze-to-Silver transformation (deduplication, null handling, range validation)
  • Use Delta Lake format for all medallion layer tables
  • Use partition-aware overwrite in Silver/Gold writes to avoid reprocessing unchanged data
  • Include validation steps after each layer (row counts, schema checks, anomaly detection)
  • Follow the .ipynb validation + Fabric nuances in notebook-api-operations.md when creating notebooks via REST API — every code cell must include "outputs": [] and "execution_count": null
  • Default to separate workspaces per layer for governance and access control: one workspace each for Bronze, Silver, and Gold
  • Complete the full end-to-end flow — do not stop after creating notebooks; always bind lakehouses, execute notebooks sequentially (Bronze → Silver → Gold), verify results, and connect Power BI to the Gold layer unless the user explicitly requests a partial setup

PREFER

  • Incremental processing (watermark pattern) over full refresh
  • Separate notebooks per layer for independent testing and debugging
  • ZORDER on frequently filtered columns in Gold tables
  • Running OPTIMIZE after writes in Silver and Gold layers
  • Environment-specific Spark configs (write-heavy for Bronze, balanced for Silver, read-heavy for Gold)
  • OneLake shortcuts to expose Gold data to consumer workspaces without duplication
  • Clear layer ownership: engineers own Bronze/Silver, analysts own Gold
  • Fabric Variable Libraries to centralize paths and configuration across layers
  • Multi-workspace deployment patterns for medium/high governance requirements (Bronze/Silver/Gold in separate workspaces)

AVOID

  • Storing all layers in a single lakehouse — this defeats isolation and independent optimization
  • Skipping the Silver layer and going directly from Bronze to Gold
  • Hardcoded workspace IDs, lakehouse IDs, or FQDNs — discover via REST API
  • SELECT * without LIMIT on Bronze tables (they grow unboundedly)
  • Running VACUUM without checking downstream dependencies
  • Chaining OneLake shortcuts between medallion layers (Bronze→Silver→Gold) — each layer must be physically materialized for lineage and governance
  • Copying complete implementation code into skills — guide the LLM to generate instead
  • Reading from external HTTP/HTTPS URLs directly in Spark — Fabric Spark cannot access arbitrary external URLs; land data in lakehouse Files/ first (via curl, OneLake API, or Fabric pipeline Copy activity), then read from the lakehouse path
  • Creating notebooks via REST API without validating .ipynb structure — missing execution_count: null or outputs: [] on code cells causes silent failures or "Job instance failed without detail error"

Workspace Setup Guidance

When setting up a medallion workspace, guide LLM to generate commands for:

  1. Default architecture: create three workspaces (recommended):

- {project}-bronze-{env} - {project}-silver-{env} - {project}-gold-{env}

  1. Create one lakehouse per workspace:

- Bronze workspace → {project}_bronze lakehouse - Silver workspace → {project}_silver lakehouse - Gold workspace → {project}_gold lakehouse

  1. Assign RBAC per layer workspace:

- Bronze: ingestion/engineering write permissions - Silver: engineering/data quality permissions - Gold: analytics/BI consumer access with stricter curation controls

  1. Create notebooks for each layer (one per transformation stage) — follow .ipynb validation + Fabric nuances
  2. Bind each notebook to its lakehouse — set metadata.dependencies.lakehouse with the correct lakehouse ID (see notebook-api-operations.md § Default Lakehouse Binding):

- Bronze notebook → Bronze workspace/lakehouse - Silver notebook → Silver workspace/lakehouse (reads Bronze via cross-workspace oneLake access / fully qualified references) - Gold notebook → Gold workspace/lakehouse (reads Silver via cross-workspace access)

  1. Confirm notebook deployment — check that updateDefinition returned Succeeded; this is sufficient confirmation that content and lakehouse binding persisted. Do NOT call getDefinition to re-verify — it is an async LRO and adds unnecessary latency.
  2. Execute notebooks sequentially — Bronze first, then Silver, then Gold — using POST.../jobs/instances?jobType=RunNotebook with the correct defaultLakehouse in execution config (both id and name required)
  3. Connect Power BI to Gold layer — discover the Gold lakehouse SQL endpoint, create a Direct Lake semantic model, create a report with visuals on the Gold summary table (see Gold Layer → Power BI Consumption)
  4. Create pipeline to orchestrate the Bronze → Silver → Gold flow for recurring execution

Explicit Override: Single Workspace

If the user explicitly asks for a single workspace deployment (for example, POC/small team/monolithic pattern), keep the current approach:

  • One workspace with separate Bronze/Silver/Gold lakehouses
  • Preserve layer separation logically even when workspace is shared
  • Call out governance trade-offs versus multi-workspace design

Parameterize by environment: workspace name suffix (-dev, -prod), data volume (sample vs full), capacity SKU, and Bronze retention period.


Bronze Layer — Ingestion Patterns

When a user requests data ingestion into the Bronze layer, guide LLM to:

  1. Land data in lakehouse first: External data must be staged into the lakehouse Files/ folder before Spark can read it — use one of:

- Fabric Pipeline Copy activity (preferred for recurring loads) — connects to external sources (HTTP, FTP, databases, cloud storage) and writes to OneLake - OneLake API / curl — upload files via REST API using storage.azure.com token (see COMMON-CLI.md § OneLake Data Access) - OneLake Shortcut — for data already in Azure ADLS Gen2, S3, or another OneLake location - notebookutils.fs — copy from mounted storage paths within a notebook - ⚠️ Fabric Spark cannot read from arbitrary HTTP/HTTPS URLsspark.read.format("csv").load("https://...") will fail

  1. Read from lakehouse path: Once data is in Files/, read using lakehouse-relative paths (e.g., spark.read.format("csv").load("Files/landing/daily/"))
  2. Add metadata and write: Tracking columns (ingestion timestamp, source file, batch ID), Delta table with descriptive name, partition by ingestion date, append mode
  3. Validate: Log row counts, validate schema structure, flag anomalies vs historical patterns

Silver Layer — Transformation Patterns

When a user requests Bronze-to-Silver transformation, guide LLM to:

  • Quality rules: Deduplicate on natural/composite key, filter invalid ranges, handle nulls (drop required, fill optional), validate logical constraints
  • Schema conformance: snake_case column names, standardized data types, derived columns (durations, percentages, categories)
  • Schema evolution: Use mergeSchema option when source schemas change; coordinate downstream updates to Gold tables and Power BI datasets
  • Write strategy: Partition by business date, partition-aware overwrite, run OPTIMIZE after write, log before/after metrics

Gold Layer — Aggregation Patterns

When a user requests Gold analytics tables, guide LLM to generate:

  • Common aggregates: Daily/weekly/monthly summaries, dimensional analysis (by location, category, type), trend breakdowns over time, demand patterns (hour-of-day, day-of-week)
  • Spark session config — set these properties in the Gold notebook before any write operations: spark.conf.set("spark.sql.parquet.vorder.default", "true") spark.conf.set("spark.databricks.delta.optimizeWrite.enabled", "true") spark.conf.set("spark.databricks.delta.optimizeWrite.binSize", "1g")

- V-Order (vorder.default) — applies Fabric's columnar sort optimization to all Parquet files, dramatically improving Direct Lake and SQL endpoint read performance - Optimize Write (optimizeWrite.enabled) — coalesces small partitions into optimally-sized files (target ~1 GB per binSize), reducing file count and improving scan efficiency

  • Optimization: ZORDER on filter columns, run OPTIMIZE after writes, pre-aggregate metrics to avoid runtime computation

End-to-End Execution Flow

When setting up medallion architecture end-to-end, the LLM must not stop after creating notebooks and deploying code. The complete lifecycle is:

Create Resources → Deploy Content → Bind Lakehouses → Execute → Verify Results

Step-by-Step

  1. Create layer workspaces and lakehouses (default) — one workspace and one lakehouse per layer (Bronze, Silver, Gold); capture workspace IDs and lakehouse IDs
  2. Create notebooks — one per layer, with valid .ipynb structure (see notebook-api-operations.md)
  3. Bind lakehouse to each notebook — include metadata.dependencies.lakehouse in the .ipynb payload with:

- default_lakehouse: the target lakehouse GUID - default_lakehouse_name: the lakehouse display name - default_lakehouse_workspace_id: the workspace GUID

  1. Deploy notebook contentupdateDefinition with the Base64-encoded .ipynb payload (content + lakehouse binding together)
  2. Confirm deployment — check that each updateDefinition LRO returned Succeeded; that is sufficient. Do NOT call getDefinition to re-verify — it is an async LRO and adds significant latency per notebook.
  3. Execute notebooks sequentially — use POST.../jobs/instances?jobType=RunNotebook:

- Pass defaultLakehouse with both id and name in executionData.configuration - Run Bronze first → poll until Completed → run Silver → poll → run Gold → poll - Check for recent jobs before submitting (prevent duplicates — see SPARK-AUTHORING-CORE.md)

  1. Verify results — after each notebook completes, confirm expected tables exist and row counts are reasonable
  2. Connect Power BI to Gold — create semantic model + report on Gold summary tables (see Gold Layer → Power BI Consumption)

Common Failure: Stopping After Notebook Creation

If the flow stops after deploying notebook code without binding or executing:

  • Notebooks will have no lakehouse context → spark.sql() and relative paths (Tables/, Files/) fail at runtime
  • The user sees no output or results — the architecture is set up but never tested
  • Always complete through step 7 unless the user explicitly asks to stop at a specific step

Gold Layer → Power BI Consumption

After Gold tables are populated, connect Power BI to surface the analytics. Build a semantic model on top of the Gold lakehouse, using DirectLake.

Step-by-Step

  1. Discover the Gold lakehouse SQL endpoint — call GET /v1/workspaces/{workspaceId}/lakehouses/{goldLakehouseId} and extract properties.sqlEndpointProperties.connectionString and provisioningStatus; wait until status is Success
  2. Verify Gold tables via SQL — connect to the SQL endpoint using sqlcmd (see COMMON-CLI.md § SQL / TDS Data-Plane Access) and confirm the target table exists: SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'nyc_taxi_daily_summary'
  3. Create a semantic model — use the powerbi-authoring-cli skill for semantic model creation and TMDL deployment. Create via POST /v1/workspaces/{workspaceId}/items with type: "SemanticModel" then deploy definition via updateDefinition using TMDL format (see ITEM-DEFINITIONS-CORE.md § SemanticModel):

- The model must reference the Gold lakehouse SQL endpoint as its data source - Define a table mapping to the Gold summary table (e.g., nyc_taxi_daily_summary) - Use Direct Lake mode — this connects directly to Delta tables in OneLake without data import - Include measures for key aggregations you find interesting (e.g., Total Trips, Avg Fare, Total Revenue, Month over Month Growth)

  1. Create a Power BI reportPOST /v1/workspaces/{workspaceId}/items with type: "Report" then deploy definition via updateDefinition using PBIR format (see ITEM-DEFINITIONS-CORE.md § Report):

- Reference the semantic model created in step 3 via definition.pbir - Define at least one page with visuals on the Gold summary table - Suggested visuals: line chart (daily trend), card (KPI totals), bar chart (by category), table (detail view)

  1. Verify end-to-end — use the powerbi-consumption-cli skill to run DAX queries against the semantic model and confirm data flows from Gold tables through to the report

Principles

  • Discover SQL endpoint dynamically — the connection string is in properties.sqlEndpointProperties.connectionString on the lakehouse response; never hardcode it
  • Wait for SQL endpoint provisioning — status must be Success before connecting; newly created lakehouses may take minutes to provision
  • Prefer Direct Lake mode — avoids data duplication; semantic model reads directly from OneLake Delta tables
  • Match table/column names exactly — the semantic model table definition must use the exact Delta table and column names from the Gold lakehouse
  • For semantic model authoring (TMDL, refresh, permissions), cross-reference the powerbi-authoring-cli skill
  • For DAX query validation, cross-reference the powerbi-consumption-cli skill

Pipeline Orchestration

When a user requests a pipeline for the medallion flow, guide LLM to design with:

  • Structure: Sequential activities (Bronze → Silver → Gold), each waiting for previous success; independent Gold aggregations can run in parallel; include validation and notification activities
  • Parameterization: Pipeline-level processing date (defaults to yesterday), passed to all notebooks; dynamic date expressions
  • Scheduling: Daily aligned with source refresh, watermark-based incremental processing, periodic full refresh for corrections
  • Error handling: Retry with backoff for transient failures, alerting for persistent failures, graceful degradation (downstream uses previous data if upstream fails)

Environment Optimization

For detailed Spark configurations and optimization strategies, see data-engineering-patterns.md.

LayerProfileKey Settings
BronzeWrite-heavyDisable V-Order, enable autoCompact, large file targets, partition by ingestion_date
SilverBalancedEnable V-Order, adaptive query execution, partition by business date, ZORDER on filtered columns
GoldRead-heavyV-Order (spark.sql.parquet.vorder.default=true), Optimize Write (optimizeWrite.enabled=true, binSize=1g), vectorized readers, adaptive execution, ZORDER on all filter columns, pre-aggregate metrics

Examples

Example 1: Set Up Medallion Workspaces (Default)

Prompt: "Set up medallion architecture with separate Bronze, Silver, and Gold workspaces for sales analytics"

What the LLM should generate: REST API calls to:

  1. Create workspaces: sales-bronze-dev, sales-silver-dev, sales-gold-dev
  2. Create one lakehouse in each workspace: sales_bronze, sales_silver, sales_gold
  3. Assign RBAC roles per workspace/layer
# Workspace creation (see COMMON-CLI.md for full patterns)
cat > /tmp/body.json << 'EOF'
{"displayName": "sales-analytics-dev"}
EOF
workspace_id=$(az rest --method post --resource "https://api.fabric.microsoft.com" \
  --url "https://api.fabric.microsoft.com/v1/workspaces" \
  --body @/tmp/body.json --query "id" --output tsv)

# Create Bronze lakehouse
cat > /tmp/body.json << 'EOF'
{"displayName": "sales_bronze", "type": "Lakehouse"}
EOF
az rest --method post --resource "https://api.fabric.microsoft.com" \
  --url "https://api.fabric.microsoft.com/v1/workspaces/$workspace_id/items" \
  --body @/tmp/body.json

Example 2: Design Bronze Ingestion

Prompt: "Ingest daily CSV files into bronze lakehouse with metadata columns"

What the LLM should generate: PySpark notebook that:

  1. Reads source files with schema inference or explicit schema
  2. Adds ingestion_timestamp, source_file, batch_id columns
  3. Writes to Delta table partitioned by ingestion date
  4. Logs row count and validation metrics
# Bronze ingestion pattern (guide LLM to generate full implementation)
from pyspark.sql.functions import current_timestamp, input_file_name, lit
import uuid

batch_id = str(uuid.uuid4())
df = (spark.read.format("csv").option("header", True).load("/Files/landing/daily/")
      .withColumn("ingestion_timestamp", current_timestamp())
      .withColumn("source_file", input_file_name())
      .withColumn("batch_id", lit(batch_id)))
df.write.mode("append").partitionBy("ingestion_date").format("delta").saveAsTable("bronze.events_raw")

Example 3: Bronze-to-Silver Transformation

Prompt: "Clean bronze data: remove duplicates, filter invalid records, add derived columns, write to silver"

What the LLM should generate: PySpark notebook applying quality rules, schema conformance, and partitioned write with optimization.

Example 4: End-to-End Pipeline

Prompt: "Create a pipeline that runs bronze ingestion, then silver transformation, then gold aggregation daily at 2 AM"

What the LLM should generate: Pipeline JSON definition with sequential notebook activities, date parameter, retry logic, and schedule trigger.

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

31.03%
按下载量换算49

Claude

30.66%
按下载量换算48

Cursor

19.99%
按下载量换算31

Gemini CLI

9.85%
按下载量换算15

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

external-service

该 Skill 可能调用第三方服务、云服务或外部模型 API,使用前需要确认账号、额度、数据发送范围和服务条款。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills