如果我们有一个像这样的流
Person {
…
OrganizationID
}
我们想加入另一个流
Organization {
ID
…
}
创建类似这样的复合记录:
Person {
…
Organization {
ID
…
}
}
在 Apache Beam编程模型中,惯用和最有效的方法是什么?
NB:已经看到推荐side input
作为类似问题的解决方案,但由于此处的影响是每次更改 {{ 1}} 或 Person
应该产生新的扩充Organization
记录。
答案 0 :(得分:1)
编辑:
答案是,由于缺少Apache Beam实现中的撤消功能,Apache Beam不支持您的示例。
================================================ ====
原始答案:
您可能要检查Apache Beam中的Join库[1]。
加入Beam模型需要额外考虑流中的窗口化策略。听起来您的流不需要开窗,所以说您的流都在全局窗口中。但是,如果您在两个流上都设置了全局窗口,则使用默认触发器并像Beam的Join库一样进行Join,由于水印永远不会通过无尽的窗口,因此Join将不会发出任何结果。但是,如果您重复设置数据驱动的触发器(一旦看到足够多的元素,便会触发),但是由于缺少对Beam撤回的支持,尚不清楚如何为Join优化预发布结果。