flink窗口分组数据错乱

devtools/2024/9/20 18:14:24/

文章目录

      • 问题
      • 目标
      • 解决问题-方案1
          • 使用事件时间
          • 迟到时间
          • 输出幂等
      • 解决问题-方案2

问题

正常的flink 作业运行,带窗口的运行,因为上游业务的影响,导致业务恢复后,积累的kafka 数据瞬时涌到flink 程序里,flink 窗口分钟的,导致这一分钟的值非常大。在折线图上展示出来 ,一眼就会发现问题。

目标

即使发生数据累积,也要按事件发生时间,把数据分到应到的窗口里。

解决问题-方案1

要解决上面这个问题,要从三个方面来处理

使用事件时间

也就是窗口TumblingEventTimeWindows,要用这种才按实际的事件时间去分窗口

迟到时间

其实主要是,allowedLateness(Duration.ofMinutes(1)),对于flink 程序来说,其实积累的元素就相当于迟到的元素,只有这个allowedLateness 时间够长,那迟到的元素就能再次触发窗口的计算

输出幂等

如果之前的窗口已经输出,那如果再输出的话就要下游支持幂等操作

解决问题-方案2

直接通过旁路输出把迟到元素输出,然后可以通过离线操作,或者手工把数据补全。


http://www.ppmy.cn/devtools/108504.html

相关文章

从零开始:打造你的第一个餐厅点餐小程序

目录 1 为什么选择点餐小程序2 会有哪些功能2.1 顾客端2.2 服务员端2.3 后厨端2.4 收银端2.5 管理员(老板)端 3 开发工具选择4 你将获得什么让我们开始吧 最近,有不少粉丝咨询,有没有系统的低代码学习教程呀?为啥你的教…

Java Web —— 扩展(Maven高级)

分模块设计与开发 未分模块设计的问题 不方便项目的维护和管理、项目中的通用组件难以复用 分模块设计 分模块设计就是将项目按照功能/结构拆分成若干个子模块,方便项目的管理维护、拓展,也方便模块 键的相互调用、资源共享。 继承与…

浅谈C#之任务调度TaskScheduler

一、基本介绍 TaskScheduler 是一个抽象类,用于控制任务的执行方式,特别是它们如何被安排到线程池中的线程上执行。 TaskScheduler 负责将 Task 对象排队并决定何时、以何种方式执行这些任务。 二、TaskScheduler的作用 调度任务:将任务分配…

(postman)接口测试进阶实战

1.内置和自定义的动态参数 内置的动态参数有哪些? ---{{$}}--是内置动态参数的标志 //自定义的动态参数 此处date.now()的作用就相当于上面的timestamp 2.业务闭环及文件接口测试 返回的url地址可以在网页中查询得到。 3. 常规断言,动态参数断言&#xf…

Vue - 关于Router路由跳转时显示的animate.css动画

Vue - 关于Router路由跳转时显示的animate.css动画 在Vue中,操作路由跳转时页面是闪白的,没有动画效果,我们可以通过在router-view中设置transition,并搭配animate丰富的动画效果来美化路由跳转时的显示效果. 1.安装animate np…

Scratch 变量模块

引言 在编程世界里,变量是一种非常重要的数据存储机制,它允许我们在程序运行过程中保存和处理信息。Scratch 作为一种入门级的编程语言,同样提供了变量功能,使得用户可以轻松地理解和使用变量这一概念。本文将介绍如何在 Scratch …

spring数据校验Validation

文章目录 需要的依赖创建校验对象Validator 需要的依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId> </dependency>创建校验对象Validator 测试的实体类 //创建…

STM32 - 笔记4

1 STM32 示波器 基于STM32的简易示波器项目(含代码)——HAL库_stm32简易示波器 基于STM32的简易示波器项目(含代码)——HAL库_stm32简易示波器_stm32示波器-CSDN博客 【强烈推荐】基于stm32的OLED各种显示实现(含动态图)_stm32oled以十六进制显示-CSDN博客 STM32示波器…