0

我正在使用以下代碼片段從Dataflow訪問Cloud Datastore。數據存儲是在我的項目中創建的,我能夠運行僅訪問雲存儲的Dataflow樣本。獲取com.google.api.services.datastore.client.DatastoreException:從Dataflow訪問Cloud Datastore時發生後端錯誤

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 

非常感謝您的幫助,數據流!

+0

你可以發送你的項目ID到eddavisson @? –

+0

發送!謝謝v多 – raserside

回答

0

要使用此版本的Dataflow,您需要在雲控制檯中啓用「Google Cloud Datastore API(v1beta2)」API。

+0

太棒了!那工作。非常感謝您的幫助! – raserside

相關問題