如何在BigQuery中每小时创建一个每日汇总表,而不会遇到“响应太大而无法返回”错误?

时间:2013-05-01 16:50:44

标签: google-bigquery

在传统的数据建模中,我创建了每小时和每日汇总表,以减少数据存储并缩短查询响应时间。但是,尝试创建类似的汇总表很容易遇到“响应太大而无法返回”错误。使用BigQuery创建汇总表的推荐方法是什么?我需要减少数据以降低存储和查询成本。

THX!

2 个答案:

答案 0 :(得分:1)

最近公布的BigQuery功能可以获得大量结果!

现在您可以指定标志和目标表。任意大小的结果将存储在指定的表中。

https://developers.google.com/bigquery/docs/queries#largequeryresults

答案 1 :(得分:0)

听起来您将所有数据附加到单个表中,然后想要创建更小的表来查询...是正确的吗?

一种选择是在每小时切片中加载数据,然后通过使用write_disposition = WRITE_APPEND执行表复制操作来创建每日和“所有”表。或者,您可以在查询中使用多个表。例如select foo from table20130101,table20130102,table20130102。 (注意,这不会进行连接,它会执行UNION ALL。这是bigquery查询语法的一个怪癖)。

如果难以更改表格的布局,目前不支持更大的查询结果大小,但它是我们最需要的功能之一,我们将其置于高优先级。

此外,创建较小的表不一定会提高查​​询性能,因为bigquery会尽可能并行地处理查询。它不会降低存储成本,除非您只是存储部分表。当然,它会降低查询的成本,因为针对较大的表运行查询会更加昂贵。

如果您更多地描述您的情景,我可能会提供更具体的建议。