1. 实时特征API概述

1.1 实时特征的定义

实时特征(Real-Time Feature)是指在数据产生后毫秒级或秒级内完成计算、更新并可供模型推理使用的特征值。与离线特征依赖批量调度(如 T+1 或小时级)不同,实时特征要求数据从产生到特征就绪的端到端延迟通常低于 500ms,且具备高可用、低抖动、可回放等工程特性。

核心指标:实时特征通常以 P99 延迟 ≤200ms、吞吐量 ≥10万 QPS、可用性 ≥99.95% 作为基准线。低于此标准时,特征时效性将无法支撑在线推理场景。

1.2 API在特征工程中的作用

特征 API 是连接特征生产与模型推理的标准化接口层,承担以下关键职责:

  • 特征抽象:将底层存储(Redis、HBase、本地缓存)与计算逻辑封装为统一 RESTful/gRPC 接口,屏蔽异构数据源差异。
  • 实时计算:在 API 层完成窗口聚合、特征变换、ID 映射等轻量计算,避免模型侧重复实现。
  • 流量治理:提供限流、熔断、降级、超时控制等能力,保障高并发下特征服务的稳定性。
  • 版本管理:支持特征 Schema 演进、AB 实验分流、灰度发布,降低特征变更风险。
架构定位:特征 API 位于在线存储层与推理引擎之间,是实时特征系统的“数据总线”。其设计质量直接影响模型推理延迟与特征一致性。

1.3 实时特征与离线特征的区别

实时特征与离线特征在时效性、计算模式、存储选型、一致性要求等方面存在本质差异。下表从 8 个维度进行对比:

对比维度 实时特征 离线特征
时效性 毫秒~秒级 小时~天级
计算引擎 Flink / Spark Streaming / 自研 C++ 服务 Hive / Spark Batch / MapReduce
存储介质 Redis / Memcached / 本地内存 HDFS / Hive 表 / Parquet 文件
数据窗口 滑动窗口 / 会话窗口(分钟级) 固定窗口(天/周/月)
一致性模型 最终一致性 + 幂等写入 强一致性(事务保证)
容错策略 主从切换 / 本地降级 / 兜底值 任务重跑 / 数据回溯
特征更新 增量更新(事件驱动) 全量覆盖(调度触发)
典型延迟 P99 < 200ms 分钟~小时级

1.4 实时特征系统架构总览

下图展示了实时特征 API 在完整特征工程链路中的位置与核心组件关系:

实时特征 API 系统架构 数据源 Kafka / Pulsar / 日志 实时计算 Flink / Spark Streaming 在线存储 Redis / 本地缓存 特征 API 服务层 RESTful / gRPC · 限流熔断 · 特征变换 · 版本管理 推理引擎 TensorFlow / PyTorch / 自研模型 监控 & 治理 Prometheus / 限流降级 离线特征存储 Hive / HDFS / Parquet 说明: 实时特征 API 位于在线存储与推理引擎之间,承担特征抽象、实时计算、流量治理与版本管理职责。 虚线表示离线特征可作为实时特征的补充或兜底数据源。

1.5 实时特征的核心挑战

构建高可靠的实时特征 API 需要解决以下关键问题:

  1. 延迟与吞吐的平衡:在线推理场景通常要求 P99 延迟 < 200ms,同时支持数万 QPS 并发。需要在计算复杂度与响应速度之间做精细取舍。
  2. 特征一致性与时效性:实时特征采用最终一致性模型,但必须保证同一请求内的多个特征来自相同时间窗口,避免“特征穿越”。
  3. 容错与降级策略:当存储层抖动或计算任务延迟时,API 层需具备本地缓存降级、兜底值返回、熔断保护等能力。
  4. 特征版本与灰度:特征 Schema 变更、计算逻辑升级需要支持平滑迁移,避免打断在线推理流量。
常见误区:将离线特征的计算逻辑直接移植到实时 API 中,忽略窗口语义差异和存储延迟,导致特征值不一致或 API 超时。实时特征必须重新设计计算路径与缓存策略。

1.6 实时特征 API 的典型调用流程

一次完整的实时特征 API 调用包含以下步骤:

  • Step 1:推理引擎发起特征请求,携带实体 ID(如 user_id、item_id)与特征名称列表。
  • Step 2:API 网关进行身份认证、限流检查与路由分发。
  • Step 3:特征 API 服务并行查询在线存储(Redis/本地缓存),获取已预计算的特征值。
  • Step 4:对于需要实时计算的特征(如最近 5 分钟点击率),API 层调用轻量计算引擎完成窗口聚合。
  • Step 5:特征值组装为统一格式的响应,返回给推理引擎。
  • Step 6:异步记录调用日志与延迟指标,用于监控与特征回溯。
性能关键点:Step 3 的并行查询与 Step 4 的轻量计算是延迟瓶颈所在。通常采用连接池复用、批量管道查询、预计算热点特征等方式优化。