BigQuery 查询耗时 >15 分钟
BigQuery query taking >15 minutes
我在 BigQuery 中从未遇到过花费超过一分钟左右的查询,但出于某种原因,这个查询除外。任何人都可以阐明为什么这个查询会花费这么长时间吗?
如果有 Google 工程师正在查看此内容,则工作 ID 为 job_qHSgmV1CKbJnQeEZpqw1cb1g6f4。
SELECT
DATE(s.signdatetime) fts_date,
s.passportid,
s.lifetime_tracking_source,
SUM(if (MONTH(o.optindatetime)=MONTH(s.signdatetime),o.cpl,NULL)) rev_first_month
FROM
tableau.signatures s
LEFT JOIN EACH tableau.optins o
ON
s.passportid=o.passportid
WHERE
DATE(s.signdatetime) BETWEEN '2015-10-12'
AND '2015-10-13'
AND s.disposition="accepted"
AND s.FTS="Y"
AND o.finalstatus="collected"
AND DATE(o.optindatetime) BETWEEN '2015-10-12'
AND '2015-10-13'
GROUP BY
1,
2,
3
桌子有多大?我建议在加入之前过滤掉数据:
SELECT
DATE(s.signdatetime) fts_date,
s.passportid,
s.lifetime_tracking_source,
SUM(if (MONTH(o.optindatetime)=MONTH(s.signdatetime),o.cpl,NULL)) rev_first_month
FROM (
SELECT signdatetime, passportid, lifetime_tracking_source,
FROM tableau.signatures
WHERE DATE(signdatetime) BETWEEN '2015-10-12' AND '2015-10-13'
AND disposition="accepted"
AND FTS="Y"
) s
LEFT JOIN EACH (
SELECT cpl, optindatetime, passportid
FROM tableau.optins
WHERE finalstatus="collected"
AND DATE(optindatetime) BETWEEN '2015-10-12' AND '2015-10-13'
) o
ON
s.passportid=o.passportid
GROUP BY
1,
2,
3
也尝试 GROUP EACH 而不是 GROUP。
我在 BigQuery 中从未遇到过花费超过一分钟左右的查询,但出于某种原因,这个查询除外。任何人都可以阐明为什么这个查询会花费这么长时间吗?
如果有 Google 工程师正在查看此内容,则工作 ID 为 job_qHSgmV1CKbJnQeEZpqw1cb1g6f4。
SELECT
DATE(s.signdatetime) fts_date,
s.passportid,
s.lifetime_tracking_source,
SUM(if (MONTH(o.optindatetime)=MONTH(s.signdatetime),o.cpl,NULL)) rev_first_month
FROM
tableau.signatures s
LEFT JOIN EACH tableau.optins o
ON
s.passportid=o.passportid
WHERE
DATE(s.signdatetime) BETWEEN '2015-10-12'
AND '2015-10-13'
AND s.disposition="accepted"
AND s.FTS="Y"
AND o.finalstatus="collected"
AND DATE(o.optindatetime) BETWEEN '2015-10-12'
AND '2015-10-13'
GROUP BY
1,
2,
3
桌子有多大?我建议在加入之前过滤掉数据:
SELECT
DATE(s.signdatetime) fts_date,
s.passportid,
s.lifetime_tracking_source,
SUM(if (MONTH(o.optindatetime)=MONTH(s.signdatetime),o.cpl,NULL)) rev_first_month
FROM (
SELECT signdatetime, passportid, lifetime_tracking_source,
FROM tableau.signatures
WHERE DATE(signdatetime) BETWEEN '2015-10-12' AND '2015-10-13'
AND disposition="accepted"
AND FTS="Y"
) s
LEFT JOIN EACH (
SELECT cpl, optindatetime, passportid
FROM tableau.optins
WHERE finalstatus="collected"
AND DATE(optindatetime) BETWEEN '2015-10-12' AND '2015-10-13'
) o
ON
s.passportid=o.passportid
GROUP BY
1,
2,
3
也尝试 GROUP EACH 而不是 GROUP。