将数据流式传输到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)
相关问题参考:
答案 0 :(得分:2)
我们(BigQuery团队)正在调查您的连接错误增加的报告。从内部监控来看,过去几天连接错误并未出现全球性的飙升。但是,这并不意味着您的表格,特别是不受影响。
连接错误可能很难追查,因为它们可能是在错误到达BigQuery服务器之前或者在它们离开之后由错误引起的。您可以提供的信息越多,我们就越容易诊断问题。
流式输入的最佳做法是处理此类临时错误以重试请求。这可能有点棘手,因为当您收到连接错误时,您实际上并不知道插入是否成功。如果您在数据中包含唯一的insertId
(请参阅文档here),则可以安全地重新发送请求(在重复数据删除窗口期间,我认为这是15分钟),而不必担心同一行将多次添加。