如何避免 BigQuery 中的 Power BI 增量刷新重复查询?

Posted

技术标签:

【中文标题】如何避免 BigQuery 中的 Power BI 增量刷新重复查询?【英文标题】:how to avoid Power BI incremental refresh duplicated queries in BigQuery? 【发布时间】:2021-08-27 16:37:56 【问题描述】:

我在从 Google BigQuery 获取大量数据的报告中实现了增量刷新。问题是每次增量刷新都会产生重复的查询,其中一个非常昂贵。

正如 Chris Webb 在his article 中所述,Power BI 进行两次查询以从 SQL 数据库导入数据;一个返回有限数量的行只是为了发现表模式,另一个是为了获取实际数据。

在许多 SQL 服务器中,这只会影响性能,但在 BigQuery 中,无论结果行数是多少,处理的数据量都是收费的,第一次查询会花费很多,因为查询折叠是没有发生。

在这里,我对较小的数据集进行了一些实验,以显示正在发生的事情:

请注意,上面的“发现查询”处理 121.66 MB 以仅返回一行,而下面发生查询折叠的“数据查询”仅处理 7.35 MB。

我实施了修改我的 M 代码的 Chris 解决方案,但 BigQuery 仍然收到重复的查询。有什么办法可以避免“发现查询”??

【问题讨论】:

【参考方案1】:

简短的回答是否定的,PowerBI 总是会发送多个查询,实际上在这种情况下它只发送两个查询一点也不差:)。

你最好的选择是使用集群来减少表扫描,例如在这个查询中

SELECT UNIT, StationName, Technology, DAY, Mwh FROM `test-187010.ReportingDataset.UNITARCHIVE` LIMIT 1000 OFFSET 0

查询估计它将处理 4.3 GB,但实际上它只使用了 18.6 MB 在此处查看表分区和集群

【讨论】:

以上是关于如何避免 BigQuery 中的 Power BI 增量刷新重复查询?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用带有平台、steam_id、event_name 过滤器的 bigquery 在 power bi 中编写查询以查找过去 28 天的 firebase 事件详细信息?

power bi操作系统要求

Power BI Python 在Power BI Desktop中Python代码如何使用Power Query数据

如何从 Power BI 中的月份编号获取月份名称?

如何根据 Power BI 中的表数据行选择筛选卡片?

如何在 Power BI 中重置表中的数据