在 google 数据流中实施撤回

Implementing retractions in google dataflow

我阅读了 "The Dataflow Model: A Practical Approach to Balancing Correctness, Latency, and Cost in MassiveScale, Unbounded, Out of Order Data Processing" 论文。唉,SDK 还没有公开累积和收回触发模式(第 2.3 节)。

我想知道是否有获得类似语义的解决方法?

我一直在阅读源代码并发现 StateTag 或 StateNamespace 可能是我可以存储 "last emitted value of the window" 的方式,因此可用于计算管道中的撤回消息。这是正确的路径还是有其他的classes/ways我can/should看看

即将到来的状态 API 确实是您模拟撤回的最佳选择。你提到的类是状态API的一部分,但com.google.cloud.dataflow.sdk.util中的所有内容仅供内部使用;从技术上讲,我们不保证 API 不会发生重大变化,甚至不会保持未发布状态。也就是说,发布 API 在我们的路线图上,我希望我们能相对较快地发布它。

请记住一件事:自定义撤回的所有下游代码都需要能够将它们与正常记录区分开来。这是我们会在真正的撤回支持准备就绪后自动为您做的事情,但与此同时,您只需要确保您编写的所有可能收到撤回的代码都知道如何识别和处理它.