在 Power BI 中优化 Copilot 语义模型

适用于:✅Power BI 服务

在将 Copilot 与语义模型配合使用之前,先评估数据。 可能需要清理您的语义模型,以便Copilot能从中获取见解。

注意

请记住以下要求:

注意

在Power BI 服务 Web 建模体验中,Copilot可以执行更多操作来评估模型。 它还可以直接提出和应用更改,例如重命名表和列、创建关系以及生成 DAX 度量值。 本文中的优化指南直接支持来自该分析的更好结果:结构完善的明确命名模型有助于 Copilot 生成更准确且有用的建议。

用于 Copilot 的语义模型注意事项

您可以使用下表中的标准,借助 Copilot 创建准确的报表。 这些建议可以帮助你生成准确的Power BI报告。

模型结构

元素 注意事项 说明 申请地点 示例
表链接 定义明确的关系 明确定义表之间的所有关系,并确保它们是逻辑的。 指出哪些关系是一对多、多对一或多对多。 “模型”视图中,选择“管理关系 Date[DateID]Sales[DateID]创建一对多关系,并验证关系是否处于活动状态。
事实数据表 清晰划分 清晰地描述事实数据表,这些数据表保存可衡量的量化数据以用于分析。 在表属性和数据模型结构中 将表显式命名为事实数据表:FactSales、、FactTransactionsFactVisits
维度表 支持性描述性数据 创建维度表,其中包含与事实数据表中的量化度量值相关的描述性属性。 在表属性和数据模型结构中 创建维度表,例如DimProduct属性(ProductNameCategoryBrand)和DimCustomer特性(CustomerNameCitySegment)。
层次结构 逻辑分组 在数据中建立明确的层次结构,尤其是支持在报表中向下钻取的维度表。 在表上下文菜单中,选择“新建层次结构 Date表中,创建层次结构:Year>Quarter>Month>Day 。 在 Geography 表中: Country/Region>State>City.
关系类型 明确指定 为了确保准确生成报告,请明确指定关系(活动或非活动)的性质及其基数。 在关系属性对话框中 Date设置为Sales“多对一”(活动),将Product设置为Sales“多对一”(活动),并在适当时将角色扮演关系标记为非活动状态。

度量值和 KPI

元素 注意事项 说明 申请地点 示例
度量值 标准化计算逻辑 让指标具备标准化、清晰且易于解释和理解的计算逻辑。 在度量值的定义和说明属性中 度量 DAX:Total Sales = SUM(Sales[SaleAmount]) 并添加描述:“所有销售金额的总和。”
度量值 命名约定 提供明确反映其计算和用途的度量值名称。 创建度量值时的度量值名称字段中 使用描述性名称: Average Customer Rating 而不是缩写: AvgRating
度量值 预定义度量值 包括一组用户最有可能在报表中请求的预定义度量值。 在模型中创建用户通常需要的度量值 添加度量值,例如 YTD Sales = TOTALYTD(SUM(Sales[SaleAmount]), 'Date'[Date])MoM Growth = DIVIDE([This Month Sales] - [Last Month Sales], [Last Month Sales])
关键绩效指标 (KPI) 预定义和相关 建立一组与业务上下文相关的 KPI,并经常出现在报表中。 为常用跟踪 KPI 创建度量值 定义度量值,例如ROI = DIVIDE([Profit], [Investment])CAC = DIVIDE([Marketing Spend], [New Customers])LTV = [Avg Order Value] * [Purchase Frequency] * [Customer Lifespan]

列和数据质量

元素 注意事项 说明 申请地点 示例
列名 明确标签 使列名清晰、无歧义且便于理解。 避免使用那些在脱离上下文的情况下还需要进一步查找的 ID 或代码。 在 Power Query 编辑器或模型视图中重命名列 将列从ProdID重命名为Product IDProduct Name,并从CustNo重命名为Customer Number
列数据类型 正确且一致 对所有表的列应用正确且一致的数据类型,以确保度量值正确计算并启用适当的排序和筛选。 在列属性中,设置 数据类型 确保 Sales[SaleAmount] 为十进制数字(非文本), Date[Date] 是日期(而不是文本), Product[ProductID] 是整数。
数据一致性 标准化值 在列中维护标准化值,以确保筛选器和报表中的一致性。 使用“查找和替换”或“Power Query”中的转换功能 Status列中,确保所有值都使用一致的大小写:Open、、 ClosedPending (不混合大小写,如openCLOSED)。

刷新、安全和元数据

元素 注意事项 说明 申请地点 示例
刷新时间表 透明化和定时 清楚地传达数据的刷新计划,以确保用户了解他们正在分析的数据的时间线。 在数据集设置和文档中 添加一个文本框或说明,指出:“每天在 UTC 上午 6:00 刷新数据”或“具有 15 分钟增量刷新的实时数据”。
安全性 角色级别定义 如果存在并非所有用户都应看到的敏感元素,请定义安全角色,以实现不同级别的数据访问。 “模型”视图中,选择“管理角色 分别创建角色“销售团队”和角色“HR”,其中“销售团队”使用筛选器 Sales[Region] = USERNAME(),“HR”筛选员工数据表。
元数据 结构文档 有关参考,请记录数据模型的结构,包括表、列、关系和度量值。 使用说明属性和外部文档 向表和列添加说明。 使用模型关系图、数据字典和度量值目录创建单独的文档。

DAX 查询注意事项

下表列出了其他条件,这些条件可以帮助你创建Copilot准确的数据分析表达式(DAX)查询。 这些建议可帮助你生成准确的 DAX 查询。

元素 注意事项 说明 申请地点 示例
度量值、表和列 说明 在 description 属性中,定义每个元素以及如何使用它。 Copilot 仅使用前 200 个字符。 在“属性”窗格中,度量值、表和列的“说明”字段 对于度量 [YOY Sales],请添加说明:“订单的逐年(YOY,年同比)差异”。 与“Date”[Year] 列一起使用,按最近一年以外的年份显示。 部分年份与上年同期相比。
计算组 说明 模型元数据不包括计算项。 使用计算组列的描述来列出并说明计算项的使用方法。 Copilot 仅使用前 200 个字符。 在计算组列的“属性”窗格中 对于 时间智能示例 计算组列,请添加说明:“将度量值和日期表用于 Current:当前值,MTD:本月至今,QTD:本季度至今,YTD:本年到目前为止,PY:前一年,PY MTD:前一年本月至今,PY QTD:前一年本季度至今,YOY:同比变化,YOY%:同比变化百分比。” 对于度量值表,请添加:“度量值用于汇总数据。” 这些度量值可以使用以下语法逐年显示:CALCULATE([Measure Name],Time intelligence[Time calculation] = YOY)。