当前位置: 首页 > 知识库问答 >
问题:

KeyBy None for KeyedState

庾和昶
2023-03-14

编辑:我刚刚发现Java中存在一个类:NullByteKeySelector,允许在非键控用例中使用键控运算符

在函数库 Flink-HTM 的一个示例中,我可以阅读:

.keyBy { _ =

我正在尝试在 Java 中做等效的事情。由于mapWithState是Scala的语法糖,我试图在Flink Java MappingFunction中注册处理a的常规状态,但是,我不知道如何处理keyBy。

在这种情况只是时间戳和数字的时间序列元组。我尝试按时间戳、标量和两者进行键控,以强制将流转换为 keyedStream,因此我可以像原始示例中一样使用键控状态。结果是,在下一步中,注册状态将始终为 NULL,如果我理解正确,这是有道理的,因为键始终是唯一的,并且根本没有发生分区(不确定这一点)。

接下来我尝试是通过切换到操作员状态而不是键控状态来保留状态,但在这种情况下,状态是通过检查点来保留的,检查点按照检查点策略中的定义发生,这有时会给我留下不希望的副作用。

我真的很想使用键控状态将其组合在一起,有人可以说明我:

  • 在 Scala 版本中用“None”键控在做什么,如果有可能在 Java 中实现等效的抠像?

共有1个答案

微生季
2023-03-14

当你通过不断独特的东西进行键控时,那么你实际上是在分区。分区非常小 - 每个分区都有一个事件。这使得键控状态不是很有用,除非您还使用计时器。

按无键控与按常量键控相同。没有分区,因此并行度不能大于 1,但可以使用键控状态和计时器。

 类似资料:

相关问答

相关文章

相关阅读