bigQuery中的Query作业中的allowLargeResults

时间:2016-09-06 10:21:47

标签: google-bigquery

我正在尝试在BigQuery中运行查询作业并收到以下错误:

  

响应太大而无法返回。考虑将allowLargeResults设置为   在您的工作配置中为true

我了解我需要在作业配置中将 allowLargeResults 设置为 True ,但我还必须提供目标表字段。

我不想将查询结果插入到特定表中,只是为了在本地处理它。 我该如何处理这种情况?

2 个答案:

答案 0 :(得分:2)

首先,如果它意味着它太大,那么可能大于128MB。您需要确保查询是准确的,如果确实要返回大数据。通常人们会在查询中出错,例如加入爆炸,缺少时间过滤器以减少数据或缺少限制。

在确信数据太大之后,您需要写入表格,然后导出到GCS,然后下载,然后处理它。

https://cloud.google.com/bigquery/docs/exporting-data#exportingmultiple

答案 1 :(得分:1)

  

我不想将查询结果插入到特定的表中,   只在本地处理它。

想要澄清 - 所以你希望使用目的地表感觉更好:
实际上,任何查询结果都会在某些表中结束! 如果结果小于128MB - BigQuery代表您创建临时表(在特殊数据集中,名称以下划线开头,因此在Web UI数据集/表导航器中不可见)。
这个临时表可以使用24小时,如果您使用查询兑现,或者您甚至可以自己使用它,则可以使用它 - 您只需找到创建的表。您可以在API - 目标表中找到它 - 即使您没有设置特定的表,我上面说的也存在。或者您可以在Web UI中找到它

enter image description here

enter image description here 当结果大于128MB时 - 您必须设置目标表。您的情况唯一的缺点是,您需要确保在不再需要它之后删除此表,否则您将支付存储空间

您可以通过实际删除表 - 手动(在UI中)或以编程方式(API)来执行此操作。或者您可以在表(API)上设置到期