Filk概述
概念介绍
Apache Flink® --- Stateful Computations over Data Streams | Apache Flink

大致意思:Filk是一个
- 框架
- 分布式处引擎
- 支持有界和无界状态计算。
- 有界数据指的是有开始的标志也有结束的标志
- 这里的分布式强调的是不同的节点能进行不同的任务
- 状态计算指的是在进行计算的时候能保留计算的中间结果
离线数仓和实时数仓对比
| 离线数仓 | 实时数仓 | |
|---|---|---|
| 处理方式 | 批处理 | 流处理 |
| 数据稳定性 | 数据固定 | 数据变化 |
| 数据量 | 大 | 小 |
| 处理时间 | 长 | 短 |
| 划分依据 | T+1 | T |
T+1表示的是现在一个单位时间之前,这里的单位时间可以说一天也可以一年;
Flink特点
处理数据的目标:
- 低延迟
- 高吞吐:每毫秒处理百万个数据
- 准确性:提供了事件时间和处理时间
- 容错性:状态基本一致
- 可以连接到常用的外部系统:如Kfka,Hive,JDBC
- 高可用:从故障中快速恢复,借助于Yarn
Flink和SparkStreaming对比
Spark是一个微批次数据的框架(他有一个'攒'批操作)
| Flink | Streaming | |
|---|---|---|
| 计算模型 | 流计算 | 微批处理 |
| 时间语义 | 事件时间+处理时间 | 处理时间 |
| 窗口 | 多、灵活 | 少、不灵活 |
| 状态 | 有 | 没有 |
| 流式SQL | 有 | 没有 |
窗口
- SparkStreaming窗口:滚动窗口、滑动窗口(必须是采集周期的整数倍)
- FLink窗口:基于时间窗口,基于事件的窗口等;
Flink分层API
-
最高层语言:SQL
-
声明式领域专用语言:Table API
-
核心API:DataStream(无界数据)
DateSet(有界无界数据)
-
底层API:有状态流处理(基础数据操作map,flatMap)