在本文中,我们将介绍多个 DirectQuery 报表创作方案,演示如何使用 Power BI Desktop 中的 “优化 ”功能区简化体验。 借助“优化”功能区,可以控制视觉对象何时使用 暂停视觉对象 和 刷新视觉对象 功能刷新,使用 优化预设 快速应用预定义设置,并轻松启动 性能分析器 以更深入地深入查询本身,包括 SQL 查询 DirectQuery 生成。 我们还演示了如何在模型视图的“属性”窗格中编辑关系, 而无需 运行查询来预览或验证数据。
在了解这些场景之前,请务必先查看 Power BI Desktop 中的“优化功能区”,这将为您很好地介绍这些令人兴奋的功能。
在不运行查询 的情况下 更改 DirectQuery 报表
首先,我们来看看如何通过暂停视觉对象来提高报表创作性能,以便每次我们进行更改时,它们不会向数据源发送查询。 在 “优化 ”功能区中,选择“ 暂停视觉对象”。 暂停时,仅当视觉对象不需要发送查询时更新。 如果视觉对象确实需要发送查询,则视觉对象将改为进入挂起状态。 挂起时,视觉效果仍显示在引入更改之前的外观,仅用于提供上下文,并且工具提示也被禁用,因此不会发送任何查询。 现在,我们可以在字段中添加或删除多个列或度量值,对字段进行重新排序,甚至通过使用 “筛选 ”窗格筛选视觉对象 ,并且不会发送任何查询!
完成所有这些更改后,我们在视觉对象上选择“刷新”以仅发送一次查询;在横幅或功能区上选择“刷新”以让页面上的所有视觉对象仅发送一次查询;或者在横幅上选择“恢复视觉对象查询”或在“优化”功能区中选择“暂停视觉对象”,让所有视觉对象立即发送查询以进行更新,并在任何其他更改时继续发送查询。
让我们进一步了解暂停视觉效果的工作流:
提示: 有时页面上的图像很难看到详细信息。 请务必使用浏览器的缩放功能!
在以下动画中,我们展示了向页面上的两个视觉对象工具提示添加两个度量值:“票价”和“每次行程平均票价”,随后在字段区中重新排列它们,然后从横幅重新开始显示视觉内容。
如果没有暂停的视觉化功能,每次在“Fields well”中添加或移动度量值时,都会向 DirectQuery 数据源发送新的视觉化查询。 这是针对每个视觉对象的三个查询,因此在本例中发送 了六 个查询。 通过使用 Pause 视觉对象,每次添加或移动度量值时,不会发送任何查询。 恢复报表时只发送两个请求。 对于此简单的报表更改,不运行四个额外的查询可以节省时间,并且不会浪费宝贵的数据源资源。
在不运行查询 的情况下 创建新视觉对象
在 “优化 ”功能区中,选择“ 暂停视觉对象”。 然后,从“可视化”窗格中添加一个新矩阵视觉对象,然后将“行程”、“星期几”和“一天中的时间”添加到新的矩阵视觉对象中。 暂停时,矩阵视觉对象进入 挂起 状态 - 不会发送任何查询。 现在,我们重新对字段进行排序,但再次没有发送任何查询。 打开 “筛选器 ”窗格,将“ 年份”引入,然后筛选到 2013 年。 此时,在进行任何更改之前,查看视觉对象非常有用。 我们可以在挂起的视觉对象横幅中选择“ 刷新 ”,或打开 “选择 ”窗格以在其中刷新视觉对象。 我们只发送了一个查询,并且查询已预筛选,加快返回时间并减少对数据源的影响。 我们可以对视觉对象进行格式设置更改,即使在报表暂停状态中,这些更改也会显示,因为不需要 DAX 查询。 但是,添加背景色格式的更改确实需要查询,以便可视化进入挂起状态。 准备就绪后,我们可以刷新或恢复视觉对象查询以查看最终矩阵视觉对象。
创建新视觉对象时暂停当前视觉效果:
如果不使用暂停视觉功能,每次在“字段面板”中添加或移动度量值或列时,都会向 DirectQuery 数据源发送新的视觉查询。 在我们开始设置格式之前,有 6 个查询,其中 5 个是在我们将视觉筛选到特定单一年份之前。 现在,使用“暂停”视觉对象,每次添加或移动度量值或列时,不会发送任何查询。 刷新可视化或重新打开报表时,只发送 两个 查询,并且这些查询经过筛选。 对于这一新的视觉元素,不仅避免了额外查询节省了时间且没有浪费宝贵的数据源资源,我们还运行了一个更小、更有针对性的查询,并以最小的系统干扰格式化了视觉对象。
在不刷新视觉对象 的情况下 创建度量值
与前面的方案一样,在 “优化 ”功能区中,我们选择 “暂停”视觉对象 ,使报表进入暂停状态。 通常,在 DirectQuery 报表中,每当创建新度量值时,报表页上的所有视觉对象都会刷新。 但是,如果报表处于暂停状态,我们可以在不发送查询的情况下创建新的度量值。 视觉内容处于待处理状态。 我们可以将度量值添加到待处理的视图。 然后,我们可以刷新单个视觉对象,查看具有新度量值的结果,或者只需在完成后恢复视觉对象查询即可。
创建新度量时暂停视觉效果:
如果不使用 Pause 视觉对象,每次创建度量值时,所有视觉对象都会向 DirectQuery 数据源发送查询。 页面上有五个视觉元素,每次模型更改时发送五个查询。 创建 两 个新度量值并将这些度量值添加到单个可视化时,这会产生大量查询! 使用 Pause 可视化时,每次创建或添加度量到可视化时,都不会发送任何查询。 刷新单个视觉对象后,仅发送六个查询,然后报表恢复。 对于这些建模更改,我们看到查询和等待这些查询返回数据的时间显著减少。 我们还显著减少了数据源上的工作负荷。
编辑 DirectQuery 表之间的关系
若要在 Power BI Desktop 的模型视图中编辑两个 DirectQuery 表之间的关系,我们现在只需选择这些表之间的关系线即可在 “属性 ”窗格中对其进行编辑! 我们可以更改表、列、基数、方向,使其处于活动状态或处于非活动状态,甚至可以打开引用完整性(如果确信每个表未缺少另一个表中的值)。 完成后,选择 “应用更改”。 还可以按住 Ctrl 以选择多个关系,在属性窗格中进行批量更改,或使用 Delete 键将其 删除 。
在“属性”窗格中编辑关系:
无法在“属性”窗格中编辑关系,每次更改关系时,打开对话以显示数据预览时都会发送查询。 每次表或列更改时,都会发送查询来验证关系的基数和方向。 现在,通过优化,在“属性”窗格中编辑关系时,我们不会发送任何查询,并且关系仅在准备就绪时得到验证,并且我们选择了“应用更改”按钮。
应用查询削减设置
如果我们在“优化”功能区中选择“优化预设”下拉列表,然后选择报表的查询缩减,将显示一个对话框,描述应用的设置。
选择数据点时,交叉突出显示和交叉筛选是图表之间的交互方式。 默认值为 Power BI Desktop 交叉突出显示。 可以通过以下步骤将默认值更改为交叉筛选:转到“文件”>“选项和设置”>“选项”>“报表设置”,然后选择“更改默认视觉交互:从交叉突出显示更改为交叉筛选”。
优化预设仅关闭默认的交叉高亮和交叉筛选,因此在视觉层级使用编辑交互进行的任何自定义操作都不会受到影响。 如果我们选择任何视觉对象(1)以显示 格式 功能区,然后选择 “编辑交互”(2),则报表中的其他视觉对象将显示选项(3)。 然后,我们可以确定在可视化中选择数据点时它们的变化方式。 在这种情况下,从交叉筛选或交叉突出显示到根本不交互。 让我们看看工作流:
如果我们自定义了任何编辑交互,则默认情况下禁用交叉突出显示和交叉筛选的优化预设不会更改此自定义。 视觉对象之间的任何自定义编辑交互仍像以前一样工作。
然后将 “应用” 按钮添加到切片器。 报表中的每个切片器现在都有一个“应用”按钮,用户可以在每个切片器中选择或取消选择多个选项,直到选择“应用”按钮之前,报表中的其他视觉对象不会执行任何查询。 切片器仍然相互独立,因此如果有两个切片器且都有“应用”按钮,就必须选择每个“应用”按钮来应用切片器的选择。
将应用按钮添加到「筛选器」窗格。 “筛选器”窗格按钮向窗格中的所有筛选器选择添加了控件,但只有一个“应用”按钮。 若要了解详细信息,请参阅 Power BI 报表中的格式筛选器 - 应用筛选器按钮。
更改查询减少设置
在“ 优化 ”功能区中,选择 “优化”预设,然后选择“ 自定义 ”以更改任何设置。 在我们的报告中,切片器用于单项选择,而“应用”按钮在多项选择中更为有用。因此,我们可以保留其他设置,并通过“自定义”将切片器恢复为即时应用。
还原为立即应用切片器:
在数据源更改后还原为完全交互性
在“ 优化 ”功能区中,选择 “优化”预设,然后选择报表 的交互性 。 这些是 Power BI Desktop 中的默认设置,因此,如果我们选择了 “查询缩减 ”或 “自定义 ”来更改优化预设,这就是我们返回到默认值的方式。 对话确认我们的设置。
设置交互优化预设:
在这种情况下,我们专门调用 DirectQuery 报告方案,但它们可用于其他报告方案。
对于特定的可视化对象,我们可以使用 性能分析器 来确定它是否使用 DirectQuery,方法是检查是否存在 DirectQuery 行。 在此处可以看到,DirectQuery 用于返回视觉对象的数据:
Community
你已经通过这些情景了解了如何在 Power BI Desktop 中使用“优化”功能区和属性窗格中的关系编辑来简化创作体验。 请务必结合您自己的 DirectQuery 报表进行尝试。
想要了解详细信息,或者可能有自己的方案要共享? Power BI 有一个充满活力的社区,在此社区中,MVP、BI 专业人员和同行在讨论组、视频、博客等平台分享专业知识。 请务必查看 Power BI 社区。
你也可以参与! 通过 Microsoft Learn,本文等 Power BI 文档是开源文档。 若要详细了解如何参与,请务必查看 Microsoft Learn 文档参与者指南。