在处理主输入时,更新/刷新侧输入数据或传递可在变换中访问的一些附加数据集

时间:2016-12-05 08:40:08

标签: google-cloud-dataflow

我正在尝试创建一个流数据流管道。 我需要访问一些额外的数据来处理从pubsub收到的主要输入。如果我使用侧输入然后在一段时间后(如1天)我需要更新缓存的侧输入数据。 或者有没有办法以列表或映射的形式将其他数据传递给转换,以便我可以使用第三方缓存管理器来刷新此数据。

感谢。

1 个答案:

答案 0 :(得分:4)

以下是一些可能性:

  1. 如果您可以将对您的旁边输入的更改表示为无限制的PCollection更改 - 例如通过订阅更改通知主题 - 那么您应该能够将更新添加到{{ 1}}您正在查看作为侧面输入,只要您能够容忍陈旧数据。侧输入的更新和缓存在更新时没有明确的延迟,但肯定会少于一天。

  2. 如果您没有更改通知主题,您仍然可以编写自己的PCollection数据流将轮询更新。这可能有点复杂。

  3. UnboundedSource类似,在Apache Beam(孵化)中,我们积极致力于在UnboundedSource中支持带回调的计时器,因此您可能希望关注BEAM-27

  4. 您还可以在传入的主输入数据上创建自己的缓存。

  5. 根据其他细节,可能还有其他方法。您可能需要考虑如何“等待”新值准备好。对于特定窗口,任何主输入都将等待侧输入具有该窗口的值。但是一旦侧面输入有一个值,就没有更多的等待,而只是最好的努力最终更新。