首页 > 解决方案 > BigQuery 加入需要大量时间

问题描述

我正在尝试在 2 个 BigQuery 表上执行简单的 INNER JOIN,并将其用于在另一个表中插入记录

查询如下:

INSERT INTO Table3 (EventDate, Opens_Count, Sends_Count, JobID)
SELECT
  o.EventDate,
  COUNT(o.JobID) AS Opens_Count,
  COUNT(s.JobID) AS Sends_Count,
  s.JobID
FROM Table1 o
INNER JOIN Table2 s
ON o.JobID = s.JobID
GROUP BY EventDate, JobID

此查询自过去 1.5 小时以来一直在运行,我不确定还需要多长时间。

表 1 有大约 150 万条记录,表 2 有大约 360 万条记录。

有没有办法让这个运行更快?

编辑 1

在此处输入图像描述

这是我可以看到的一些日志数据

标签: google-bigquery

解决方案


尝试更换

COUNT(o.JobID) AS Opens_Count,
COUNT(s.JobID) AS Sends_Count,

经过

COUNT(*) AS Sends_Count

您的请求INNER JOIN只会计算两个表的交集。我会做一个RIGHT JOIN来衡量消息的打开率

FROM Table1 o
RIGHT JOIN Table2 s
ON o.JobID = s.JobID

然后计算非空行o.EventDate与总行数。


推荐阅读