【发布时间】:2017-05-24 20:19:08
【问题描述】:
我有一个记录按顺序到达的流。我应用了 map 函数,然后对其应用了 keyBy 函数。记录的顺序是否会在具有相同键的每个记录流中保持?
Ordering of Records in Stream 中也有类似的问题。但我对那里给出的答案和从链接“https://ci.apache.org/projects/flink/flink-docs-release-1.2/concepts/programming-model.html”复制的以下描述感到困惑。
" 在重新分配交换中,元素之间的顺序仅保留在每对发送和接收子任务中(例如,map() 的 subtask[1] 和 keyBy/window 的 subtask[2])。所以在这个例如,保留了每个键中的顺序,但并行性确实引入了关于不同键的聚合结果到达接收器的顺序的不确定性。”
在给出的示例中,keyBy 的 subtask[2] 接收来自 map 的 subtask[1] 和 subtask[2] 的元素。如果仅在子任务之间维护排序,如何保留每个键中的排序?
【问题讨论】:
标签: apache-flink flink-streaming