【API篇】九、Flink的水位线

news2024/10/2 6:32:49

文章目录

  • 1、Flink时间语义
  • 2、事件时间和窗口
  • 3、水位线
  • 4、水位线和窗口的工作原理

1、Flink时间语义

  • 事件时间
  • 处理时间

举个例子就是,一条数据在23:59:59产生,在00:00:01被处理,前者为事件时间,后者为处理时间。

在这里插入图片描述

从Flink1.12版本开始,Flink已经将事件时间作为默认的时间语义了。

2、事件时间和窗口

逻辑上的时钟,不会像生活中的时钟,时间会自动流逝。08:59:59的数据到了,逻辑时钟才认为时间到了08:59:59,没有数据来,逻辑时钟就不会推进

在这里插入图片描述

3、水位线

关于水位线的理解:

  • 是一条数据
  • 是插入到数据流中的一个标记点,是真实存储的数据
  • 内容是一个时间戳,指示了当前的事件时间

有序流中的水位线:

理想状态下,数据量小,且按生成的先后顺序进入流中,此时,可以给每个数据都产生一个水位线:

在这里插入图片描述

实际环境下,数据流巨大,且数据涌来的时差极小,此时可每隔一段时间来生成一个水位线:

在这里插入图片描述

乱序流中的水位线:

分布式系统下,数据在各个节点之间传输,会因网络延迟等问题而发生顺序改变,产生数据的乱序,如下示意图:

在这里插入图片描述

乱序+数据量小时,可以每来一个数据,先判断其时间戳(水位线)是否比前面数据大,否则就不生成新的水位线。此时,就可以依旧靠数据来推动逻辑时钟前进。

在这里插入图片描述

乱序+数据流大时,可周期性生成水位线,一定长度时间的数据里,最大的时间戳做为水位线:

在这里插入图片描述

按照以上的逻辑,会有窗口下的迟到数据,如图中深灰色的数据。有个0-10秒的窗口,乱序数据下,有个10s的数据先到了,如果按正常逻辑,水位线就会被推进到10s的时刻,10s > 10s-1ms ,此时就会触发窗口关闭和输出,但这个输出可能还有迟到的数据未统计到。

在这里插入图片描述

针对迟到数据,可以等待一段时间(加延迟),比如2s,即用当前已有数据的最大时间戳减去2秒,当作插入的水位线时间戳,如此,可防止丢数据。

在这里插入图片描述
总结:

  • 水位线是插入到数据流中的一个标记,可以认为是一个特殊的数据
  • 水位线主要的内容是一个时间戳,用来表示当前事件时间的进展
  • 水位线是基于数据的时间戳生成的
  • 水位线的时间戳必须单调递增,以确保任务的事件时间时钟一直向前推进
  • 水位线可以通过设置延迟,来保证正确处理乱序数据个
  • 水位线Watermark(t),表示在当前流中事件时间已经达到了时间戳t,这代表t之前的所有数据都到齐了,之后流中不会出现时间截t’< = t 的数据

4、水位线和窗口的工作原理

窗口可理解成一个桶,但这个装水的桶不是反复用的,不是说接完水后倒掉继续接下一桶,这是错误理解。如果按照这样理解,加了延迟时间后,岂不是会把后面桶里的数据给误倒掉。实际底层不是这样的,加了延迟时间以后,只是对前一个桶触发计算和关闭的时间延后了。像图中的11和12这两条数据(橙色),该是第二个桶的还是会去第二个桶,每个窗口都是一个个独立的桶,每个数据都会分发到对应的桶中,当到达窗口结束时间时,对每个桶中收集的数据进行计算处理。

在这里插入图片描述

往后继续也是一样:

在这里插入图片描述

Flink中窗口并不是静态准备好的,而是动态创建——当有落在这个窗口区间范围的数据达到时,才创建对应的窗口

另外,这里我们认为到达窗口结束时间时,窗口就触发计算并关闭,事实上“触发计算”和“窗口关闭”两个行为也可以分开。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1128874.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Flask 上传文件,requests通过接口上传文件

