BigQuery 中的联接性能缓慢
Posted
技术标签:
【中文标题】BigQuery 中的联接性能缓慢【英文标题】:slow performance of join in BigQuery 【发布时间】:2017-11-08 16:44:48 【问题描述】:我最近的经验似乎表明,带连接的 BigQuery 的执行速度比只有一张表的要慢得多。通常大多数查询将在几分钟内完成。但是下面的连接查询需要 6000 多秒才能完成,其中 table1 有大约 10 亿行,table2 有大约 100 万行。
SELECT a.*, coalesce(b.field4, a.field3)
FROM `table1` a left outer join `table2` b
on a.field1 = b.field1 and a.field2 = b.field2
只是想问问社区这是预期的还是需要进一步调查?
【问题讨论】:
您是否使用“说明”选项卡检查了查询计划?它显示了时间的去向。 是的,实际上大部分时间都花在了Compute
最后阶段(Stage5)的一部分READ $80, $81, $82, $83, $84, ... FROM __SHUFFLE0 WRITE $80, $81, $82, $83, $84, ... TO __output
有多少行被写入输出?您能否在问题的解释中包含慢速阶段(或全部)的屏幕截图?
当然,刚刚添加到我的帖子中
看起来查询不应该花很长时间来读/写十亿行。您可以使用示例作业 ID 尝试 submitting a bug report to the issue tracker,让 BigQuery 团队的人员查看。
【参考方案1】:
解决方案是指定一个目标表。这将使总时间减少到不到 200 秒。
【讨论】:
以上是关于BigQuery 中的联接性能缓慢的主要内容,如果未能解决你的问题,请参考以下文章