作者:无内功不5功 | 来源:互联网 | 2023-02-01 13:43
Flink基础知识整理
Flink介绍
Apache Flink is a framework and distributed processing engine for stateful computations over unbounded and bounded data streams.
Apache Flink 是一个框架和分布式处理引擎,用于对***和有界数据流进行状态计算。
流处理介绍
事务处理(OLTP)
OLTP:在线事务处理,所有事件都存储到MySQL里。
分析处理(Hive) (MySQL -> Sqoop -> Hive)
将数据从业务数据库复制到数仓,再进行分析和查询
将MySQL里的数据进行ETL,把它同步到数仓中,然后做报表分析或者做一些其他的查询。比如用Sqoop把MySQL的数据同步到Hive中,所有都在Hive中进行查询。
有状态的流式处理
流处理:当橙色圆圈来了以后经过业务模式处理可以直接向下游发送。每来一次事件就触发一次流处理的计算逻辑,对比于SparkStreaming而言是要经过至少攒500ms触发一次微批处理。
有状态流处理:保存一段时间的数据来进行计算,比如橙色圆点经过业务模式里的Local State还要定期经过检查点并且来一条数据+1 类似累加器 。
Flink主要特点
-
事件驱动:来一条事件进行一次处理;
-
基于流的世界观:在 Flink 的世界观中,⼀切都是由流组成的,离线数据是有界的流;实时数据是⼀个没有界限的流:这就是所谓的有界流和⽆界流;
-
Flink的分层API: 越顶层越抽象,表达含义越简明,⽤越⽅便,越底层越具体,表达能⼒越丰富,使⽤越灵活;
- ⽀持事件时间(event-time)和处理时间(processing-time)语义;
- 精确⼀次(exactly-once)的状态⼀致性保证;
- 低延迟,每秒处理数百万个事件,毫秒级延迟(实际上就是没有延迟);
- 与众多常⽤存储系统的连接(ES,HBase,MySQL,Redis…);
- ⾼可⽤(zookeeper),动态扩展,实现7*24⼩时全天候运⾏。
事件时间:事件真实发⽣的时间,要求数据中包含时间戳
处理时间:事件到达节点时当前节点的机器时间