欢迎关注公众号——《数据三分钟》

一线大厂的师兄师姐结合自己的工作实践,将数据知识浅显道来,每天三分钟,助你成为数据达人。还有面试指导和内推机会。

上一节说到,实时计算中的数据可以看成无界流(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菜鸟教程(二)——时间概念相关推荐

  1. Flink菜鸟教程(一)——从入门到开发

    欢迎关注公众号--<数据三分钟> 一线大厂的师兄师姐结合自己的工作实践,将数据知识浅显道来,每天三分钟,助你成为数据达人.还有面试指导和内推机会. 从这一期开始,将分享一个新的系列--讲讲 ...

  2. nginx菜鸟教程二

    --查看ngix是否在运行 [root@localhost sbin]# ps aux|grep nginx root       953  0.0  0.0   3492   516 ?       ...

  3. Flutter的菜鸟教程二十五:Flutter字体

    本文学习在程序中使用自定义字体 https://fonts.google.com/?selection.family=Hanalei+Fill (有很多字体供选择)需翻墙,这里我们随便下载了一下用来演 ...

  4. WebSocket菜鸟教程二

    websocket服务器,多窗口显示数据案例 //注意事项//1.因为WebSocket存在一段时间后自动断开链接的问题,故采用每次读写操作都重新链接的方式://2.服务端总链接数量有限,因此每次重新 ...

  5. Flutter的菜鸟教程

    Flutter的菜鸟教程一:第一个Flutter应用 Flutter的菜鸟教程二:最简单的MaterialApp Flutter的菜鸟教程三:Row/Column布局 Flutter的菜鸟教程四:Li ...

  6. python菜鸟基础教程-终于懂得python入门菜鸟教程

    Python语言是一种典型的脚本语言,简洁,语法约束少,接近人类语言.有丰富的数据结构,例如列表.字典.集合等.具有可移植性,支持面向过程和面向对象编程,并且开源.以下是小编为你整理的python入门 ...

  7. python菜鸟教程shell_[python小白]菜鸟教程---

    pycharm竟然是idea大家族里面的,汉化之后不知道比my.eclipse高明到哪里去了.https://blog.csdn.net/pingfangx/article/details/78826 ...

  8. 菜鸟教程 之 JavaScript 教程

    From:菜鸟教程 JavaScript:https://www.runoob.com/ W3School JavaScript 教程:http://www.w3school.com.cn/js/in ...

  9. 菜鸟教程android布局,Android菜鸟级教程

    本文列举了一些网站的搜索引擎优化菜鸟级别的教程. 网站内容是搜索引擎优化的第一要素 1. 大量的原创内容能够... 一个***的基本技能 1.***的精神态度是很重要的,但技术则更是重要.***的态度 ...

最新文章

  1. DS之信息挖掘:利用pandas库统计某一列col中各个值出现的次数(降序输出)
  2. 虚拟机和java虚拟机
  3. HMTL label标签
  4. KerasSeq2seqGeneration:基于seq2seq模型的文本生成任务项目
  5. 【2017年第1期】手机基站定位数据可视分析
  6. HuggingFace学习2:使用Bert模型训练文本分类任务
  7. Servlet 服务器 HTTP 响应
  8. Python多线程编程---(1)threading 模块 Thread 类
  9. springboot 打印slf4_SpringBoot打印请求体与响应体
  10. 计算机二级C语言考试模拟系统+真题题库软件下载
  11. html下拉菜单右侧显示,css如何设置下拉菜单?
  12. hihoCoder 1498 Diligent Robots
  13. 【饭谈】领导叫你搞个自动化平台,你要怎么入手?不会上来就开始新建项目写代码吧?
  14. 电脑网页无法解析服务器dns,电脑无法解析服务器dns地址怎么办
  15. 数字模型制作规范(转自Unity3D群)
  16. ROS机器人Diego 1#制作(十四)机械臂的控制---arduino驱动
  17. PostgreSQL数据库动态共享内存管理器——dynamic shared memory segment
  18. 利用JACK在Windows下PC之间传递声音
  19. 人为何有指纹【转自生物谷】
  20. WebRTC基础实践 - 5.通过RTCPeerConnection传输流媒体视频

热门文章

  1. 云平台SLB详细介绍和实战演练
  2. 深入理解Android之Gradle
  3. mysql把集群改成单机_nacos单机迁移至集群
  4. Linux 网络文件共享服务详细介绍
  5. 《点燃我,温暖你》朱韵李峋爱心代码
  6. 每天实现一个小特效:百度新闻导航栏特效
  7. 基于tkinter库txt文件操作的Python界面化图书管理系统
  8. 如何进行团队建设以保持团队稳定?
  9. 「衡水中学语录分享」喜欢点波关注呗
  10. 2020大数据学习资料,全套源码无加密网盘下载