开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

A表 left join B表后的结果写入upsert-kafka,下游统计时如何在窗口内获取到最新

我A表 left join B表后的结果写入upsert-kafka,下游统计时如何在窗口内获取到最新的数据啊? 3daabcbe1b4ee451240617c0038677e9.png

展开
收起
爱喝咖啡嘿 2022-12-21 13:09:31 242 2
1 条回答
写回答
取消 提交回答
  • 一般情况下,在下游使用窗口操作的时候,都是根据某个字段作为窗口的起始时间或者结束时间,然后每条记录进入窗口时被聚合或者处理。

    因此,在这种情况下,如果需要在窗口内获取到最新的数据,则可以使用先进先出的窗口。在 Flink 中,先进先出窗口就是 EvictingWindowOperator。

    首先,在 A 表 left join B 表后,使用 EvictingWindowOperator 对数据流进行窗口操作,设置窗口大小为 1,窗口先进先出,每个窗口执行一个最新的数据。具体使用方法如下:

    A_B_Table
      .window(EvictingWindowOperator.of(Count.of(1), OverflowPolicy.FIRE_AND_PURGE))
      .reduce((v1, v2) -> v2)
      .addSink(...);
    
    2022-12-30 08:00:31
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

热门讨论

热门文章

相关电子书

更多
Java Spring Boot开发实战系列课程【第16讲】:Spring Boot 2.0 实战Apache Kafka百万级高并发消息中间件与原理解析 立即下载
MaxCompute技术公开课第四季 之 如何将Kafka数据同步至MaxCompute 立即下载
消息队列kafka介绍 立即下载