| 批处理 | 一次读取一段有界数据,跑完即结束 |
|---|---|
| 流处理 | 数据持续到达,作业常驻运行 |
| 折衷形态 | 微批(micro-batch)按小间隔切批 |
对比项
| 对比项 | 批处理 | 流处理 |
|---|---|---|
| 数据范围 | 有界(文件/分区) | 无界(持续事件流) |
| 延迟量级 | 分钟到小时 | 毫秒到秒(取决于链路) |
| 吞吐与成本 | 高吞吐、按需启停 | 常驻资源,空闲也占位 |
| 补数与重跑 | 改分区重跑即可 | 需要重置位点或从快照重放 |
| 典型引擎 | Spark、Hive、MapReduce | Flink、Kafka Streams、Structured Streaming |
Structured Streaming 最小示例
Structured Streaming 最小示例
spark.readStream.format('kafka') \
.option('subscribe', 'orders') \
.load() \
.writeStream.format('parquet') \
.option('checkpointLocation', '/ck/orders') \
.start('/warehouse/orders_stream')批流统一 SQL 已成趋势:Flink SQL 与 Spark SQL 都能跑批也能跑流,加工逻辑可尽量共用一份 SQL。