Decision Guide:Batch vs Streaming(批量 vs 流式)
知识库位置:
FDE Knowledge Base/03 Engineering/Decision Guides/Batch-vs-Streaming.md基础概念见 Batch vs Streaming(批量 vs 流式处理)。
核心问题不是技术,而是:
业务允许的数据延迟是多少?
Start With Latency Requirement(从延迟要求开始)
Section titled “Start With Latency Requirement(从延迟要求开始)”先问:
24 hours?(24 小时可以吗)1 hour?(1 小时可以吗)5 minutes?(5 分钟可以吗)30 seconds?(30 秒可以吗)1 second?(必须 1 秒内吗)很多所谓「实时需求」实际上并不真正需要 Streaming(流式处理)。
Prefer Batch When(倾向批量的场景)
Section titled “Prefer Batch When(倾向批量的场景)”- 每小时或每天更新即可
- Reporting(报表)
- BI(Business Intelligence,商业智能)
- 大规模离线计算
- 财务数据处理
- Training Dataset Preparation(训练数据集准备)
Prefer Streaming When(倾向流式的场景)
Section titled “Prefer Streaming When(倾向流式的场景)”- Fraud Detection(欺诈检测)
- Device Monitoring(设备监控)
- Live Notification(实时通知)
- Real-time Recommendation(实时推荐)
- Critical Operational Alert(关键运营告警)
Comparison(对比)
Section titled “Comparison(对比)”| 维度 | Batch(批量) | Streaming(流式) |
|---|---|---|
| 架构复杂度 | 较低 | 较高 |
| 延迟 | 分钟到小时 | 秒级甚至更低 |
| 调试(Debugging) | 相对容易 | 更复杂 |
| 成本 | 通常较低 | 通常较高 |
| 状态管理 | 简单 | 更复杂 |
| 运维要求 | 较低 | 较高 |
Decision Principle(决策原则)
Section titled “Decision Principle(决策原则)”应该选择:
满足业务 SLA(Service Level Agreement,服务等级协议)的最简单方案。
而不是:
延迟最低的方案。