开发者社区> 问答> 正文

如何让Flink trigger只输出有变化的数据?

我们有一个按自然天聚合统计各站点销量和GMV数据的Flink任务,代码框架如下:

sourceStream
.map(message -> JSON.parseObject(message, OrderDetail.class))
.keyby("siteId")
.window(TumblingProcessingTimeWindows.of(Time.days(1), Time.hours(-8)))
.trigger(ContinuousProcessingTimeTrigger.of(Time.seconds(1)))
.aggregate(new VolumeGmvAggregateFunc());

为了能够让dashboard实时刷新数据,每秒会触发一次计算。但是站点有将近1000个,每秒都输出全量结果不太现实,请问有什么简便的方法能够仅输出一秒内发生过变化的站点数据呢?Thx.*来自志愿者整理的flink邮件归档

展开
收起
小阿矿 2021-12-08 10:55:41 1822 0
1 条回答
写回答
取消 提交回答
  • 我们遇到过类似的问题,最终sink前可将key的结果存入state中,通过对比state中的结果与最终结果是否一致,去决定是否需要collect结果。

    觉得不是最好的解决办法,请教下如何通过Evictor剔除未更新的数据,不知是否方便详细说一下实现方式,谢谢! *来自志愿者整理的flink邮件归档

    2021-12-08 14:51:13
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Flink CDC Meetup PPT - 龚中强 立即下载
Flink CDC Meetup PPT - 王赫 立即下载
Flink CDC Meetup PPT - 覃立辉 立即下载