我必须加入Google Datastore和Google BigTable的数据才能生成一些报告。我需要每分钟执行一次这个操作。是否可以通过Google Cloud Dataflow实现(假设处理本身不需要很长时间和/或可以拆分为独立的并行作业)?
我应该在" main"内部进行无限循环。一次又一次地创建和执行相同的管道?
如果在这种情况下大部分时间是通过启动虚拟机来实现的,那么是否可以指示数据流使用客户虚拟机?
谢谢,
答案 0 :(得分:1)
如果您希望您的工作足够小,可以在60秒内完成,您可以考虑在Streaming作业的DoFn
内使用数据存储区和BigTable API。您的管道可能类似于:
PCollection<Long> impulse = p.apply(
CountingInput.unbounded().withRate(1, Duration.standardMinutes(1)))
PCollection<A> input1 = impulse.apply(ParDo.of(readFromDatastore));
PCollection<B> input2 = impulse.apply(ParDo.of(readFromBigTable));
...
这会永远每分钟产生一次输入。作为流管道运行,VM将继续运行。
从两个API读取后,您可以根据需要进行窗口/连接。