我正在用datastreamapi在flink中进行时间序列数据分析。每50个事件(数据收入)我想对它们进行一次转换,保存结果并将其与下50个事件的转换结果进行比较。以此类推。我的问题是,在flink中,有没有一种方法,在做了一个转换之后,保存结果,并查询下一个转换后的50个事件,以及之前的结果?
a7qyws3x1#
是的,有两种方法可以做到这一点,都是利用Flink州。(1) 您可以使用count个使用 globalState() 在 ProcessAllWindowFunction.Context 记住有关上一个窗口的信息(文件)(2) 或者你可以用一个 RichFlatMapFunction 或者 ProcessFunction . 在这种情况下,您需要自己创建和管理必要的状态,但这并不困难。你需要一个计数器,一些前一个窗口和当前窗口结果的表示。在这两种情况下,您都需要使用键控流。如果您需要全局执行此操作,而不是在密钥分区流上执行此操作,请告诉我,我将继续。
globalState()
ProcessAllWindowFunction.Context
RichFlatMapFunction
ProcessFunction
1条答案
按热度按时间a7qyws3x1#
是的,有两种方法可以做到这一点,都是利用Flink州。
(1) 您可以使用count个使用
globalState()
在ProcessAllWindowFunction.Context
记住有关上一个窗口的信息(文件)(2) 或者你可以用一个
RichFlatMapFunction
或者ProcessFunction
. 在这种情况下,您需要自己创建和管理必要的状态,但这并不困难。你需要一个计数器,一些前一个窗口和当前窗口结果的表示。在这两种情况下,您都需要使用键控流。如果您需要全局执行此操作,而不是在密钥分区流上执行此操作,请告诉我,我将继续。