BigQuery - 重试失败的插入作业

时间:2015-10-07 18:14:24

标签: google-bigquery

我有一个关于在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"
    }
  }
}

感谢您的时间。

0 个答案:

没有答案