com.google.cloud.datastore
を使用してDataFlowからデータストアに書き込もうとしています。私はこのエラーを取得していDataflow + Datastore = DatastoreException:I/Oエラー
public void processElement(ProcessContext c) {
LocalDatastoreHelper HELPER = LocalDatastoreHelper.create(1.0);
Datastore datastore = HELPER.options().toBuilder().namespace("ghijklmnop").build().service();
Key taskKey = datastore.newKeyFactory()
.ancestors(PathElement.of("TaskList", "default"))
.kind("Task")
.newKey("sampleTask");
Entity task = Entity.builder(taskKey)
.set("category", "Personal")
.set("done", false)
.set("priority", 4)
.set("description", "Learn Cloud Datastore")
.build();
datastore.put(task);
}
:
私のコードは、この([1]の例に触発された)のように見えます
exception: "java.lang.RuntimeException: com.google.cloud.dataflow.sdk.util.UserCodeException: com.google.cloud.datastore.DatastoreException: I/O error
at com.google.cloud.dataflow.sdk.runners.worker.SimpleParDoFn$1.output(SimpleParDoFn.java:162)
at com.google.cloud.dataflow.sdk.util.DoFnRunnerBase$DoFnContext.sideOutputWindowedValue(DoFnRunnerBase.java:314)
at com.google.cloud.dataflow.sdk.util.DoFnRunnerBase$DoFnProcessContext.sideOutput(DoFnRunnerBase.java:470)
at com.google.cloud.dataflow.sdk.transforms.Partition$PartitionDoFn.processElement(Partition.java:172)
私はDatastoreIO
シンクを使用しようとしました、ストリーミングランナーでは現在サポートされていないようです。
このエラーを回避するにはどうすればよいですか?またはDataFlowからDataStoreに書き込む最良の方法は何ですか? @Sam McVeetyのアドバイスに従い
になり、そのことが可能ですhttp://stackoverflow.com/questions/35417993/datastore-is-throwing-io-error-while-interacting-with-google-cloud-apiと同様の問題が発生していますか?データフローとは関係なく、コードがデータストアと正常にやりとりすることを確認しましたか? –