【问题标题】:How do I return my large Google BigQuery v2 response?如何返回我的大型 Google BigQuery v2 响应?
【发布时间】:2012-10-02 20:08:13
【问题描述】:

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

SELECT accno, year, month, count(*) as cnt
FROM eric.accesslogs_tbl
GROUP BY accno、年、月
ORDER BY cnt,年月限1000;

我的数据表统计:

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

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

【问题讨论】:

  • 查询试图返回多少行?

标签: google-bigquery


【解决方案1】:

您遇到的限制不是您可以返回的行数,而是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。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-12
    • 2019-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多