Flink基础知识的简单理解

Flink基础知识整理

Flink介绍

Apache Flink is a framework and distributed processing engine for stateful computations over unbounded and bounded data streams.
Apache Flink 是一个框架和分布式处理引擎,用于对无界和有界数据流进行状态计算。

流处理介绍

事务处理(OLTP)
Flink基础知识的简单理解_第1张图片
OLTP:在线事务处理,所有事件都存储到MySQL里。

分析处理(Hive) (MySQL -> Sqoop -> Hive)
将数据从业务数据库复制到数仓,再进行分析和查询
Flink基础知识的简单理解_第2张图片
将MySQL里的数据进行ETL,把它同步到数仓中,然后做报表分析或者做一些其他的查询。比如用Sqoop把MySQL的数据同步到Hive中,所有都在Hive中进行查询。

有状态的流式处理
Flink基础知识的简单理解_第3张图片
流处理:当橙色圆圈来了以后经过业务模式处理可以直接向下游发送。每来一次事件就触发一次流处理的计算逻辑,对比于SparkStreaming而言是要经过至少攒500ms触发一次微批处理。

有状态流处理:保存一段时间的数据来进行计算,比如橙色圆点经过业务模式里的Local State还要定期经过检查点并且来一条数据+1 类似累加器 。

Flink主要特点

  1. 事件驱动:来一条事件进行一次处理;
  2. 基于流的世界观:在 Flink 的世界观中,⼀切都是由流组成的,离线数据是有界的流;实时数据是⼀个没有界限的流:这就是所谓的有界流和⽆界流;
  3. Flink的分层API: 越顶层越抽象,表达含义越简明,⽤越⽅便,越底层越具体,表达能⼒越丰富,使⽤越灵活;
  4. ⽀持事件时间(event-time)和处理时间(processing-time)语义;
  5. 精确⼀次(exactly-once)的状态⼀致性保证;
  6. 低延迟,每秒处理数百万个事件,毫秒级延迟(实际上就是没有延迟);
  7. 与众多常⽤存储系统的连接(ES,HBase,MySQL,Redis…);
  8. ⾼可⽤(zookeeper),动态扩展,实现7*24⼩时全天候运⾏。

事件时间:事件真实发⽣的时间,要求数据中包含时间戳
处理时间:事件到达节点时当前节点的机器时间

你可能感兴趣的:(笔记)