这是一个使用 Flask 框架实现文件上传功能的示例代码。该代码定义了两个路由&#xff1a; /upload&#xff1a;处理文件上传请求。在该路由中&#xff0c;我们首先从请求中获取上传的文件&#xff0c;然后将文件保存到本地磁盘上&#xff0c;并返回一个字符串表示上传成功。 /…

Python机器学习17——Xgboost和Lightgbm结合分位数回归(机器学习与传统统计学结合)

最近XGboost支持分位数回归了&#xff0c;我看了一下&#xff0c;就做了个小的代码案例。毕竟学术市场上做这种新颖的机器学习和传统统计学结合的方法还是不多&#xff0c;算的上创新&#xff0c;找个好数据集可以发论文。 代码实现 导入包 import numpy as np import pandas…

【单例模式】饿汉式,懒汉式?JAVA如何实现单例?线程安全吗?

个人简介&#xff1a;Java领域新星创作者&#xff1b;阿里云技术博主、星级博主、专家博主&#xff1b;正在Java学习的路上摸爬滚打&#xff0c;记录学习的过程~ 个人主页&#xff1a;.29.的博客 学习社区&#xff1a;进去逛一逛~ 单例设计模式 Java单例设计模式 Java单例设计模…

微信消息弹窗升级优化了,在微信打开时也能收到新消息显示。

最近&#xff0c;微信又更新了。微信对消息弹窗进行了升级优化&#xff0c;在微信打开时也能收到新消息显示。 点击「我」-「设置」-「消息通知」&#xff0c;可以看到新增了「横幅显示内容」选项。 有3种内容显示形式&#xff0c;分别为&#xff1a;仅显示你收到1条消息&#…

『 基础算法题解 』之双指针(上)

双指针 文章目录 双指针移动零题目解析算法原理代码拓展 复写零题目解析算法原理代码 快乐数题目解析算法解析拓展 代码 盛最多水的容器题目解析算法解析代码 有效的三角形个数题目解析算法原理代码 移动零 题目解析 【题目链接】 算法原理 该种题目可以归为一类题数组分块\…

想要精通算法和SQL的成长之路 - 最小高度树

想要精通算法和SQL的成长之路 - 最小高度树 前言一. 最小高度树1.1 邻接表的构建1.2 入度为1的先入队1.3 BFS遍历 前言 想要精通算法和SQL的成长之路 - 系列导航 一. 最小高度树 原题链接 从题目的含义中我们可以发现&#xff1a; 题目的树是一颗多叉树。叶子节点的度为1&a…

你的支付环境是否安全?

1、平台支付逻辑全流程分析分析 2、平台支付漏洞如何利用&#xff1f;买东西还送钱&#xff1f; 3、BURP抓包分析修改支付金额&#xff0c;伪造交易状态&#xff1f; 4、修改购物车参数实现底价购买商品 5、SRC、CTF、HW项目月入10W副业之路 6、如何构建最适合自己的网安学习路…

【项目经理】目标管理工具

目标管理工具 1. WBS 任务分解法&#x1f44a;原则方法标准 2. 6W2H法WhatwhyWhowhen⏲️WhereWhichHowHow much 3. SWOT分析法strengths-优势Weaknesses-劣势Opportunities-机会Threats-威胁 4. 二八原则法巴列特定律准则例子 5. SMART原则SpecificMeasurableAttainableReleva…

处于十字路口的CIO:继续进化还是走进死胡同

2023年初Forrester研究给出的一个坏消息表明&#xff0c;有很多CIO尚未准备好满足这些新的需求。大多数CIO&#xff08;58%&#xff09;仍处于Forrester所说的传统IT领导模式&#xff1b;有37%的CIO被认为是“现代的”&#xff0c;但只有6%的CIO是“适合未来的”&#xff0c;具…

YOLOv8优化:独家创新(SC_C_Detect)检测头结构创新,实现涨点 | 检测头新颖创新系列

💡💡💡本文独家改进:独家创新(SC_C_Detect)检测头结构创新,适合科研创新度十足,强烈推荐 SC_C_Detect | 亲测在多个数据集能够实现大幅涨点 💡💡💡Yolov8魔术师,独家首发创新(原创),适用于Yolov5、Yolov7、Yolov8等各个Yolo系列,专栏文章提供每一步步…

