Flink菜鸟教程(二)——时间概念
欢迎关注公众号——《数据三分钟》
一线大厂的师兄师姐结合自己的工作实践,将数据知识浅显道来,每天三分钟,助你成为数据达人。还有面试指导和内推机会。
上一节说到,实时计算中的数据可以看成无界流(unbounded stream),没有确切的结束时间,就像水流一样——逝者如斯夫,不舍昼夜。这也是实时数据区别于离线数据的地方,离线数据是有界的,有确定的开始时间和结束时间,因此所有的离线计算都是基于确定的有限数据展开的。
一、实时计算中时间的重要性
离线计算模式下,计算引擎摄入全量的需要计算的有界数据,按照确定的维度进行聚合,所有的计算过程都是确定的。但是在实时计算中却截然不同,首先实时计算是持续不断进行的,由于网络波动等情况不可避免,数据最终到达算子的时间和数据真实产生的时间并不一致,那么flink引擎以什么为计算的基准呢?又怎么去触发计算呢?这里就不得不提到窗口机制了,它是经典的无界数据的分组计算方式。流式计算中的数据是一条一条源源不断产生的记录,每一条记录都会有产生的时间、进入Flink引擎的时间和到达算子的时间,这些时间分别对应Event time、Ingestion time、Processing time,Flink就是按照这些时间对数据进行分组和计算的。
二、事件时间(Event time)
事件时间是记录数据真实产生时候的时间,它是每一条数据在物理世界中的先后顺序,也是计算中首选的时间基准!但是选用事件时间也不得不面临一些问题:首先,事件时间是数据产生时候的时间,并非被Flink计算时候的时间,也就是说,数据在被计算的时候一定会不可避免地发生错乱,我们如何即保有数据最真实的产生时间,有能够兼容数据在传输过程中的乱序问题,这就可以采用watermark机制(后续文章会详细写到)。
三、处理时间(Processing time)
处理时间是数据进入Flink算子的时间,也就是计算节点机器的本地时间,这种时间可以带来最好的性能和最低的延迟。但是,这样的计算也最不具准确性,当我们回跑数据时,难以保证数据的一致性。
四、摄入时间(Ingestion time)
摄入时间是数据进入Flink的时间,数据进入的时候会打上系统时间戳。摄入时间从发生的时间上看,处于事件时间和处理时间之间,它的实现成本也处在事件时间和处理时间之间。摄入时间可以提供比处理时间更高的确定性,因为数据进入Flink后它的时间就确定好了,在后续的计算中,可以有效地应对由于多并发或数据在节点间shuffle带来的乱序问题。
但是在实际应用中,事件时间和处理时间用得最多,且Flink SQL目前仅支持事件时间和处理时间。
Flink菜鸟教程(二)——时间概念相关推荐
- Flink菜鸟教程(一)——从入门到开发
欢迎关注公众号--<数据三分钟> 一线大厂的师兄师姐结合自己的工作实践,将数据知识浅显道来,每天三分钟,助你成为数据达人.还有面试指导和内推机会. 从这一期开始,将分享一个新的系列--讲讲 ...
- nginx菜鸟教程二
--查看ngix是否在运行 [root@localhost sbin]# ps aux|grep nginx root 953 0.0 0.0 3492 516 ? ...
- Flutter的菜鸟教程二十五:Flutter字体
本文学习在程序中使用自定义字体 https://fonts.google.com/?selection.family=Hanalei+Fill (有很多字体供选择)需翻墙,这里我们随便下载了一下用来演 ...
- WebSocket菜鸟教程二
websocket服务器,多窗口显示数据案例 //注意事项//1.因为WebSocket存在一段时间后自动断开链接的问题,故采用每次读写操作都重新链接的方式://2.服务端总链接数量有限,因此每次重新 ...
- Flutter的菜鸟教程
Flutter的菜鸟教程一:第一个Flutter应用 Flutter的菜鸟教程二:最简单的MaterialApp Flutter的菜鸟教程三:Row/Column布局 Flutter的菜鸟教程四:Li ...
- python菜鸟基础教程-终于懂得python入门菜鸟教程
Python语言是一种典型的脚本语言,简洁,语法约束少,接近人类语言.有丰富的数据结构,例如列表.字典.集合等.具有可移植性,支持面向过程和面向对象编程,并且开源.以下是小编为你整理的python入门 ...
- python菜鸟教程shell_[python小白]菜鸟教程---
pycharm竟然是idea大家族里面的,汉化之后不知道比my.eclipse高明到哪里去了.https://blog.csdn.net/pingfangx/article/details/78826 ...
- 菜鸟教程 之 JavaScript 教程
From:菜鸟教程 JavaScript:https://www.runoob.com/ W3School JavaScript 教程:http://www.w3school.com.cn/js/in ...
- 菜鸟教程android布局,Android菜鸟级教程
本文列举了一些网站的搜索引擎优化菜鸟级别的教程. 网站内容是搜索引擎优化的第一要素 1. 大量的原创内容能够... 一个***的基本技能 1.***的精神态度是很重要的,但技术则更是重要.***的态度 ...
最新文章
- DS之信息挖掘:利用pandas库统计某一列col中各个值出现的次数(降序输出)
- 虚拟机和java虚拟机
- HMTL label标签
- KerasSeq2seqGeneration:基于seq2seq模型的文本生成任务项目
- 【2017年第1期】手机基站定位数据可视分析
- HuggingFace学习2:使用Bert模型训练文本分类任务
- Servlet 服务器 HTTP 响应
- Python多线程编程---(1)threading 模块 Thread 类
- springboot 打印slf4_SpringBoot打印请求体与响应体
- 计算机二级C语言考试模拟系统+真题题库软件下载
- html下拉菜单右侧显示,css如何设置下拉菜单?
- hihoCoder 1498 Diligent Robots
- 【饭谈】领导叫你搞个自动化平台,你要怎么入手?不会上来就开始新建项目写代码吧?
- 电脑网页无法解析服务器dns,电脑无法解析服务器dns地址怎么办
- 数字模型制作规范(转自Unity3D群)
- ROS机器人Diego 1#制作(十四)机械臂的控制---arduino驱动
- PostgreSQL数据库动态共享内存管理器——dynamic shared memory segment
- 利用JACK在Windows下PC之间传递声音
- 人为何有指纹【转自生物谷】
- WebRTC基础实践 - 5.通过RTCPeerConnection传输流媒体视频