BI为什么我的查询运行多次?

2022-09-09 16:01:48 浏览数 (1)

发生多个请求时

以下部分介绍了Power Query可以向数据源发送多个请求时的一些实例。

连接器设计

连接器可以出于各种原因对数据源进行多次调用,包括元数据、结果缓存、分页等。 此行为是正常的,旨在以这种方式工作。

引用单个数据源的多个查询

如果多个查询从该数据源拉取,则可能会出现对同一数据源的多个请求。 即使只有一个查询引用数据源,这些请求也会发生。 如果查询由一个或多个其他查询引用,则独立计算每个查询(以及它依赖的所有查询)。

在桌面环境中,使用单个共享缓存运行数据模型中所有表的单个刷新。 Caching可以减少对同一数据源的多个请求的可能性,因为一个查询可以受益于已针对其他查询运行和缓存的相同请求。 不过,即使在此处,也可以获取多个请求,因为数据源未缓存 (例如本地 CSV 文件) ,因此对数据源的请求不同于由于下游操作 (可以更改折叠) 而缓存的请求,缓存太小 (相对不太可能) , 或因为查询大致同时运行。

在云环境中,每个查询都使用自己的单独缓存进行刷新,因此查询无法受益于已为其他查询缓存的相同请求。

折叠

有时,Power Query的折叠层可能会根据正在下游执行的操作生成对数据源的多个请求。 In such cases, you might avoid multiple requests by using Table.Buffer. 详细信息: 缓冲表

加载到Power BI Desktop模型

在Power BI Desktop中,Analysis Services (AS) 使用两个评估来刷新数据:一个用于提取架构(即通过请求零行实现的架构),另一个用于提取数据。 如果计算零行架构需要提取数据,则可能会出现重复的数据源请求。

数据隐私分析

数据隐私对每个查询进行自己的评估,以确定查询是否安全运行在一起。 此评估有时可能会导致对数据源发出多个请求。 一个指示符号,给定的请求来自数据隐私分析,即它将具有“TOP 1000”条件 (,尽管并非所有数据源都支持此类条件) 。 通常,禁用数据隐私(假设可以接受)会在刷新期间消除“TOP 1000”或其他与数据隐私相关的请求。 详细信息: 禁用数据隐私防火墙

后台数据下载 (也称为“后台分析”)

与为数据隐私执行的评估类似,默认情况下,Power Query编辑器将下载每个查询步骤的前 1000 行预览。 下载这些行有助于确保数据预览在选择步骤后立即显示,但也可能导致数据源请求重复。 详细信息: 禁用后台分析

其他Power Query编辑器后台任务

各种Power Query编辑器后台任务还可以触发 (额外的数据源请求,例如查询折叠分析、列分析、1000 行预览的自动刷新,Power Query加载结果后触发Excel等) 。

隔离多个查询

可以通过关闭查询过程的特定部分来隔离多个查询的实例,以隔离来自重复请求的位置。 例如,如果开始:

  • 在Power Query编辑器中
  • 禁用防火墙
  • 禁用后台分析
  • 禁用列分析和其他任何后台任务
  • [可选]执行 Table.Buffer

在此示例中,刷新Power Query编辑器预览时,只会进行单个 M 评估。 如果此时发生重复请求,则这些请求在创作查询的方式上是固有的。 如果没有,并且如果逐个启用上述设置,则可以观察重复请求的开始时间点。

以下各部分更详细地说明了这些步骤。

设置Power Query编辑器

无需重新连接或重新创建查询,只需在Power Query编辑器中打开要测试的查询。 如果不想使现有查询混乱,可以在编辑器中 复制 查询。

禁用数据隐私防火墙

下一步是禁用数据隐私防火墙。 此步骤假设你不担心源之间的数据泄漏,因此,可以使用Excel中的“设置快速组合”选项中所述的“始终忽略隐私级别”设置设置来完成数据隐私防火墙的禁用,或者使用“忽略隐私级别”,并可能会提高Power BI Desktop隐私级别中所述的性能设置Power BI Desktop。

在恢复正常测试之前,请务必撤消此步骤。

禁用后台分析

下一步是禁用后台分析。 后台分析由“允许数据预览”控制,可在“禁用Power Query后台刷新”中所述的后台设置中下载Power BI。 还可以在Excel中禁用此选项。

0 人点赞