跳转到内容

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(关键运营告警)
维度 Batch(批量) Streaming(流式)
架构复杂度 较低 较高
延迟 分钟到小时 秒级甚至更低
调试(Debugging) 相对容易 更复杂
成本 通常较低 通常较高
状态管理 简单 更复杂
运维要求 较低 较高

应该选择:

满足业务 SLA(Service Level Agreement,服务等级协议)的最简单方案。

而不是:

延迟最低的方案。