运行定期数据流作业

时间:2016-06-24 18:16:55

标签: google-cloud-dataflow

我必须加入Google Datastore和Google BigTable的数据才能生成一些报告。我需要每分钟执行一次这个操作。是否可以通过Google Cloud Dataflow实现(假设处理本身不需要很长时间和/或可以拆分为独立的并行作业)?

  1. 我应该在" main"内部进行无限循环。一次又一次地创建和执行相同的管道?

  2. 如果在这种情况下大部分时间是通过启动虚拟机来实现的,那么是否可以指示数据流使用客户虚拟机?

  3. 谢谢,

1 个答案:

答案 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读取后,您可以根据需要进行窗口/连接。