Power BI - 数据建模


在本章中,您将了解 Power BI 中的数据建模。

使用数据建模和导航

数据建模是 BI 工具中使用关系连接多个数据源的功能之一。关系定义数据源如何相互连接,您可以在多个数据源上创建有趣的数据可视化。

通过建模功能,您可以在现有表上构建自定义计算,并且这些列可以直接呈现到 Power BI 可视化中。这允许企业定义新的指​​标并为这些指标执行自定义计算。

建模功能

在上图中,您可以看到一个常见的数据模型,它显示了两个表之间的关系。两个表都使用列名“Id”连接。

同样,在 Power BI 中,您可以设置两个对象之间的关系。要设置关系,您必须在公共列之间拖动一条线。您还可以在 Power BI 的数据模型中查看“关系”。

要在Power BI中创建数据模型,您需要在Power BI新报表选项中添加所有数据源。要添加数据源,请转到获取数据选项。然后,选择要连接的数据源并单击“连接”按钮。

Power BI 中的数据模型

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

添加数据源

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

  • 报告
  • 数据
  • 人际关系
Power BI 屏幕

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

报告选项卡

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

数据选项卡

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

关系选项卡

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

人际关系

您还可以使用关系视图隐藏报告中的特定列。要隐藏列,请右键单击列名称并选择“在报告视图中隐藏”选项。

关系视图

创建计算列

您可以通过组合现有数据的两个或多个元素在 Power BI 中创建计算列。您还可以对现有列应用计算来定义新指标,或合并两列以创建一个新列。

您甚至可以创建计算列来建立表之间的关系,它也可以用于设置两个表之间的关系。

要创建新的计算列,请导航到屏幕左侧的“数据视图”选项卡,然后单击“建模”。

新计算列

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

建模选项卡

在下面的示例中,让我们创建一个新列:产品代码 (Product_C),它源自 Prod_Id 列的最后三个字符。然后,写出以下公式 -

Product_C = RIGHT( Sheet1[Prod_Id],3)

创建新列

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

创建计算列

创建计算表

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

建模选项

DAX 表达式用于创建新表。您必须在等号左侧输入新表的名称以及 DAX 公式来执行计算以形成右侧的该表。计算完成后,新表将显示在模型的“字段”窗格中。

在下面的示例中,让我们定义一个新表 - Table_CustC,它返回一个单列表,其中包含另一个表的列中的唯一值。

表_CustC

Power BI 屏幕的“字段”部分下添加了一个新表,如以下屏幕截图所示。根据您的要求创建计算列和计算表后,您可以使用 Power BI 中“报告”选项卡中的字段。

要添加这些对象,您必须选中一个复选框,如果可能,系统会自动检测关系。如果没有,那么您可以拖动要连接的列。

选择复选框

要查看报告,您导航到“报告”选项卡,您可以在报告视图中看到“计算列”和新“计算表”中的字段。

计算列

管理基于时间的数据

Power BI 默认允许钻取基于时间的数据。当您在分析中添加日期字段并在数据可视化上启用钻取时,它将带您进入基于时间的数据的下一个级别。

让我们考虑一下我们在 Power BI 可视化中添加了基于时间的表。我们在报告中添加了收入和年份栏。

收入栏

年份栏

我们可以使用顶部的选项在可视化中启用钻取功能。一旦我们启用钻取功能并单击图表中的条形或线条,它就会向下钻取到时间层次结构的下一个级别。示例:年 → 季度 → 月。

我们还可以使用转到层次结构中的下一个级别选项来执行钻取。

层次结构选项