Flink 入门简要笔记
文章目录
核心概念
-
流(
Streams
)流分为无限与有限,无限为
DataStream
,有限为DataSet
-
状态(
State
)状态是计算过程中的数据信息,在容错恢复和
Checkpoint
中有重要的作用,流计算在本质上是Incremental Processing
,因此需要不断查询保持状态;另外,为了确保Exactly-once
语义,需要数据能够写入到状态中;而持久化存储,能够保证在整个分布式系统运行失败或者挂掉的情况下做到Exactly-once
,这是状态的另外一个价值 -
时间(
Time
)时间分为
EventTime
,IngestionTime
,ProcessingTime
EventTime
事件发生的时间,是流本身事件的时间。如日志发生的时间IngestionTime
进入Flink
的时间ProcessingTime
Flink
执行算子运算的时间
-
API
API
主要有Table/SQL API
,DataStream API
,Function API
。DataStream API
总共有四类:-
第一类是对于单条记录的操作。比如筛除掉不符合要求的记录如
Filter
操作,或者将每条记录都做一个转换如Map
操作) -
第二类是对多条记录的操作。比如说统计一个小时内的订单总成交量,就需要将一个小时内的所有订单记录的成交量加到一起。为了支持这种类型的操作,就得通过
Window
将需要的记录关联到一起进行处理 -
第三类是对多个流进行操作并转换为单个流。例如,多个流可以通过
Union
、Join
或Connect
等操作合到一起。这些操作合并的逻辑不同,但是它们最终都会产生了一个新的统一的流,从而可以进行一些跨流的操作。 -
第四类
DataStream
还支持与合并对称的操作,即把一个流按一定规则拆分为多个流如Split
操作,每个流是之前流的一个子集,这样我们就可以对不同的流作不同的处理
-
Flink
的整体处理流程
- 获取执行环境
- 添加数据源
- 对数据流执行运算
- 输出/存储/继续下一个流处理等
Example
|
|
文章作者 UnknowName
上次更新 2021-04-09