flink批处理-有界流和无界流
在学习flink如何实现批处理之前,需要先了解什么是有界流和无界流。
重点:理解有界流无界流的定义
Flink中有界流(Bounded Stream)和无界流(Unbounded Stream)是数据处理的两种核心抽象,主要区别如下:
一、数据特性
-
边界定义
- 有界流:具有明确的开始和结束点(如静态文件、数据库表)
- 无界流:只有开始点,数据持续产生无终止(如Kafka消息流、IoT传感器数据)
-
数据完整性
- 有界流支持全量数据处理前排序,无界流需依赖事件时间或水印机制保证顺序
二、处理方式
维度 | 有界流 | 无界流 |
---|---|---|
执行模式 | 批处理(Batch) | 流处理(Streaming) |
窗口机制 | 全局窗口(可省略) | 需显式定义时间/计数窗口 |
触发策略 | 一次性处理 | 持续触发(如时间推进) |
三、技术实现差异
-
状态管理
无界流需持续维护状态(如聚合中间结果),而有