我在Kafka上有一个数据流,我将其作为Kstream流传输。在它旁边,我有一个元数据流,我想用它来丰富数据流。几个例子中有一个相当普遍的情况。
我还没有解决的问题是元数据流包含指定窗口的多个结果。在这种情况下通常需要的是将其与元数据流中的最新元素或最后元素相连接。例如,销售订单将使用最新的客户对象实现一次,而不是每次顺序客户更新两次。
想象一下以下场景:
当元素7(绿色)到达时,它与元数据流中的2和3连接,即使只有3个是相关的(在我的情况下)。
我意识到这可能是Kstream< -Ktable连接的良好匹配,其中Ktable仅包含元数据流中的最新记录。但这有一个巨大的缺点,因为它无法以良好的方式应对迟到和无序的数据。
问题归结为:我如何将Kstream加入另一个Kstream,但只加入后者的最新活动?