BigQuery Streaming API 经常引发 503 错误

Posted

技术标签:

【中文标题】BigQuery Streaming API 经常引发 503 错误【英文标题】:Frequent 503 errors raised from BigQuery Streaming API 【发布时间】:2014-03-18 00:30:21 【问题描述】:

由于以下错误,将数据流式传输到 BigQuery 不断失败,最近发生的频率更高:

com.google.api.client.googleapis.json.GoogleJsonResponseException: 503 Service Unavailable

  "code" : 503,
  "errors" : [ 
    "domain" : "global",
    "message" : "Connection error. Please try again.",
    "reason" : "backendError"
   ],
  "message" : "Connection error. Please try again."

        at com.google.api.client.googleapis.json.GoogleJsonResponseException.from(GoogleJsonResponseException.java:145)
        at com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest.newExceptionOnError(AbstractGoogleJsonClientRequest.java:113)
        at com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest.newExceptionOnError(AbstractGoogleJsonClientRequest.java:40)
        at com.google.api.client.googleapis.services.AbstractGoogleClientRequest$1.interceptResponse(AbstractGoogleClientRequest.java:312)
        at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:1049)
        at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:410)
        at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:343)

相关问题参考:

Getting high rate of 503 errors with BigQuery Streaming API BigQuery - BackEnd error when loading from JAVA API

【问题讨论】:

@JordanTigani 你能检查这三个吗? 你能提供你的项目ID吗? 嗨,乔丹。我们的项目 id 是 gdfp-7414。今天我们的负载再次遇到同样的错误 - “503:连接错误。请重试。”。现在每天都在发生这种情况。上周还好。 【参考方案1】:

我们(BigQuery 团队)正在调查您关于连接错误增加的报告。从内部监测来看,最近几天没有出现全球性的连接错误高峰。但是,这并不意味着您的表格没有受到影响。

连接错误可能很难追踪,因为它们可能是在到达 BigQuery 服务器之前或离开之后由错误引起的。您提供的信息越多,我们就越容易诊断问题。

流式输入的最佳做法是处理此类临时错误以重试请求。这可能有点棘手,因为当您收到连接错误时,您实际上并不知道插入是否成功。如果您在数据中包含唯一的insertId(请参阅文档here),您可以安全地重新发送请求(在重复数据删除窗口期内,我认为是 15 分钟),而不必担心同一行会被添加多个次。

【讨论】:

谢谢乔丹。完全理解这些类型的错误很难追踪。但是,在我们为 503 构建错误处理(可能需要几天时间来实施和部署到我们的应用程序服务器)之前,是否有任何其他信息可以让您尝试并帮助您找到/解决这个问题?问题是我们每天都有一个 BigQuery 负载,它为我们的业务提供报告解决方案,并且自 16 日星期日以来我们一直无法成功更新 BigQuery。

以上是关于BigQuery Streaming API 经常引发 503 错误的主要内容,如果未能解决你的问题,请参考以下文章

BigQuery:表 ID 无效

如何使用 BigQuery Streaming 获取插入的行数

获取 BigQuery 表中的行数(流式缓冲区)

如果我在流式传输之前先删除表并创建表,Google BigQuery Streaming 有时会失败

Google BigQuery - 将数据流式传输到 BigQuery

Apache Flink -Streaming(DataStream API)