AI 术语表 · 基础 · 数据工程
流处理
流处理(Stream Processing)是一种在数据产生的每一刻持续接收数据、立即计算并输出结果的处理方式。它与先把数据积攒起来、之后再一次性处理的批处理相对。
通俗解释 这就像在回转寿司店里,每当盘子沿着传送带转过来就立刻拿来吃。而批处理则是把菜一次性端来摆好桌之后再吃。
工作原理
点击、支付、传感器数值、日志等事件一旦产生,就会进入消息代理(将事件排队并传递的系统)。流处理引擎持续读取这些数据流,立即执行过滤、转换以及求和、平均等计算。为了对没有尽头的数据流进行计算,常用的方法是设定“最近几分钟”这样的时间区间(窗口),在区间内进行聚合。计算结果会被直接发送到仪表盘、告警、数据库或其他服务。
为什么重要
对于欺诈交易检测、实时推荐、设备异常检测这类晚几秒意义就会降低的任务,它必不可少。在 AI 服务中,它也被用来把用户的最新行为立即转为特征输入模型,或实时监控 LLM 的响应日志。接收通过 CDC 流出的数据库变更事件并即时更新其他系统,也是流处理的典型用途。其核心在于把对数据的处理从“积攒之后再看”变为“在流动中查看”。
注意事项
事件因网络延迟等原因迟到或顺序颠倒的情况很常见,因此需要事先决定如何处理迟到的数据。还需要设计状态保存和恢复机制,确保即使发生故障也不会把同一事件计算两次或遗漏。由于系统必须始终运行,其运维负担和成本通常高于批处理。因此,常见做法是采用混合架构:只有确实需要实时性的部分用流处理,其余部分用批处理。
处理速度有多快
← 积攒后一次性处理产生即处理 →
123
- 夜间批处理
- 短周期批处理
- 流处理
示例
每发生一笔支付,银行卡公司就把事件发送到流处理引擎,立即计算短时间内同一张卡是否在陌生地区集中发生支付。一旦发现异常模式,就结合异常检测模型的评分暂缓该笔支付,并向客户发送提醒。同样的数据也会另行存储,在夜间通过批处理生成月度报告。