Batch vs Streaming(批量 vs 流式处理)
知识库位置:
FDE Knowledge Base/03 Engineering/Data Engineering/Data Pipeline/Batch-vs-Streaming.md
这是 FDE 常见架构决策之一。
Batch(批量处理)
Section titled “Batch(批量处理)”批量处理:
Data(数据)↓Collect(收集)↓Process(处理)↓Output(输出)例如:
每天凌晨同步 CRM(Customer Relationship Management,客户关系管理系统)数据。
适合:
- Reporting(报表)
- Analytics(数据分析)
- Daily synchronization(每日同步)
- Large offline jobs(大型离线任务)
Streaming(流式处理)
Section titled “Streaming(流式处理)”事件发生后立即处理:
Event(事件)↓Stream(数据流)↓Consumer(消费者)↓Action(动作)适合:
- Fraud Detection(欺诈检测)
- Live Monitoring(实时监控)
- IoT(Internet of Things,物联网)
- Notifications(通知)
Core Decision(核心决策)
Section titled “Core Decision(核心决策)”不要先问:
Kafka(分布式事件流平台)还是某个 Streaming Framework(流式框架)?
应该先问:
业务需要多快?
例如:
24 hours?(24 小时可以吗)1 hour?(1 小时可以吗)5 minutes?(5 分钟可以吗)1 second?(必须 1 秒内吗)延迟要求越低,架构成本通常越高。