Python GET - 对 Bigquery API 的调用会引发超出期限的错误
Posted
技术标签:
【中文标题】Python GET - 对 Bigquery API 的调用会引发超出期限的错误【英文标题】:Python GAE - Call to Big Query API throws Deadline exceeded error 【发布时间】:2017-01-19 20:46:50 【问题描述】:我一直在使用 Big Query api,但由于此错误,我 90% 的请求都失败了:
HTTPException: Deadline exceeded while waiting for HTTP response from URL: https://www.googleapis.com/bigquery/v2/projects/poorproject/queries?alt=json
我正在执行 UPDATE 操作,因此我使用的是标准 SQL 而不是旧版 SQL。我知道标准 SQL 要慢得多,因此会抛出 Deadline 错误。
我正在使用 GAE Endpoints API,并尝试增加 urlfetch 时间,但没有成功。
有解决办法吗?
谢谢:)
【问题讨论】:
我认为应用引擎中默认的 urlfetch 时间是 60 秒。这个问题已经被问过很多次了,但谷歌没有提供关于超过 urlfetch 时间的明确文档。 你好@Bravin,是的,我已经读过 60 秒的 urlfetch 时间,但真正奇怪的是,在 8-10 秒后,这个错误也会被抛出......所以我在这一点上有点迷路..但感谢您的信息。 这对我有用:urlfetch.set_default_fetch_deadline(600) 【参考方案1】:在不了解有关您的方案的更多详细信息(例如,您尝试调用哪个特定 API)的情况下,我只能推测可能的原因。我怀疑您使用的是同步 'Jobs.Query' API 而不是异步 'Jobs.Insert' API。如果是这样,我建议使用异步 API,因为这可以帮助您避免任何较短的截止日期,因为插入作业非常快。如果您仍然遇到超时问题,可以选择在 BigQuery 问题跟踪器上提交错误并提供更多详细信息。
【讨论】:
以上是关于Python GET - 对 Bigquery API 的调用会引发超出期限的错误的主要内容,如果未能解决你的问题,请参考以下文章
使用python从bigquery处理大量数据集,将其加载回bigquery表
使用 bigquery 表 GET api 获取表的最后修改日期