关于 standardize-naming-conventions
用于审查和统一 TMDL 格式 Power BI 语义模型命名的交互式技能。它帮助模型维护者按业务术语规范表、度量值、列和显示文件夹,并检查跨文件引用及下游报表影响。
主要功能
- 01扫描 TMDL 模型命名模式
- 02收集业务术语和现有规范
- 03变更前审核拟议重命名
- 04更新 DAX 与关系引用
- 05验证语法及残留引用
适用场景
- 01审查语义模型中的命名不一致
- 02按业务术语统一指标名称
- 03重命名字段并检查模型引用
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ data-goblin/ power-bi-agentic-development --skill standardize-naming-conventions安装后在 Claude Code 中输入/standardize-naming-conventions确认已加载。
附带文件references/naming-rules.md
详细介绍
标准化命名约定
用于审计和标准化以 TMDL 文件形式存储的 Power BI 语义模型中命名约定的交互式工作流。确保表、列、度量值和显示文件夹遵循易读、一致且符合业务需求的命名标准。
主要工作流
阶段 1:发现模型
找到 TMDL 文件。如果上下文中没有明确路径,请向用户询问 .SemanticModel/definition/ 目录的路径。然后扫描模型结构:
# Count tables and get an overview
ls <path>/tables/*.tmdl
读取所有表的 TMDL 文件,全面了解当前的命名模式。重点关注:
- 表名(检查是否有 DIM_、FACT_ 或其他技术前缀)
- 度量值名称(检查缩写、编程命名约定和不一致的语法)
- 列名(检查 CamelCase、snake_case 和缩写)
- 显示文件夹结构(检查组织方式和一致性)
- 是否存在说明(
///注释)
阶段 2:了解业务背景
重要:在理解业务术语之前,不要重命名任何内容。
使用 AskUserQuestion 收集背景信息:
- 业务术语:“贵组织对关键指标使用哪些术语?例如,称其为 Revenue、Turnover、Sales 还是 Gross Sales?”
- 现有约定:“贵组织是否已有文档记录的命名约定或标准?”
- 期间约定:“贵组织通常如何指代以前的期间?(例如,1YP、PY、Prior Year、Last Year)”
- 单位约定:“贵组织通常如何在度量值名称中表示单位?(例如,使用括号,如 (%)、(Value)、(Quantity))”
- 下游影响:“是否有连接到此模型的下游报表,需要在重命名后重新绑定可视化对象?”
根据用户的业务背景调整命名规则。references/naming-rules.md 中的规则是默认规则——如果用户所在组织已有既定约定,请以其约定为准。
阶段 3:审计并报告
在进行更改之前,生成审计报告。使用 Markdown 表格列出每项建议的重命名:
| Object Type | Current Name | Proposed Name | Issues Found |
|-------------|-------------|---------------|-------------|
| Table | FACT_Invoices | Invoices | Technical prefix |
| Measure | NetSls | Net Sales | CamelCase, abbreviation |
| Column | shp_dt | Ship Date | snake_case, abbreviation |
按问题类型归类:
- 编程命名约定:CamelCase、snake_case、UPPER_CASE
- 缩写/首字母缩略词:名称缩短或含义不明
- 语法不一致:期间、单位或聚合模式不统一
- 技术前缀:表名中的 DIM_、FACT_、STG_
- 缺少说明:没有
///文档注释的对象 - 文件夹组织不当:缺少显示文件夹层级,或层级过于扁平
请用户确认或调整建议的重命名,然后再继续。
阶段 4:应用更改
获得用户批准后,编辑 TMDL 文件。针对每个表文件:
- 重命名表(如有必要):更改
table声明 - 重命名度量值:更改其声明中的度量值名称。重要:还要在模型的所有表文件中,将内部 DAX 引用按
[Old Name]->[New Name]的模式更新 - 重命名列:更改其声明中的列名。重要:还要在所有表文件中,将 DAX 引用按
'Table'[Old Column]->'Table'[New Column]的模式更新 - 重新组织显示文件夹:添加或重构
displayFolder:属性 - 添加说明:为缺少说明的度量值和列添加
///注释 - 更新关系引用:检查
relationships.tmdl中已重命名的表/列
跨文件更新引用至关重要。 重命名度量值或列时,请在整个 definition/ 目录中搜索所有引用:
# Find all references to a renamed measure
rg "OldMeasureName" <path>/definition/tables/
rg "OldMeasureName" <path>/definition/relationships.tmdl
阶段 5:验证
应用更改后,验证以下内容:
- 所有 TMDL 文件仍可正确解析(没有语法错误)
- 所有文件中都不再存在指向旧名称的孤立引用
- 各表的显示文件夹保持一致
- 所有可见度量值和列均有说明
最后进行一次搜索,检查是否有遗漏的引用:
# Check for any remaining old names
rg -n "old_name_pattern" <path>/definition/
命名规范规则
请参阅 references/naming-rules.md,了解完整规则集,包括:
- 易于理解的名称要求
- 缩写和首字母缩略词规则
- 技术前缀规则
- 聚合、单位和周期语法标准
- 显示文件夹组织模式
- 度量值名称构造顺序:
[Aggregation] [Base Name] [Period] ([Unit]) - 列命名模式
需要检测的主要反模式
常见问题的速查清单:
| 反模式 | 规则 | 修正示例 |
|---|---|---|
snake_case | 使用空格 | net_sales -> Net Sales |
CamelCase | 使用空格 | NetSales -> Net Sales |
UPPER_CASE | 使用空格 | TOTAL_COST -> Total Cost |
| 缩写 | 写出全称 | Del. Mrgn -> Delivery Margin |
| 含义不明的首字母缩略词 | 写出全称 | TFS -> Total Freight Surcharge |
| 技术前缀 | 移除 | FACT_Orders -> Orders |
| 周期不一致 | 统一格式 | LY/PY/Last Year -> 1YP |
| 单位不一致 | 统一格式 | pct/%/(%) -> (%) |
| 缺少说明 | 添加 | 为所有可见对象添加 /// 文档字符串 |
| 文件夹层级扁平 | 组织层级 | 使用带子文件夹的编号层级 |
对下游报表的影响
**警告:**重命名模型对象会破坏引用这些字段的下游报表可视化对象。重命名后:
- 找出所有关联的报表(
.pbir文件或 Power BI Service 报表) - 重新绑定可视化对象,使其使用新的字段名称
- 使用
pbir fields replace或pbir fields replace-table修复每个报表;切勿直接编辑报表 JSON
应用重命名前,务必向用户说明这一点。如果存在下游报表,请考虑:
- 在更改前备份模型
- 规划重命名后的重新绑定工作
- 在 Tabular Editor 中使用 C# 脚本批量重命名并重新绑定
其他资源
参考文件
references/naming-rules.md—— 完整的命名规范,包含检测模式、反模式表和度量值名称构造顺序
获取文档
如需获取最新的语义模型和 TMDL 参考文档,如果有 microsoft_docs_search + microsoft_docs_fetch(MCP),请使用它们;否则使用 mslearn search + mslearn fetch(CLI)。根据用户的请求进行搜索,并按需执行多次搜索,以确保在继续操作前获得充分的上下文。