我有一个关于在BigQuery中重试失败的插入作业的问题。根据BigQuery在this链接中的文档,我们可以使用相同的作业ID重试多次,只有一个作业会成功。
请注意,对给定作业ID调用jobs.insert()是幂等的;在 换句话说,你可以在同一份工作中多次重试 ID,最多其中一个操作将成功。
但是当我稍后在具有相同ID的失败(DONE with errors)作业上重试时,它会因以下错误而失败。
{
"code" : 409,
"errors" : [ {
"domain" : "global",
"message" : "Already Exists: Job bigquery-eval:INSERT-user_sessions-sessions_test-168-06-10-2015",
"reason" : "duplicate"
} ],
"message" : "Already Exists: Job bigquery-eval:INSERT-user_sessions-sessions_test-168-06-10-2015"
}
请你澄清一下为什么会失败,我们如何重试呢?根据我的理解,这不应该失败。如果我的期望是错误的,请纠正我。
我还想知道当存在具有相同作业ID的并发插入请求时BigQuery的行为。我知道这不应该发生。但是想了解。当我运行大量并发进程进行插入时,我看到很多这些错误。但无法从响应中确定原因。
EDITED
这是我在获取该ID时得到的回复。显然,由于最后的换行符,它已经完成了错误。
{
"id": "bigquery-eval:INSERT-user_sessions-sessions_test-168-06-10-2015",
"status": {
"state": "DONE",
"errorResult": {
"reason": "invalid",
"message": "Too many errors encountered. Limit is: 0."
},
"errors": [
{
"reason": "invalid",
"location": "File: 0 / Offset:0 / Line:1 / Column:2411 / Field:",
"message": "parse error: trailing garbage\n"
},
{
"reason": "invalid",
"message": "Too many errors encountered. Limit is: 0."
}
]
},
"statistics": {
"creationTime": "1444150359688",
"startTime": "1444151563664",
"endTime": "1444151566721",
"load": {
"inputFiles": "1",
"inputFileBytes": "19091357",
"outputRows": "0",
"outputBytes": "0"
}
}
}
感谢您的时间。