1. 课程导论:实时因子计算的定义、应用场景与课程目标
1.1 什么是实时因子计算?
实时因子计算(Real-Time Feature Computation)是指在数据产生的毫秒/秒级延迟内,对原始事件流进行聚合、变换、交叉与统计,生成可直接用于模型推理或业务决策的结构化特征(因子)的过程。它是流计算与特征工程的交叉领域,核心公式可概括为:
实时因子 = f(事件流, 状态, 时间窗口, 外部维表)
与传统离线特征工程相比,实时因子计算强调:
- 低延迟:事件产生到因子可用 < 1s(典型场景)
- 有状态:依赖 Flink 的 Keyed State 维护用户/设备粒度的累计值
- 事件时间语义:正确处理乱序、延迟与水位线
- 在线服务化:因子产出后直接写入特征存储(如 Redis、HBase),供模型实时调用
💡 关键区分:实时因子 ≠ 实时指标。指标通常用于监控(如 QPS、成功率),而因子直接作为机器学习模型的输入特征,对一致性、时效性和可回溯性要求更高。
1.2 核心应用场景
实时因子计算在以下三个领域已成为基础设施级能力:
| 领域 | 典型因子示例 | 延迟要求 | 计算特征 |
|---|---|---|---|
| 风控 | 过去 5 分钟登录失败次数、设备关联风险设备数、IP 异地登录距离 | < 500ms | 高吞吐、状态大、需回溯历史 |
| 推荐 | 用户最近 10 次点击的类目序列、实时 CTR、物品热度衰减分 | < 200ms | 高 QPS、长窗口、频繁更新 |
| 量化交易 | 过去 1 分钟买卖盘口深度差、订单簿斜率、波动率实时估计 | < 10ms | 微秒级精度、无状态或极短窗口 |
📊 行业数据:头部互联网公司的实时因子服务日均调用量超过 1000 亿次,因子数量从数百到数万不等,单个因子的计算延迟中位数控制在 50ms 以内。
1.3 实时因子计算的技术架构
下图展示了实时因子计算从数据接入到在线服务的完整链路:
1.4 课程目标
完成本课程后,你将具备以下能力:
- 独立设计实时因子计算架构:从数据接入、窗口策略、状态后端到特征存储的完整链路
- 熟练使用 Flink DataStream / SQL API:实现滑动窗口、Session 窗口、CEP 等复杂因子逻辑
- 掌握特征服务搭建:使用 Redis + gRPC 构建高可用、低延迟的在线特征获取层
- 解决生产级难题:状态一致性、背压调优、数据倾斜、多流 Join 与维表热更新
- 落地实时特征平台:因子注册、版本管理、灰度发布与监控告警体系
1.5 前置知识要求
| 知识领域 | 要求 | 建议学习资源 |
|---|---|---|
| Java / Scala 基础 | 熟悉 Lambda、泛型、集合操作 | 《Java 核心技术》第 7-12 章 |
| Flink 入门 | 了解 DataStream API、窗口、状态概念 | Flink 官方文档 Quickstart |
| Kafka 基础 | 理解 Topic、Partition、Consumer Group | 《Kafka 权威指南》第 1-4 章 |
| Redis 基础 | 掌握 String/Hash 数据结构、过期策略 | Redis 官方教程 |
| 机器学习基础 | 了解特征工程基本概念(非必须) | — |
⚠️ 重要提示:本课程不从头讲解 Flink 基础 API,建议在开始前至少完成 Flink 官方 "DataStream API Tutorial" 和 "Window & State" 章节的动手练习。课程中会提供完整的代码示例,但不会逐行解释基础语法。
1.6 课程内容概览
全课程共 30 章,分为四大模块:
- 模块一(第 1-5 章):实时因子计算基础与架构设计
- 模块二(第 6-15 章):Flink 流处理核心——窗口、状态、时间语义与容错
- 模块三(第 16-24 章):特征服务搭建——存储、API、缓存与高可用
- 模块四(第 25-30 章):生产实战——性能调优、监控告警与持续交付
每章均包含:核心概念讲解、可运行代码示例、架构图/流程图、常见踩坑点与课后练习。