【问题标题】:Getting com.google.api.services.datastore.client.DatastoreException: Backend Error while accessing Cloud Datastore from Dataflow获取 com.google.api.services.datastore.client.DatastoreException:从 Dataflow 访问 Cloud Datastore 时出现后端错误
【发布时间】:2016-08-17 15:22:22
【问题描述】:

我正在使用以下代码 sn-p 从 Dataflow 访问 Cloud Datastore。 Datastore 是在我的项目中创建的,我能够运行仅访问云存储的 Dataflow 示例。

    Pipeline p = Pipeline.create(options);
    String datasetId = "myGoogleProjectId";
    p.apply(
             Read.from(DatastoreIO.source()
                    .withDataset(datasetId)
                    .withQuery(getQuery())))
                .apply(new ParseEntity())
                .apply(new ProcessEntity())
                .apply(TextIO.Write.named("WriteEntityAttributes").to(options.getOutput()));        
    p.run();

我正在使用下面的代码来创建查询,

        Query.Builder q = Query.newBuilder();
        q.addKindBuilder().setName("MyKind");
        return q.build();

但我在使用 DirectPiplelineRunner 运行数据流时遇到错误

Aug 17, 2016 1:02:15 AM com.google.cloud.dataflow.sdk.runners.DirectPipelineRunner run
INFO: Executing pipeline using the DirectPipelineRunner.
Aug 17, 2016 1:06:26 AM com.google.cloud.dataflow.sdk.util.RetryHttpRequestInitializer$LoggingHttpBackoffUnsuccessfulResponseHandler handleResponse
WARNING: Request failed with code 503, will NOT retry: https://www.googleapis.com/datastore/v1beta2/datasets/myGoogleProjectId/runQuery
Exception in thread "main" java.lang.RuntimeException: java.io.IOException: com.google.api.services.datastore.client.DatastoreException: Backend Error
    at com.google.cloud.dataflow.sdk.io.Read$Bounded$1.evaluateReadHelper(Read.java:189)
    at com.google.cloud.dataflow.sdk.io.Read$Bounded$1.evaluate(Read.java:168)
    at com.google.cloud.dataflow.sdk.io.Read$Bounded$1.evaluate(Read.java:164)
    at com.google.cloud.dataflow.sdk.runners.DirectPipelineRunner$Evaluator.visitTransform(DirectPipelineRunner.java:858)
    at com.google.cloud.dataflow.sdk.runners.TransformTreeNode.visit(TransformTreeNode.java:219)
    at com.google.cloud.dataflow.sdk.runners.TransformTreeNode.visit(TransformTreeNode.java:215)
    at com.google.cloud.dataflow.sdk.runners.TransformHierarchy.visit(TransformHierarchy.java:102)
    at com.google.cloud.dataflow.sdk.Pipeline.traverseTopologically(Pipeline.java:259)
    at com.google.cloud.dataflow.sdk.runners.DirectPipelineRunner$Evaluator.run(DirectPipelineRunner.java:814)
    at com.google.cloud.dataflow.sdk.runners.DirectPipelineRunner.run(DirectPipelineRunner.java:526)
    at com.google.cloud.dataflow.sdk.runners.DirectPipelineRunner.run(DirectPipelineRunner.java:96)
    at com.google.cloud.dataflow.sdk.Pipeline.run(Pipeline.java:180)
    at com.google.cloud.dataflow.examples.WordCount.main(WordCount.java:291)
Caused by: java.io.IOException: com.google.api.services.datastore.client.DatastoreException: Backend Error
    at com.google.cloud.dataflow.sdk.io.DatastoreIO$DatastoreReader.advance(DatastoreIO.java:920)
    at com.google.cloud.dataflow.sdk.io.DatastoreIO$DatastoreReader.start(DatastoreIO.java:911)
    at com.google.cloud.dataflow.sdk.io.Read$Bounded$1.evaluateReadHelper(Read.java:178)
    ... 12 more
Caused by: com.google.api.services.datastore.client.DatastoreException: Backend Error
    at com.google.api.services.datastore.client.RemoteRpc.makeException(RemoteRpc.java:115)
    at com.google.api.services.datastore.client.RemoteRpc.call(RemoteRpc.java:81)
    at com.google.api.services.datastore.client.BaseDatastoreFactory$RemoteRpc.call(BaseDatastoreFactory.java:41)
    at com.google.api.services.datastore.client.Datastore.runQuery(Datastore.java:109)
    at com.google.cloud.dataflow.sdk.io.DatastoreIO$DatastoreReader.getIteratorAndMoveCursor(DatastoreIO.java:969)
    at com.google.cloud.dataflow.sdk.io.DatastoreIO$DatastoreReader.advance(DatastoreIO.java:918)
    ... 14 more
Caused by: com.google.api.client.http.HttpResponseException: 503 Service Unavailable
Backend Error
    at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:1070)
    at com.google.api.services.datastore.client.RemoteRpc.call(RemoteRpc.java:78)
    ... 18 more

非常感谢您的帮助!

【问题讨论】:

  • 你能把你的项目ID发给eddavisson@吗?
  • 发送!非常感谢

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


【解决方案1】:

要使用此版本的 Dataflow,您需要在 Cloud Console 中启用“Google Cloud Datastore API (v1beta2)”API。

【讨论】:

  • 太棒了!那行得通。非常感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 2020-09-15
  • 2020-04-11
  • 1970-01-01
  • 2020-09-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-02
相关资源
最近更新 更多