Dataflow 流 - 它适合我们的用例吗?

Dataflow streaming - does it fit our use case?

我们在批处理模式下使用 Dataflow 已有一段时间了。但是,我们似乎找不到太多关于其流媒体模式的信息。

我们有以下用例:

现在,我们当然可以在批处理模式下使用 Dataflow,并从 BigQuery 中提取数据(基于时间戳),然后 transform/clean/denormalize 这样。

但这是一种有点混乱的方法,尤其是因为数据是实时流式传输的,而且它可能会变得非常粗糙,无法确定需要处理哪些数据。听起来也很脆。

如果我们可以在 Dataflow 中简单地 transform/clean/denormalize,然后写入 BigQuery ,因为它正在流入

,那就太好了

这是 Dataflow 流式处理的目的吗?如果可以,Dataflow 可以在流模式下读取什么数据源?

是的,这是流模式的一个非常合理的用例。目前我们支持阅读 Cloud Pub/Sub via the PubsubIO source. Additional sources are in the works. Output can be written to BigQuery via the BigQueryIO sink. The PCollection docs 涵盖有界和无界之间的区别 sources/sinks,以及当前可用的具体实现。

至于任何明显缺乏流式处理的特定文档,大部分统一模型适用于批处理和流式处理,因此没有流式处理特定的部分。也就是说,我建议查看 PCollection 文档的 Windowing and Triggers 部分,因为这些部分在处理无界 PCollections 时特别适用。