Google BiqQuery内部错误

时间:2016-02-23 11:16:35

标签: google-bigquery

编辑:稍微整理一下查询。检查一天运行(相对于我需要的27)并运行查询。有27天的数据,它正试图处理5.67TB。这可能是问题吗?

错误运行的最新ID:

  

职位编号:ee-corporate:bquijob_3f47d425_1530e03af64

尝试通过UI和Bigrquery在BigQuery中运行查询时,我不断收到此错误消息。

  

查询失败

     

错误:发生内部错误,无法完成请求。

     

职位编号:ee-corporate:bquijob_6b9bac2e_1530dba312e

以下代码:

    SELECT
  CASE WHEN d.category_grouped IS NULL THEN 'N/A' ELSE d.category_grouped END AS category_grouped_cleaned,
  COUNT(UNIQUE(msisdn_token)) AS users,
  (SUM(up_link_data_bytes) + SUM(down_link_data_bytes))/1000000 AS tot_data_mb
FROM (
  SELECT
    request_domain, up_link_data_bytes, down_link_data_bytes, msisdn_token, timestamp
  FROM (TABLE_DATE_RANGE([helpful-skyline-97216:WEBLOG_Staging.WEBLOG_], TIMESTAMP('20160101'), TIMESTAMP('20160127')))
  WHERE SUBSTR(http_status_code,1,1) IN ('1',
    '2',
    '3')) a

LEFT JOIN EACH web_usage_201601.domain_to_cat_lookup_27JAN_with_groups d
ON
  a.request_domain = d.request_domain
WHERE
  DATE(timestamp) >= '2016-01-01'
  AND DATE(timestamp) <= '2016-01-27'
GROUP EACH BY
  1

我有什么问题吗?

2 个答案:

答案 0 :(得分:1)

问题似乎来自UNIQUE() - 它返回包含太多元素的重复字段。可以改进错误,但是解决方法是使用显式GROUP BY,然后在其上运行COUNT。

答案 1 :(得分:0)

如果您对近似值没问题,也可以使用

COUNT(DISTINCT msisdn_token) AS users

或比默认值1000更高的近似参数,

COUNT(DISTINCT msisdn_token, 5000) AS users

GROUP BY是最常用的方法,但如果它们能满足您的需求,它们会更快。