KStream-KStream-Join 在连续执行时有不同的结果
KStream-KStream-Join with different Results on consecutive executions
因为我不知道我的question是否会重新开放..这里有一个更准确的问题。
我有 StreamA(包含在 30 分钟间隔内生产的产品)和 StreamB(包含来自 4 个不同传感器的测量值,每 5 分钟生成一次测量值)。这两个流连接在一个公共密钥上。 StreamC 是此连接的结果,包含 measurementEnrichedProducts。
我有 ~15k 产品和 ~250k 测量值。以下是结果:
Run Num records within StreamC
1 149,389
2 149,362
3 149,363
4 149,411
每个 运行 具有完全相同的配置,streamA/B 中的事件也相同。
真不知道为什么会这样。有没有可能底层statestore有什么问题?
我重新启动应用程序的速度太快了...
在玩 max.task.idle.ms-property 时,我注意到结果很稳定(每次执行的数量相同)但比以前少了。让应用程序 运行 超过 15 分钟后 (max.task.idle.ms=600000[10minutes]) 我收到了更多结果,streamC 中的记录数也很稳定。
再次删除 max.task.idle.ms 并等待足够长的时间会导致相同的结果。
我怀疑问题的发生是由于 out-of-order 输入数据和内部缓冲区未被填充。
因为我不知道我的question是否会重新开放..这里有一个更准确的问题。
我有 StreamA(包含在 30 分钟间隔内生产的产品)和 StreamB(包含来自 4 个不同传感器的测量值,每 5 分钟生成一次测量值)。这两个流连接在一个公共密钥上。 StreamC 是此连接的结果,包含 measurementEnrichedProducts。
我有 ~15k 产品和 ~250k 测量值。以下是结果:
Run Num records within StreamC 1 149,389 2 149,362 3 149,363 4 149,411
每个 运行 具有完全相同的配置,streamA/B 中的事件也相同。
真不知道为什么会这样。有没有可能底层statestore有什么问题?
我重新启动应用程序的速度太快了...
在玩 max.task.idle.ms-property 时,我注意到结果很稳定(每次执行的数量相同)但比以前少了。让应用程序 运行 超过 15 分钟后 (max.task.idle.ms=600000[10minutes]) 我收到了更多结果,streamC 中的记录数也很稳定。
再次删除 max.task.idle.ms 并等待足够长的时间会导致相同的结果。
我怀疑问题的发生是由于 out-of-order 输入数据和内部缓冲区未被填充。