你如何表达Apache Beam中长时间延伸的非规范化连接

Ste*_*ble 20 apache-beam

对于上下文,我从未使用过Beam.我试图了解如何将Beam模型应用于常见用例.

考虑到你有一个无限的Producer集合和一个无限的产品集合,这样每个产品都有一个Producer(一对多,Producer到Product).并且您拥有产品生产者在其产品之前(或之后不久)出现的附加属性.但制作人可能会在其产品出现之前几年出现.

如果你想生产一个无限制的产品系列,他们的生产商与他们联系起来,那么表达这种产品的恰当方式是什么?拥有延长多年的窗口连接似乎打败了窗口的点.但是,将生产者作为侧面输入并不能解决生产者在产品何时出现时可能非常接近的问题.

有没有合适的方法来混合这两个概念?

Jia*_* Ma 5

由于Producer可能比其Product早几年出现,因此您可以使用一些外部存储(例如BigTable)来存储Producer并编写ParDofor Product流以进行查找和执行联接。为了进一步优化性能,您可以利用有状态DoFn功能来批量查找(请参阅博客)。

对于在生产者数据之前交付产品数据的情况,您仍然可以使用windowing和CoGroupByKey进行联接。但是,此处的窗口可能足够小,以处理无序交付。