假设我在一个键控过程之后得到一个流。

DataStream<T> stream= sourceStream.keyBy(key).window(window).apply(function);

结果流是否仍然键控? 我可以在该流中使用某些 Keyed 状态吗?

#1楼 票数:3 已采纳

没错,键控窗口或键控处理函数的输出不再是键控流。 Flink 无法知道您执行的计算是否会保留之前的分区。

要使用键控状态,您需要对流重新加密,或者如果您确定原始键控已被保留,您可以使用reinterpretAsKeyedStream通知 Flink 流仍然是键控的。

  ask by haoyu wang translate from so

未解决问题?本站智能推荐:

2回复

减少键控流中的函数行为

对于我们的一个用例,我们需要根据文件中的更改重做一些计算,然后广播该文件的结果,以便我们可以在另一个流中使用它。 程序的生命周期,几乎是这样的: 数据流 1:监控文件 -> 检测一些变化 -> 重新处理文件中的所有元素 -> 计算一个结果 -> 广播 数据流 2:一些转换
1回复

通过与广播流键控的连接后,键控流的输出流是否已加密?

在通过与广播流的连接然后通过处理函数后,keyedstream 的输出流是否仍然是 keyed 流?
1回复

Flink键控流键为空

我试图在Flink中的KeyedStream上执行映射操作: JsonToObjectMapper运算符的输出是MessageObject类的POJO,它具有String字段“ keyfield ”。 然后,将流键入此字段。 MessageProcessorStateful是一个
1回复

Flink是否处理每个键只有一个线程的键控窗口?

Flink 窗口文档说: 拥有键控流将使您的窗口化计算可以由多个任务并行执行,因为每个逻辑键控流都可以独立于其余逻辑流进行处理。 此语句是否意味着每个窗口都由专用线程评估? 如果我有5000万个唯一键创建5000万个窗口,那么将有5000万线程并行执行吗?
1回复

Flink中的键控流中的记录顺序

我有一个流,其中记录按顺序到达。 我应用了地图功能,然后在其上使用keyBy功能。 记录的顺序是否将在使用相同密钥的每个记录流中维护? 流中的记录排序也有类似的问题。 但是我对给出的答案和从链接“ https://ci.apache.org/projects/flink/flink-
1回复

Flink 可重扩展键控流有状态功能

我有以下 Flink 作业,我尝试使用具有后端类型 RockDB 的键控流状态函数(MapState), MyRichMapFunction 是一个有状态的函数,它扩展了 RichMapFunction,它具有以下代码, 将来,我想重新调整并行度(从 2 到 4),所以我的问题是,如何实现
1回复

如何在flink流处理中使用过滤器在键控流上添加处理函数?

我有一个数据流,我通过一个字段对其进行键控,我正在添加一个 RichFilter 来过滤掉不合适的数据,同时使用 flink 状态。 我想用键控处理函数来处理这个过滤掉的数据,因为我想在这个处理函数中使用 flink valueState。 但是由于过滤器的输出不是键控流,所以我无法将它与键控处理函
1回复

为什么键控流(在keyBy上)创建倾斜的下游执行?

我有一种情况,其中有8个键(在keyBy上),并且插槽上的跨度倾斜。 我有一个3的并行度,键控操作的范围是5,2和1,其中5个键入射在单个插槽上。 有没有办法确保键控操作的分配平衡。 (我们没有对键流进行分区操作)