跳转到内容

Batch vs Streaming(批量 vs 流式处理)

知识库位置:FDE Knowledge Base/03 Engineering/Data Engineering/Data Pipeline/Batch-vs-Streaming.md

这是 FDE 常见架构决策之一。

批量处理:

Data(数据)
↓
Collect(收集)
↓
Process(处理)
↓
Output(输出)

例如:

每天凌晨同步 CRM(Customer Relationship Management,客户关系管理系统)数据。

适合:

  • Reporting(报表)
  • Analytics(数据分析)
  • Daily synchronization(每日同步)
  • Large offline jobs(大型离线任务)

事件发生后立即处理:

Event(事件)
↓
Stream(数据流)
↓
Consumer(消费者)
↓
Action(动作)

适合:

  • Fraud Detection(欺诈检测)
  • Live Monitoring(实时监控)
  • IoT(Internet of Things,物联网)
  • Notifications(通知)

不要先问:

Kafka(分布式事件流平台)还是某个 Streaming Framework(流式框架)?

应该先问:

业务需要多快?

例如:

24 hours?(24 小时可以吗)
1 hour?(1 小时可以吗)
5 minutes?(5 分钟可以吗)
1 second?(必须 1 秒内吗)

延迟要求越低,架构成本通常越高。