如何避免 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 事件详细信息?