面试了上百位性能测试后,我发现了一个令人不安的事实

在企业中负责技术招聘的同学&#xff0c;肯定都有一个苦恼&#xff0c;那就是招一个合适的测试太难了&#xff01;若要问起招哪种类型的测试最难时&#xff0c;相信很多人都会说出“性能测试”这个答案。 每当发布一个性能测试岗位&#xff0c;不一会就能收到上百份简历&#x…

开发者版 ONLYOFFICE 文档 7.5:API 和文档生成器更新

随着版本 7.5 中新功能的发布&#xff0c;我们更新了编辑器、文档生成器、插件和桌面应用程序的 API。阅读本文查看所有详细信息。 用于处理表单的 API 隐藏/显示提交表单按钮&#xff1a;使用 editorConfig.customization.submitForm 参数&#xff0c;可以定义 OFORM 文件的顶…

【CV】图像分割详解!

图像分割是计算机视觉研究中的一个经典难题&#xff0c;已经成为图像理解领域关注的一个热点&#xff0c;图像分割是图像分析的第一步&#xff0c;是计算机视觉的基础&#xff0c;是图像理解的重要组成部分&#xff0c;同时也是图像处理中最困难的问题之一。所谓图像分割是指根…

【量化交易笔记】12.海龟交易策略

引言 海龟交易法则是一种著名的趋势跟踪交易策略&#xff0c;适用于中长线投资者。 海龟交易策略&#xff08;Turtle Trading&#xff09;起源于美国&#xff0c;由著名的交易员理查德丹尼斯&#xff08;Richard Dennis&#xff09;创立。这种交易策略属于趋势跟踪策略&#…

Quirks(怪癖)模式是什么?它和 Standards(标准)模式有什么区别?

目录 前言: 用法: 代码: Quirks模式示例: Standards模式示例: 理解: Quirks模式&#xff1a; Standards模式&#xff1a; 高质量讨论: 前言: "Quirks模式"和"Standards模式"是与HTML文档渲染模式相关的两种模式。它们影响着浏览器如何解释和渲染HT…

华夏版-超功能记事本 Ⅲ 8.8易语言源码

华夏版-超功能记事本 Ⅲ 8.8易语言源码 下载地址&#xff1a;https://user.qzone.qq.com/512526231

VisualStudio[WPF/.NET]基于CommunityToolkit.Mvvm架构开发

一、创建 "WPF应用程序" 新项目 项目模板选择如下&#xff1a; 暂时随机填一个目标框架&#xff0c;待会改&#xff1a; 二、修改“目标框架” 双击“解决方案资源管理器”中<项目>CU-APP, 打开<项目工程文件>CU-APP.csproj, 修改目标框架TargetFramew…

windows开机自启动和忘记密码-备忘

windows开机自启动和忘记密码-备忘 文章目录 windows开机自启动和忘记密码-备忘1.自启动网址定时任务方式 2.忘记windows用户密码 1.自启动 网址 参考博文&#xff1a;https://blog.csdn.net/wwzmvp/article/details/113656544&#xff0c;感谢博主。 定时任务方式 如图&#…

uniapp如何跳转系统授权管理页?

如何跳转系统授权管理页&#xff1f; 跳转APP应用授权设置页面 文章目录 如何跳转系统授权管理页&#xff1f;效果图打开系统App的权限设置界面 效果图 例&#xff1a;Android 打开系统App的权限设置界面 App端&#xff1a;打开系统App的权限设置界面微信小程序&#xff1a;打开…

20231024后端研发面经整理

1.如何在单链表O(1)删除节点&#xff1f; 狸猫换太子 2.redis中的key如何找到对应的内存位置&#xff1f; 哈希碰撞的话用链表存 3.线性探测哈希法的插入&#xff0c;查找和删除 插入&#xff1a;一个个挨着后面找&#xff0c;知道有空位 查找&#xff1a;一个个挨着后面找…