Power BI - 数据建模
在本章中,您将了解 Power BI 中的数据建模。
使用数据建模和导航
数据建模是使用关系在 BI 工具中连接多个数据源的功能之一。 关系定义了数据源如何相互连接,您可以在多个数据源上创建有趣的数据可视化。
借助建模功能,您可以在现有表上构建自定义计算,并且这些列可以直接呈现到 Power BI 可视化中。 这允许企业定义新的指标并为这些指标执行自定义计算。

在上图中,您可以看到一个通用数据模型,它显示了两个表之间的关系。 两个表都使用列名"Id"连接。
同样,在 Power BI 中,设置两个对象之间的关系。 要设置关系,您必须在公共列之间拖动一条线。 您还可以在 Power BI 的数据模型中查看"关系"。
要在 Power BI 中创建数据模型,您需要在 Power BI 新报表选项中添加所有数据源。 要添加数据源,请转到 Get data 获取数据选项。 然后,选择要连接的数据源并单击"Connect"连接按钮。

添加数据源后,它会显示在右侧栏上。 在下图中,我们使用了 2 个 xls 文件来导入数据 - 客户和产品。

在屏幕左侧的 Power BI 中,您有以下三个选项卡 −
- Report
- Data
- Relationships

当您导航到 Report 选项卡时,您可以看到为数据可视化选择的仪表板和图表。 您可以根据需要选择不同的图表类型。 在我们的示例中,我们从可用的可视化中选择了一个表格类型。

当您转到 Data 数据选项卡时,您可以根据数据源中定义的关系查看所有数据。

在 Relationships 关系选项卡中,您可以查看数据源之间的关系。 向 Power BI 可视化添加多个数据源时,该工具会自动尝试检测列之间的关系。 当您导航到关系选项卡时,您可以查看关系。 您还可以使用创建关系选项在列之间创建关系。

您还可以在数据可视化中添加和删除关系。 要删除关系,您必须右键单击并选择"Delete"删除选项。 要创建新的"Relationship"关系,您只需拖放要在数据源之间链接的字段。

您还可以使用 Relationship 关系视图隐藏报表中的特定列。 要隐藏列,请右键单击列名称并选择"Hide in report view"隐藏在报表视图中选项。

创建计算列
可以通过组合现有数据的两个或多个元素在 Power BI 中创建计算列。 您还可以对现有列应用计算以定义新指标或组合两列以创建一个新列。
您甚至可以创建一个计算列来建立表之间的关系,它也可以用于设置两个表之间的关系。
要创建新的计算列,请导航到屏幕左侧的 Data View 数据视图选项卡,然后单击 Modeling 建模。

当您导航到建模选项卡时,您可以在屏幕顶部看到一个新列选项。 这也会打开公式栏,您可以在其中输入 DAX 公式来执行计算。 DAX-数据分析表达式是一种强大的语言,也用于 Excel 中执行计算。 您还可以通过更改编辑栏中的列文本来重命名列。

在下面的示例中,让我们创建一个新列:产品代码 (Product_C),它来自 Prod_Id 列的最后三个字符。 然后,写出下面的公式 −
Product_C = RIGHT( Sheet1[Prod_Id],3)

还提供了一长串公式,可用于创建计算列。 您必须输入要在计算中使用的公式的第一个字符,如以下屏幕截图所示。

创建计算表
您还可以在 Power BI 的数据建模中创建新的计算表。 要创建新表,请导航到屏幕左侧的 Data View 选项卡,然后转到屏幕顶部的 Modeling 选项。

DAX 表达式用于创建新表。 您必须在等号和 DAX 公式的左侧输入新表的名称才能执行计算以在右侧形成该表。 计算完成后,新表将出现在模型的"Fields"字段窗格中。
在下面的示例中,让我们定义一个新表 - Table_CustC,它返回一个单列表,其中包含另一个表的列中的唯一值。

在 Power BI 屏幕的"Fields"字段部分下添加了一个新表,如以下屏幕截图所示。 根据您的要求创建计算列和计算表后,您可以使用 Power BI 的"Report"选项卡中的字段。
要添加这些对象,您必须选择一个复选框,如果可能,系统会自动检测到关系。 如果没有,那么您可以拖动要连接的列。

要查看报表,请导航到"Report "选项卡,您可以在报表视图中看到"Calculated columns"计算列和新"Calculated table"计算表中的字段。

管理基于时间的数据
Power BI 默认允许钻取基于时间的数据。 当您在分析中添加日期字段并在数据可视化上启用钻取时,它会将您带到基于时间的数据的下一个级别。
让我们考虑一下我们在 Power BI 可视化中添加了基于时间的表。 我们在报表中添加了收入和年份列。


我们可以使用顶部的选项在可视化中启用钻取功能。 一旦我们启用钻取功能并单击图表中的条形或线条,它就会向下钻取到时间层次结构的下一个级别。示例: Years → Quarters → Months.
我们还可以使用 Go to the next level in the hierarchy 选项来执行 Drill。
