Flink系列之Time和WaterMark】的更多相关文章

当数据进入Flink的时候,数据需要带入相应的时间,根据相应的时间进行处理. 让咱们想象一个场景,有一个队列,分别带着指定的时间,那么处理的时候,需要根据相应的时间进行处理,比如:统计最近五分钟的访问量,那么就需要知道数据到来的时间.五分钟以内的数据将会被计入,超过五分钟的将会计入下一个计算窗口. 那么Flink的Time分为三种: ProcessingTime : 处理时间,即算子处理数据的机器产生的时间,数据的流程一般是Source -> Transform (Operator,即算子) -…
Apache Flink is a framework and distributed processing engine for stateful computations over unbounded and bounded data streams. Apache Flink是一个分布式.有状态的流计算引擎. 下面将正式开启Flink系列的学习笔记与总结.(https://flink.apache.org/).此篇是准备篇,主要介绍流处理相关的基础概念.别小看这些理论,对后续的学习与理解很…
本文仅是自己看书.学习过程中的个人总结,刚接触流式,视野面比较窄,不喜勿喷,欢迎评论交流. 1.为什么是流式? 为什么是流式而不是流式系统这样的词语?流式系统在我的印象中是相对批处理系统而言的,用来处理流数据,实现数据处理功能的一个系统,而流式一词提醒我要以数据产生的方式去看待数据和以及处理过程,即在现实生活中,数据是以流的形式不断产生的,处理的过程应贴近数据产生的方式. 2.流与批 在处理数据时,对数据而言有:无界和有界之分.无界可以理解为不知道数据产生的停止时间,在数学上可以用前闭后开( […
一FlinkTime类型 有3类时间,分别是数据本身的产生时间.进入Flink系统的时间和被处理的时间,在Flink系统中的数据可以有三种时间属性: Event Time 是每条数据在其生产设备上发生的时间.这段时间通常嵌入在记录数据中,然后进入Flink,可以从记录中提取事件的时间戳:Event Time即使在数据发生乱序,延迟或者从备份或持久性日志中重新获取数据的情况下,也能提供正确的结果.这个时间是最有价值的,和挂在任何电脑/操作系统的时钟时间无关. Processing Time 是指执…
package com.chenxiang.flink.demo; import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; import java.util.Scanner; /** * @author 闪电侠 */ public class IOServer { public static void main(String[] args) throws Exception { Serve…
随着Flink 1.10的发布,对SQL的支持也非常强大.Flink 还提供了 MySql, Hive,ES, Kafka等连接器Connector,所以使用起来非常方便. 接下来咱们针对构建流式SQL应用文章的梗概如下: 1. 搭建流式SQL应用所需要的环境准备. 2. 构建一个按每小时进行统计购买量的应用. 3. 构建每天以10分钟的粒度进行统计应用. 4. 构建按分类进行排行,取出想要的结果应用. 1. 搭建流式应用所需要的环境准备 Kafka,用于将数据写入到Kafka中,然后Flink…
一.Flink中的window 1,window简述  window 是一种切割无限数据为有限块进行处理的手段.Window 是无限数据流处理的核心,Window 将一个无限的 stream 拆分成有限大小的”buckets”桶,我们可以在这些桶上做计算操作. 2,window类型 window可分为CountWindow和TimeWindow两类:CountWindow:按照指定的数据条数生成一个 Window,与时间无关:TimeWindow:按照时间生成 Window. a)滚动窗口 将数…
一.设计思想及介绍 基本思想:“一切数据都是流,批是流的特例” 1.Micro Batching 模式 在Micro-Batching模式的架构实现上就有一个自然流数据流入系统进行攒批的过程,这在一定程度上就增加了延时.具体如下示意图: 2.Native Streaming 模式 Native Streaming 计算模式每条数据的到来都进行计算,这种计算模式显得更自然,并且延时性能达到更低.具体如下示意图: 很明显Native Streaming模式占据了流计算领域 "低延时" 的核…
Flink不同于其他实时计算的框架之处是它可以提供针对不同的状态进行编程和计算.本篇文章的主要思路如下,大家可以选择性阅读. 1. Flink的状态分类及不同点. 2. Flink针对不同的状态进行编程. 3. 检查点机制和配置. 4. 状态的存储.  Flilnk的状态分类及不同点    Flink有两种不同的状态分类,一种是Keyed State(键状态),一种是Operator State(算子状态). Keyed State 主要是针对KeyedStream中使用,当使用keyBy方法的…
本文摘自书籍<Flink基础教程> 一.一致性的三种级别 当在分布式系统中引入状态时,自然也引入了一致性问题.一致性实际上是“正确性级别”的另一种说法,即在成功处理故障并恢复之后得到的结果,与没有发生任何故障时得到的结果相比.在流处理中,一致性分为 3 个级别. at-most-once:数据最多被处理一次.这其实是没有正确性保障的委婉说法——故障发生之后,计数结果可能丢失. at-least-once:数据最少被处理一次.这表示计数结果可能大于正确值,但绝不会小于正确值.也就是说,计数程序在…