Google bigquery BigQuery同步查询未返回任何结果

Google bigquery BigQuery同步查询未返回任何结果,google-bigquery,Google Bigquery,根据BigQuery文档,请参见: 通过BigQuery API有两种类型的查询。同步和异步。使用提供的示例代码,Async非常适合我,但是synchronous不适合 如果单击上面的链接,我所指的示例代码将显示出来。我注意到的是,它实际上并不等待结果出来。如果在之前插入time.sleep(15),而为True,则返回预期结果。如果不是,则返回一个空结果集 官方文档示例使用以下查询: """SELECT word, word_count FROM `bigquery-publi

根据BigQuery文档,请参见:

通过BigQuery API有两种类型的查询。同步和异步。使用提供的示例代码,Async非常适合我,但是synchronous不适合

如果单击上面的链接,我所指的示例代码将显示出来。我注意到的是,它实际上并不等待结果出来。如果在
之前插入
time.sleep(15)
,而为True
,则返回预期结果。如果不是,则返回一个空结果集

官方文档示例使用以下查询:

    """SELECT word, word_count
    FROM `bigquery-public-data.samples.shakespeare`
    WHERE corpus = @corpus
    AND word_count >= @min_word_count
    ORDER BY word_count DESC;
    """
这个查询返回得非常快,但是我的查询需要几秒钟才能返回结果

我的问题是,如果结果实际上不可访问且没有返回结果,为什么文档中会说明
run\u sync\u query
命令会等待查询完成

我无法提供我使用的查询,因为它是一个私有数据源。要生成,您只需要运行一个需要几秒钟的查询。

看起来像,而不是查询本身。默认时间为10秒。尝试在代码中设置
超时\u ms

例如(我假设您使用的是Python):

。[auth/client setup stuff]。。
查询=客户端。运行同步查询(“”)
query.timeout_ms=60000#设置请求超时
query.use\u legacy\u sql=False
query.use\u query\u cache=True
query.run()
…[对结果做点什么]。。

谢谢,我没有意识到这个方法有超时设置。似乎最好总是使用另一种方法。
..[auth/client setup stuff]..

query = client.run_sync_query('<your_query>')
query.timeout_ms = 60000 #set the request timeout
query.use_legacy_sql = False
query.use_query_cache = True
query.run()

..[do something with the results]..