跳到主内容
快讯直播
AI智模界
AI 词典

流处理 vs 批处理:数据一到就算,还是攒一批再算

一句话定义:批处理(Batch Processing)是把一段时间的数据攒成一批,到点一次性算完;流处理(Stream Processing)是数据一条条到达,边到边算。

打个生活化的比方

批处理像月底看信用卡账单:一个月里所有消费先记着,月底一起出汇总。流处理像每刷一笔,手机立刻弹一条通知——这笔钱刚花出去,结果就出来了。

两种方式没有高下,只有合不合适。账单你要的是“准”,通知你要的是“快”。

差别到底在哪

维度批处理流处理
延迟分钟到小时,甚至按天毫秒到秒
数据视角全量、有界增量、无界(不断到来)
成本可以错峰跑,机器闲时用需要 7×24 常驻,通常更贵
容错失败重跑整批,结果可复现要处理乱序、迟到数据、断点续跑,靠窗口(window)和检查点(checkpoint)
结果确定、可重算多为窗口内结果,或近似值

一句话概括取舍:批处理用“等”换准确和便宜,流处理用“贵”换即时。

AI 里的分工:离线训练 vs 实时特征

这两套东西在 AI 系统里是搭档,不是对手。

离线训练走批处理。推荐、风控、搜索排序的模型,通常拿几周甚至几个月的历史数据跑全量,几小时出一版完全可接受。批处理能反复重跑、结果可复现,这对调参和回溯问题很重要。

在线推理要流处理。用户刚点了什么、刚搜了什么,这类特征必须现算现用。比如“过去 5 分钟点击次数”“当前购物车金额”,如果等第二天批处理算出来,特征早就过期,模型等于拿旧地图导航。

这里有个容易踩的坑:训练-服务偏差(training-serving skew)。离线用批处理算特征、线上用流处理算特征,两边口径稍有不一致(比如时间窗口差一分钟、空值处理不同),模型线上表现就会莫名变差。所以特征平台通常要求同一份特征定义,两套引擎各算一遍,并做一致性校验。

工程上还有 Lambda 架构(离线层 + 加速层)和 Kappa 架构(全走流)的分野,近年“流批一体”的引擎也在减少两套代码的重复维护——具体支持程度以官方文档为准。

对普通职场人的意义

你每天的日报、月度经营分析、年终盘点,本质都是批处理;系统告警、支付风控拦截、外卖骑手位置更新,是流处理。

所以遇到“要不要上实时”的讨论,别先问技术栈,先问一句:这件事晚一小时知道,会不会误事? 会,就流;不会,攒一批算更省事也更省钱。

AI 生成本文由 AI 基于公开信息自动生成,仅供参考。