本文最后更新于 9 个月前,文中所描述的信息可能已发生改变。加载中... 浏览
大数据处理可以先分成两条主线:离线计算和实时计算。 它们不是谁替代谁,而是解决的问题不一样。
1. 离线计算是什么
离线计算通常处理已经沉淀下来的历史数据。
比如:
- 昨天的销售额。
- 上周用户留存。
- 上个月各渠道转化。
- 每日数据仓库任务。
它更关注吞吐量和结果完整性,不一定要求秒级返回。
典型特点:
txt
数据量大
周期性处理
延迟可以接受
结果用于报表、分析、建模常见工具包括 Hive、Spark、MapReduce 等。
2. 实时计算是什么
实时计算处理的是正在不断产生的数据流。
比如:
- 实时监控订单量。
- 实时风控。
- 实时推荐。
- 实时告警。
- 实时大屏。
它更关注低延迟,希望数据刚产生就能被处理。
典型特点:
txt
数据持续到来
延迟要求低
处理逻辑长期运行
结果用于监控、告警、在线业务常见工具包括 Flink、Spark Streaming、Kafka Streams 等。
3. 二者怎么选择
可以用一个问题判断:
这个结果需要马上知道吗?
如果不需要,离线计算通常更简单、成本更低。
如果需要秒级或分钟级反馈,就要考虑实时计算。
比如日报可以离线算;支付风控就不能等第二天。
4. Lambda 和 Kappa
大数据架构里常听到 Lambda 和 Kappa。
Lambda 架构通常同时保留离线链路和实时链路:
txt
离线保证准确
实时保证速度Kappa 架构更强调用一套流处理链路处理数据。
初学阶段不用急着深入,只要知道它们都是在平衡准确性、实时性和复杂度。
5. 小结
离线计算和实时计算的区别可以这样记:
- 离线计算:处理历史数据,追求稳定和完整。
- 实时计算:处理数据流,追求低延迟。
真正做项目时,要根据业务需求选择,而不是看到“实时”就觉得更高级。
留言板