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

在窗口关闭时清除 Flink 状态

王俊哲
2023-03-14

这是我的代码。我的问题如下

>

  • 以这种方式清除状态是否正确?

    这是使用keyBy的正确方法吗?

    //有100万个storeId

     orderStream.keyBy(Order::getStoreId)
         .window(TumblingEventTimeWindows.of(Time.days(1), Time.hours(16)))
         .trigger(ContinuousEventTimeTrigger.of(Time.seconds(1)))
         .evictor(TimeEvictor.of(Time.seconds(0), true))
         .process(new ProcessWindowFunction<Order, Object, Long, TimeWindow>() {
             MapState<Long, Long> storeCountState;
             @Override
             public void process(Long storeId, Context context, Iterable<Order> elements, Collector<Object> out) throws Exception {
                 long sum = 0L;
                 for (Order element : elements) {
                     sum++;
                 }
                 storeCountState.put(storeId, storeCountState.get(storeId) + sum);
             }
    
             @Override
             public void open(Configuration parameters) throws Exception {
                 super.open(parameters);
                 MapStateDescriptor<Long, Long> mapStateDescriptor = new MapStateDescriptor();
                 storeCountState = getRuntimeContext().getMapState(mapStateDescriptor);
             }
    
             @Override
             public void close() throws Exception {
                 super.close();
                 // I clear state when each window close 
                 storeCountState.clear();
             }
         })
         .addSink(new PrintSinkFunction<>());
    
  • 共有1个答案

    颜文昌
    2023-03-14

    我认为应该重写< code > public void clear(Context Context)throws Exception { } 函数,而不是< code>close()函数

    文档

     类似资料:
    • 我正在使用window API将数据划分为1小时的窗口。在每个窗口中,我使用一个值状态为每个窗口存储一个布尔值。 我必须调用“clear()”方法来清理窗口状态数据吗?我假设,因为Flink处理窗口创建和清除,所以它在清除窗口时也应该处理状态清理。 但是Flink文档明确表示,您应该调用clear方法来删除窗口状态https://ci.apache.org/projects/Flink/flink

    • 我有以下情况 我单击父窗口中的一个链接(即添加注释链接)打开一个新窗口。我添加了一个注释,然后单击关闭按钮切换回父窗口

    • 问题内容: 最终编辑: 我在关闭pyplot窗口这一主题上发现,实际上可能不应该使用pyplot完成它。SRK给出了一个很好的示例,说明如何处理将在下面的答案中更新的图。我也偶然发现了如何将pyplot图放到Tkinter窗口中,并且Tkinter比pyplot更擅长打开和关闭窗口。这里是怎样把一个pyplot情节变成Tk的窗口, /最终编辑 我希望能够显示多个图,然后能够从某些代码输入中分别关闭

    • 我刚刚花了相当多的时间来寻找pygame的64位安装,以便与Python3.3一起使用(这里),现在我正在尝试创建一个窗口。然而,尽管窗口打开得很好,但当它按下x按钮时并没有关闭。事实上,我必须关闭闲置关闭窗口。我正在运行Win7的64位版本。这是我的密码: 当我附加 它仍然没有关闭。我唯一的猜测就是那个游戏。退出可能会进入其中一个循环,但即使解决了这个问题,我还是更愿意在需要时关闭窗口。

    • 我想使用早期触发逻辑进行窗口聚合(您可以认为聚合是由窗口关闭或特定事件触发的),我阅读了文档:https://ci . Apache . org/projects/flink/flink-docs-release-1.12/dev/stream/operators/windows . html # incremental-window-aggregate-with-aggregate functi

    • 本文向大家介绍javascript在当前窗口关闭前检测窗口是否关闭,包括了javascript在当前窗口关闭前检测窗口是否关闭的使用技巧和注意事项,需要的朋友参考一下 在当前窗口关闭前,检测当前窗口是否关闭 在ie9中,如果刷新文档的话,unloadform和onbeforeunload都会执行,如果是关闭页面的话只会执行onbeforeunload事件 值得注意的是,onunload在关闭页面时