我知道可以使用PCollections,KV和CoGbkResult在开头创建两个查询,但是您必须在ParDos / DoFns之外指定DatastoreIO.Reads。有可能做这样的事情:
Pipeline pipeline = Pipeline.create(options);
PubsubIO.Read.Bound<String> pubsub = PubsubIO.Read.named("ReadFromPubsub")
.subscription(subscriptionPath);
pipeline.apply(pubsub).apply("Query DB with UserId" , ParDo.of(new DoFn<String, String>() {
@Override
public void processElement(ProcessContext c) throws Exception {
String userId = c.element().toString();
//Query database using userId....
}
}));
pipeline.run();
答案 0 :(得分:0)
是。您可以在ParDo
中放置任意您喜欢的任意代码,并且可以执行任何问题。但是,请记住,您的代码将在Dataflow分布式环境中运行,因此您无法共享状态,依赖于排序等。