错误403:在Python库上运行BigQuery同步查询时响应太大

时间:2017-10-02 10:32:23

标签: python google-bigquery

我正在使用Python客户端库在Google BigQuery中运行一个简单的SELECT同步查询。我收到以下错误:

*** google.cloud.exceptions.Forbidden: 403 Response too large to return. Consider setting allowLargeResults to true

我正在使用run_sync_query()

我这样做的方式是(剥离不必要的东西):

def run_query(query_str):
    from google.cloud import bigquery
    client = biquery.Client()
    query = client.run_sync_query(query_str)
    query.run()
    return query.fetch_data()

我知道API documentation中有一个参数allowLargeResults,但我不知道如何从客户端库中设置该参数。

1 个答案:

答案 0 :(得分:1)

您可以这样设置:

query.allow_large_results = True

https://github.com/GoogleCloudPlatform/google-cloud-python/blob/e716fbef3dc74e8853346426af356bad364f6637/bigquery/google/cloud/bigquery/job.py#L1090

但是,如果设置allow_large_results,则还必须指定目标表以将结果写入:

https://cloud.google.com/bigquery/docs/reference/rest/v2/jobs#configuration.query.allowLargeResults

  

[可选]如果为true且查询使用旧版SQL方言,则允许查询   以极低的成本生成任意大的结果表   性能。需要设置destinationTable。对于标准SQL   查询时,将忽略此标志,并始终允许大结果。   但是,当结果大小超过时,您仍必须设置destinationTable   允许的最大响应大小。