gpt4 book ai didi

apache-flink - 流中记录的排序

转载 作者:行者123 更新时间:2023-12-05 09:20:17 37 4
gpt4 key购买 nike

以下是我的一些疑问:

我有两个不同的流 stream1stream2,其中的元素是有序的。

1) 现在,当我对这些流中的每一个执行 keyBy 时,顺序会保持不变吗? (因为这里的每个组只会发送给一个任务经理)我的理解是,记录将按组顺序排列,请在此处纠正我。

2) 在两个流上的 keyBy 之后,我正在做共同分组以获得匹配和不匹配的记录。订单也会在这里维护吗?因为这也适用于 KeyedStream。我正在使用 EventTimeAscendingTimestampExtractor 来生成 timestampwatermark

3) 现在我想使用 map/flatmap 对从 2)​​ 获得的 matching_nonMatchingStream 执行序列检查。我是否需要在此处再次执行 keyBy,或者如果我保留在链中,matching_nonMatchingStream 是否会在同一个 TaskManager 中运行?我在这里的理解是链条将在这里工作,纠正我,变得困惑。

4) slotSharingGroup - 你能详细描述一下吗根据文档:设置此操作的插槽共享组。如果可能,同一插槽共享组中的并行操作实例将共同位于同一 TaskManager 插槽中。

最佳答案

关于订购保证

此页面提供了很好的概述和解释,以及订购保证:https://ci.apache.org/projects/flink/flink-docs-release-1.0/concepts/concepts.html#parallel-dataflows

要点是:

顺序在每个并行流分区内保持不变。有关流分区的说明,请参见此处:https://ci.apache.org/projects/flink/flink-docs-release-1.0/concepts/concepts.html#parallel-dataflows

对于更改分区的“keyBy()”或“rebalance()”等操作,每对源和目标流分区维护顺序,即每对发送和接收运算符。

正如 Matthias 提到的,如果一个组(由一个键定义,在一个接收目标运算符(operator)上运行)从多个发送方获取元素,则没有明确定义的元素的严格排序。使用事件时间等概念,您可以根据数据(附加的时间戳)强加有意义的顺序。

关于apache-flink - 流中记录的排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38354713/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com