如何返回我的大型Google BigQuery v2响应?

时间:2012-10-02 20:08:13

标签: google-bigquery

我尝试过运行一个简单的查询,但收到错误response too large to return

  

选择accno,年,月,计数(*)作为cnt
  来自eric.accesslogs_tbl
  GROUP BY accno,年,月
  按顺序排序,年,月限1000;

我的数据表统计信息:

  

表格大小:64.7 GB
  行数:59,971,371

有解决方法吗?否则,我们无法使用它。

1 个答案:

答案 0 :(得分:2)

您遇到的限制不是您可以返回的行数,限制是GROUP BY操作内部使用的数据量。

有一项实验性功能可以让您删除此限制:尝试使用GROUP EACH BY代替GROUP BY

或者,您可以在不使用TOP function的实验性功能的情况下执行此操作。你的情况使得TOP有点棘手,因为你想要三个不同字段的最佳结果,但你可以将它们连接在一起:

SELECT TOP(acct_month, 1000), COUNT(*) AS cnt FROM (
    SELECT CONCAT(CONCAT(CONCAT(CONCAT(
        STRING(accno), '-'), STRING(year)), '-'), STRING(month)) 
        AS acct_month 
    FROM eric.accesslogs_tbl)

结果将有点不稳定,因为他们将有一个字段accno-year-month。