BigQuery中断后谷歌数据流停滞不前

时间:2017-07-28 05:09:56

标签: google-bigquery google-cloud-platform google-cloud-dataflow

我正在运行Google数据流作业。数据流作业是从Pub / Sub读取消息,丰富它并将丰富的数据写入BigQuery。

Dataflow每秒处理大约5000条消息。我正在使用20名工作人员来运行数据流作业。

昨天似乎有一个BigQuery中断。因此,在BigQuery部分中写入数据失败了。一段时间后,我的数据流停止工作。 我看到1000个错误如下

  (7dd47a65ad656a43): Exception: java.lang.RuntimeException: com.google.api.client.googleapis.json.GoogleJsonResponseException: 400 Bad Request
{
  "code" : 400,
  "errors" : [ {
    "domain" : "global",
    "message" : "The project xx-xxxxxx-xxxxxx has not enabled BigQuery.",
    "reason" : "invalid"
  } ],
  "message" : "The project xx-xxxxxx-xxxxxx has not enabled BigQuery.",
  "status" : "INVALID_ARGUMENT"
}
com.google.cloud.dataflow.sdk.util.BigQueryTableInserter.insertAll(BigQueryTableInserter.java:285)
com.google.cloud.dataflow.sdk.util.BigQueryTableInserter.insertAll(BigQueryTableInserter.java:175)
com.google.cloud.dataflow.sdk.io.BigQueryIO$StreamingWriteFn.flushRows(BigQueryIO.java:2728)
com.google.cloud.dataflow.sdk.io.BigQueryIO$StreamingWriteFn.finishBundle(BigQueryIO.java:2685)
com.google.cloud.dataflow.sdk.util.DoFnRunnerBase.finishBundle(DoFnRunnerBase.java:159)
com.google.cloud.dataflow.sdk.runners.worker.SimpleParDoFn.finishBundle(SimpleParDoFn.java:194)
com.google.cloud.dataflow.sdk.runners.worker.ForwardingParDoFn.finishBundle(ForwardingParDoFn.java:47)
com.google.cloud.dataflow.sdk.util.common.worker.ParDoOperation.finish(ParDoOperation.java:65)
com.google.cloud.dataflow.sdk.util.common.worker.MapTaskExecutor.execute(MapTaskExecutor.java:77)
com.google.cloud.dataflow.sdk.runners.worker.StreamingDataflowWorker.process(StreamingDataflowWorker.java:719)
Stack trace truncated. Please see Cloud Logging for the entire trace.

请注意,即使BigQuery开始工作,数据流也无法正常工作。我不得不重新启动数据流作业以使其工作。

这会导致数据丢失。不仅在中断时,而且直到我注意到错误并重新启动数据流作业。有没有办法配置重试选项,以便在这些情况下数据流作业不会过时?

0 个答案:

没有答案