| 有界 Bounded | 起止明确,如一天的日志文件、一个分区 |
|---|---|
| 无界 Unbounded | 持续追加、无终点,如 MQ 事件流 |
| 同一逻辑 | 同一段聚合 SQL 可对应跑在有界表和无界流上 |
批处理可以对整个数据集做全局排序、全局聚合;流处理只能基于窗口或增量算子近似实现,因为永远等不到数据全部到齐。
Flink SQL:同一 SUM 聚合的两种数据源
Flink SQL:同一 SUM 聚合的两种数据源
-- 有界:读文件批模式
SELECT region, SUM(amount) FROM orders_file GROUP BY region;
-- 无界:读 Kafka 流,按 1 分钟滚动窗口
SELECT TUMBLE_START(ts, INTERVAL '1' MINUTE) AS w,
region, SUM(amount)
FROM orders_kafka
GROUP BY TUMBLE(ts, INTERVAL '1' MINUTE), region;判断任务属于批还是流,先看输入是否有界;有界任务用调度器跑,无界任务用常驻作业加监控。