使用适用于 Power BI 的 Copilot 对您的数据进行建模
正确准备数据是获取数据见解的基础。 清理、转换和构形数据后,您便可以开始设计语义模型。
将表与关系相连接
下一步是创建表间关系。 通过关系,您可以稍后在开发流程中在报表视觉对象中筛选和汇总数据。 您可以使用自动检测关系功能开始操作,然后使用 Copilot 汇总初始语义模型,以确定是否需要任何其他关系。
在下图中,有一个包含通过关系连接的维度表的事实表。 当为语义模型使用星形架构或 snowflake 架构时,Power BI 报表效果最佳。
创建快速度量
连接表后,您可能会发现无法使用原样数据回答业务要求问题。 在本应用场景中,您可以使用 DAX (Data Analysis Expressions) 创建度量值,以创建新的数据计算来满足您的要求。 DAX 用途广泛且功能强大,但开始使用 Power BI 时也令人生畏。 DAX 描述为一种函数语言。 函数语言(例如 DAX)专注于使用函数计算结果,与基于集合的语言的分步方法相比,这可能更加与直觉相反。
Power BI 允许您创建快速度量,从而允许您添加要计算的数据字段。
Copilot 的建议
快速度量是一个出色的解决方案,但在开始使用时您可能需要一个更简单的选项。 如果您有权访问适用于 Power BI 的 Copilot,您还可以在“快速度量”中使用 Copilot 的建议 选项。 Copilot 允许您使用类似问答的体验,您可以在其中使用自然语言来描述要查看的计算。
只需具备一个提示(例如 total sales by all products
)和准备好的语义模型,即可快速查看为获取新数据见解而添加的可能度量值。
借助快速度量和 Copilot,您可以轻而易举地创建度量值并学习 DAX,同时满足报表要求。
使用 DAX 进行查询
Power BI Desktop 中有四个视图:报表、表、模型 和 DAX 查询。 在 DAX 查询视图中,您可以在功能区中选择 Copilot,并使用自然语言描述您的需求。
考虑在“DAX 查询”视图的 Copilot 功能中输入以下提示 total sales for all salespeople individually for all items in the accessories category
。
此提示旨在计算每个销售员在配饰类别的销售额总计。 在 AdventureWorks,有多个类别,其中包含多个产品。 配饰的销售额较低,业务要求是更好地了解销售更多配饰的人员,以便能够共享有价值的信息。
// DAX query generated by Fabric Copilot with "total sales for all salespeople individually for all items in the accessories category"
// Total sales for each salesperson for items in the accessories category
EVALUATE
SUMMARIZECOLUMNS(
'Salesperson'[Salesperson],
FILTER('Product', 'Product'[Category] == "Accessories"),
"Total Sales", [Total Sales]
)
下表显示 Copilot 生成的 DAX 查询的示例结果。
销售员 | 销售额总计 |
---|---|
Stephen Jiang | 8374.76 |
Michael Blythe | 38682.84 |
Linda Mitchell | 66916.05 |
根据 DAX 查询创建度量值
在“DAX 查询”视图中使用 Copilot 以探索数据并确定需要创建的度量值,然后选择使用更改更新模型,以创建度量值。 以下查询是根据 suggest measures
提示生成的。
// DAX query generated by Fabric Copilot with "Suggest new measures in a DAX query for further analysis and try them out with one or more suitable columns"
DEFINE
// New measure to calculate the average profit per product sold
MEASURE 'Sales'[Avg Profit per Product] = DIVIDE([Profit], [Unique Products Sold])
// New measure to calculate the average sales per reseller
MEASURE 'Sales'[Avg Sales per Reseller] = DIVIDE([Total Sales], [Unique Resellers])
// New measure to calculate the average quantity per order
MEASURE 'Sales'[Avg Quantity per Order] = DIVIDE([Total Quantity], [Orders])
// New measure to calculate the average sales per order
MEASURE 'Sales'[Avg Sales per Order] = DIVIDE([Total Sales], [Orders])
// Evaluate the new measures
EVALUATE
ROW(
"Avg Profit per Product", [Avg Profit per Product],
"Avg Sales per Reseller", [Avg Sales per Reseller],
"Avg Quantity per Order", [Avg Quantity per Order],
"Avg Sales per Order", [Avg Sales per Order]
)
生成的表如下:
每个产品的平均利润 | 每个经销商的平均销售额 | 每个订单的平均数量 | 每个订单的平均销售额 |
---|---|---|---|
2992.4987 | 122703.4339 | 56.44745575221239 | 21445.9541 |
以下屏幕截图是三个简单步骤的结果:
- 输入 suggest measures 提示。
- 在结果返回后选择保留查询。
- 运行查询。
作为报表开发人员,您可以使用更改更新模型,以创建最适合您的项目的度量值。
总结
Copilot 允许您更有效地探索和设计语义模型,从而扩展您的数据分析技能,并使您成为更好的报表开发人员。