为什么查询在BigQuery

时间:2017-04-10 12:56:36

标签: google-bigquery

我对非常​​少量的日内GA数据(约166行)进行查询。

SELECT pagePath
FROM `dataset_id.ga_sessions_intraday_*`
WHERE pagePath NOT IN (SELECT pagePath FROM `dataset_id.ga_sessions_intraday_*` WHERE type = 'EVENT') AND Type = 'PAGE'

运行查询后,有一个计数器:“查询正在运行(792.7s)...”,它一直在上升。到了3000秒,我意外地刷新了浏览器中的窗口,现在甚至没有查询历史记录中运行的查询的迹象。

为什么运行查询需要这么多时间?为什么查询历史记录中没有查询?

1 个答案:

答案 0 :(得分:1)

您使用了通配符,这意味着您正在查询ga_sessions_intraday_*数据集中的所有dataset_id表,这可能是长时间运行的原因

另一个缓慢的点在WHERE子句

之下并不是最优的
WHERE pagePath NOT IN (SELECT pagePath 
  FROM `dataset_id.ga_sessions_intraday_*` WHERE type = 'EVENT')  

你应该使用

WHERE pagePath NOT IN (SELECT pagePath 
  FROM `dataset_id.ga_sessions_intraday_*` WHERE type = 'EVENT' GROUP BY pagePath)