如何返回我的大型 Google BigQuery v2 响应?
Posted
技术标签:
【中文标题】如何返回我的大型 Google BigQuery v2 响应?【英文标题】:How do I return my large Google BigQuery v2 response? 【发布时间】: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
有解决办法吗?否则,我们无法使用它。
【问题讨论】:
查询试图返回多少行? 【参考方案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。
【讨论】:
以上是关于如何返回我的大型 Google BigQuery v2 响应?的主要内容,如果未能解决你的问题,请参考以下文章
如何从未嵌套的数据(BigQuery 中的 Google Analytics 数据)返回正确的汇总总数
Google BigQuery SQL:使滚动平均子查询或加入对大型数据集更有效
Google Big Query + PHP -> 如何在不耗尽内存的情况下获取大型数据集