在flink窗口中,我可以在自己定义的触发器中访问globalstate吗?我尝试了triggercontext.getpartitionedstate,但它只能获得每个窗口的状态。
u2nhd7ah1#
唯一可用于 Trigger 是通过使用的每个键、每个窗口状态 triggerContext.getPartitionedState . 触发器没有全局状态。有一些可能的解决办法。可以想象,你可以有一个 Trigger 在每个事件上激发,然后在 ProcessWindowFunction 决定做什么(这可能是一个非常糟糕的主意)。在大多数情况下,如果很难从windowapi获得所需的内容,那么最好使用 ProcessFunction . 如果不清楚如何用这种方式解决问题,请问另一个问题,提供关于用例的更多细节。
Trigger
triggerContext.getPartitionedState
ProcessWindowFunction
ProcessFunction
1条答案
按热度按时间u2nhd7ah1#
唯一可用于
Trigger
是通过使用的每个键、每个窗口状态triggerContext.getPartitionedState
. 触发器没有全局状态。有一些可能的解决办法。可以想象,你可以有一个
Trigger
在每个事件上激发,然后在ProcessWindowFunction
决定做什么(这可能是一个非常糟糕的主意)。在大多数情况下,如果很难从windowapi获得所需的内容,那么最好使用
ProcessFunction
. 如果不清楚如何用这种方式解决问题,请问另一个问题,提供关于用例的更多细节。