SKILL.md
readonlyread-only
name
powerbi-modeling
description
Power BI 語意模型建模助手,用於建立最佳化的資料模型。當您處理 Power BI 語意模型、建立量值、設計星狀結構描述、設定關聯、實作 RLS 或最佳化模型效能時使用。觸發條件為關於 DAX 計算、資料表關聯、維度/事實資料表設計、命名慣例、模型文件、基數、交叉篩選方向、計算群組及資料模型最佳做法的查詢。使用 power-bi-modeling MCP 工具時,一律先連線至作用中模型以了解資料結構,再提供指引。
Power BI 語意模型建模
引導使用者依照 Microsoft 最佳做法,建立最佳化且文件完善的 Power BI 語意模型。
使用時機
當使用者詢問以下問題時使用此技能:
- 建立或最佳化 Power BI 語意模型
- 設計星狀結構描述(維度/事實資料表)
- 撰寫 DAX 量值或計算資料行
- 設定資料表關聯(基數、交叉篩選)
- 實作資料列層級安全性 (RLS)
- 資料表、資料行、量值的命名慣例
- 為模型新增描述與文件
- 效能調校與最佳化
- 計算群組與欄位參數
- 模型驗證與最佳做法檢查
觸發詞句:「建立量值」、「新增關聯」、「星狀結構描述」、「最佳化模型」、「DAX 公式」、「RLS」、「命名慣例」、「模型文件」、「基數」、「交叉篩選」
必要條件
必要工具
- Power BI Modeling MCP Server:用於連線及修改語意模型
- 啟用:connection_operations、table_operations、measure_operations、relationship_operations 等
- 必須設定並執行才能與模型互動
選用相依項目
- Microsoft Learn MCP Server:建議用於查詢最新最佳做法
- 啟用:microsoft_docs_search、microsoft_docs_fetch
- 用於複雜情境、新功能及官方文件
工作流程
1. 先連線並分析
在提供任何模型指引之前,務必先檢查目前的模型狀態:
1. 列出連線:connection_operations(operation: "ListConnections")
2. 若無連線,檢查本機執行個體:connection_operations(operation: "ListLocalInstances")
3. 連線至模型(Desktop 或 Fabric)
4. 取得模型概覽:model_operations(operation: "Get")
5. 列出資料表:table_operations(operation: "List")
6. 列出關聯:relationship_operations(operation: "List")
7. 列出量值:measure_operations(operation: "List")
2. 評估模型健康狀態
連線後,依據最佳做法評估模型:
- 星狀結構描述:資料表是否正確分類為維度或事實?
- 關聯:基數是否正確?雙向篩選是否最少?
- 命名:是否使用人類可讀、一致的命名慣例?
- 文件:資料表、資料行、量值是否有描述?
- 量值:關鍵計算是否有明確的量值?
- 隱藏欄位:技術性資料行是否從報表檢視中隱藏?
3. 提供有針對性的指引
根據分析結果,參考以下文件引導改善:
- 星狀結構描述設計:請參閱 STAR-SCHEMA.md
- 關聯設定:請參閱 RELATIONSHIPS.md
- DAX 量值與命名:請參閱 MEASURES-DAX.md
- 效能最佳化:請參閱 PERFORMANCE.md
- 資料列層級安全性:請參閱 RLS.md
快速參考:模型品質檢查清單
| 區域 | 最佳做法 |
|---|---|
| 資料表 | 清楚區分維度與事實分類 |
| 命名 | 人類可讀:使用 Customer Name 而非 CUST_NM |
| 描述 | 所有資料表、資料行、量值皆需文件化 |
| 量值 | 為業務指標建立明確的 DAX 量值 |
| 關聯 | 從維度到事實為一對多 |
| 交叉篩選 | 除非特別需要,否則使用單向 |
| 隱藏欄位 | 從報表檢視中隱藏技術金鑰、ID |
| 日期資料表 | 專用且標記的日期資料表 |
MCP 工具參考
使用下列 Power BI Modeling MCP 操作:
| 操作類別 | 主要操作 |
|---|---|
connection_operations |
Connect、ListConnections、ListLocalInstances、ConnectFabric |
model_operations |
Get、GetStats、ExportTMDL |
table_operations |
List、Get、Create、Update、GetSchema |
column_operations |
List、Get、Create、Update(描述、隱藏、格式) |
measure_operations |
List、Get、Create、Update、Move |
relationship_operations |
List、Get、Create、Update、Activate、Deactivate |
dax_query_operations |
Execute、Validate |
calculation_group_operations |
List、Create、Update |
security_role_operations |
List、Create、Update、GetEffectivePermissions |
常見工作
新增量值並附帶描述
measure_operations(
operation: "Create",
definitions: [{
name: "Total Sales",
tableName: "Sales",
expression: "SUM(Sales[Amount])",
formatString: "$#,##0",
description: "所有銷售金額的總和"
}]
)
更新資料行描述
column_operations(
operation: "Update",
definitions: [{
tableName: "Customer",
name: "CustomerKey",
description: "客戶維度的唯一識別碼",
isHidden: true
}]
)
建立關聯
relationship_operations(
operation: "Create",
definitions: [{
fromTable: "Sales",
fromColumn: "CustomerKey",
toTable: "Customer",
toColumn: "CustomerKey",
crossFilteringBehavior: "OneDirection"
}]
)
使用 Microsoft Learn MCP 的時機
使用 microsoft_docs_search 查詢目前的最佳做法,適用於:
- 最新的 DAX 函數文件
- 新的 Power BI 功能與能力
- 複雜的模型情境(SCD Type 2、多對多)
- 效能最佳化技術
- 安全性實作模式






