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 实时因子计算的技术架构

下图展示了实时因子计算从数据接入到在线服务的完整链路:

实时因子计算技术架构 数据源层 Kafka / Pulsar / 日志 流计算引擎 Flink / 有状态处理 特征存储 Redis / HBase / TiKV 事件流 因子写入 在线服务层 模型推理 / 规则引擎 特征查询 管理 & 监控 因子注册 / 延迟告警 配置下发 📌 架构要点 • 数据源层:统一接入 Kafka,支持 JSON/Protobuf/AVRO 多种序列化格式 • 流计算引擎:Flink 负责窗口聚合、状态管理、维表关联,输出因子键值对 • 特征存储:支持高并发读取(10万+ QPS),TTL 策略防止状态无限膨胀 • 在线服务:通过 gRPC/HTTP 获取实时因子,延迟 P99 < 10ms

1.4 课程目标

完成本课程后,你将具备以下能力:

  1. 独立设计实时因子计算架构:从数据接入、窗口策略、状态后端到特征存储的完整链路
  2. 熟练使用 Flink DataStream / SQL API:实现滑动窗口、Session 窗口、CEP 等复杂因子逻辑
  3. 掌握特征服务搭建:使用 Redis + gRPC 构建高可用、低延迟的在线特征获取层
  4. 解决生产级难题:状态一致性、背压调优、数据倾斜、多流 Join 与维表热更新
  5. 落地实时特征平台:因子注册、版本管理、灰度发布与监控告警体系

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 章):生产实战——性能调优、监控告警与持续交付

每章均包含:核心概念讲解、可运行代码示例、架构图/流程图、常见踩坑点与课后练习。