Bigquery 流式处理 API 超时错误

Posted

技术标签:

【中文标题】Bigquery 流式处理 API 超时错误【英文标题】:Bigquery streaming API timeout error 【发布时间】:2014-04-03 20:32:08 【问题描述】:

我们正在使用 bigquery 流式处理 API。直到最近一切顺利(没有代码更改) - 在过去的几个小时里,我们收到了很多错误,例如:

"API 调用 urlfetch.Fetch() 响应时间过长, 取消。 Traceback(最近一次通话最后一次):文件 "/base/data/home/runtimes/python27"

“等待来自 URL 的 HTTP 响应时超过了最后期限”

insert 调用在 python 延迟进程上完成,并在等待后再次重试。

问题:

我们如何检查这是我们的内部问题还是一般问题 大查询? 我们可以增加 5000 超时吗?

【问题讨论】:

你能得到一个jobId吗,如果能,请贴出来。 【参考方案1】:

您是否在 appengine 中运行?如果是这样,您可以这样做:

from google.appengine.api import urlfetch
urlfetch.set_default_fetch_deadline(60)

也就是说,流式摄取不应接近默认的 5 秒错误。流式摄取存在网络配置问题,现在应该解决。

您还发现问题吗?

【讨论】:

是的。使用App引擎,但我不直接导入urlfetch。我应该在哪里添加导入?顺便说一句 - 错误频率显着下降,但今天仍有 2 个此类错误超过 5000 毫秒。平均通话时间为 500-600 毫秒,峰值可能约为 1000 毫秒。 使用与此处接受的答案中给出的 python 示例类似的代码:link。这就是为什么我不知道在哪里添加你上面提到的延长urlfetch默认期限的功能。 在流式传输中将 ~90 个字段(一个原始字段)插入到 bigquery 中是否需要 ~600 毫秒?

以上是关于Bigquery 流式处理 API 超时错误的主要内容,如果未能解决你的问题,请参考以下文章

BigQuery,Python 批量插入 bigquery 以进行流式传输服务(“告诉”错误)

使用流式 API 更新新列后无法向 BigQuery 表插入新值

流式 BigQuery API

BigQuery 使用流式插入 API 保证最终一致性

BigQuery 流式插入使用模板表数据可用性问题

使用模板表的 BigQuery 流式插入 - 503 错误