错误403:在Python库上运行BigQuery同步查询时响应太大
我正在使用Python客户端库在Google BigQuery中运行一个简单的错误403:在Python库上运行BigQuery同步查询时响应太大,python,google-bigquery,Python,Google Bigquery,我正在使用Python客户端库在Google BigQuery中运行一个简单的SELECTsyncronous查询。我得到以下错误: ***google.cloud.exceptions.probled:403响应太大,无法返回。考虑将AuthRealErrestREST设置为true 我是为了这个目的而使用的 我的做法是(去掉不必要的东西): 我知道中有一个参数allowLargeResults,但我不知道如何从客户端库设置该参数。您可以这样设置: query.allow\u large\u
SELECT
syncronous查询。我得到以下错误:
***google.cloud.exceptions.probled:403响应太大,无法返回。考虑将AuthRealErrestREST设置为true
我是为了这个目的而使用的
我的做法是(去掉不必要的东西):
我知道中有一个参数allowLargeResults
,但我不知道如何从客户端库设置该参数。您可以这样设置:
query.allow\u large\u results=True
但是,如果设置了allow_large_results
,则还必须指定要将结果写入的目标表:
[可选]如果为true且查询使用传统SQL方言,则允许查询
以较小的成本生成任意大的结果表
演出需要设置destinationTable。对于标准SQL
查询时,此标志将被忽略,并且始终允许出现较大的结果。
但是,当结果大小超过时,仍然必须设置destinationTable
允许的最大响应大小
Python库中的目标表是如何具体设置的?这很容易用谷歌搜索,但现在你可以看到:这实际上不是使用同步查询,而是run\u async\u query()
call,这就是我最后使用的。这不是首选选项,因为在这种情况下,您必须处理作业和目标表的命名。我试图将其配置为同步作业,但似乎不可能。正如您所看到的,这不是一个知道如何使用Google的问题:)所有查询都在BigQuery上异步运行。唯一的区别是您是否希望在客户端代码中等待它们完成(阻塞与非阻塞)。您可以在这两个服务器上设置目标表。因此,我并不真正理解您的意思:-/作为快速参考,以下是作业配置参数列表,可能会很有用:
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()