内容提要
Databricks Feature Store通过Spark RTM、Lakebase和Model Serving实现亚秒级特征新鲜度,端到端延迟200毫秒。它支持滚动窗口聚合,实时处理Kafka事件,减少WAL放大,并自动检索特征供模型推理。该平台简化基础设施,提供治理和血缘追踪,适用于欺诈检测等实时ML场景。
延伸解读
亚秒级新鲜度的关键:从批处理到实时更新
传统批处理管道以分钟到小时计,难以满足实时ML需求。Databricks Feature Store通过Spark RTM实现流式处理,将端到端延迟降至200毫秒。其核心在于RTM采用连续处理模式,聚合操作在行到达时立即执行,而非等待批次边界。这种设计使得滚动窗口聚合(如10分钟交易总额)能实时更新,为欺诈检测等场景提供最新信号。
滚动窗口:实时信号的最佳选择
Feature Store支持三种时间窗口:滚动、滑动和跳跃。滚动窗口虽维护成本较高,但能提供最大新鲜度,适合每个事件都需立即影响模型输出的场景。例如,欺诈检测中,用户10分钟内的交易总额需实时反映最新行为。而滑动和跳跃窗口则适用于变化不频繁的特征,以降低计算开销。
Lakebase如何解决流式写入的WAL放大问题
流式写入涉及大量小规模更新,传统Postgres因全页写入导致WAL放大,成为性能瓶颈。Lakebase利用计算与存储分离架构,写入紧凑的变更记录而非完整页快照,由分布式节点确认持久性,从而显著降低写入放大和延迟。这使得RTM能持续发布新鲜特征值,同时保持高吞吐和低延迟。
治理与血缘:Feature Store的额外价值
除了性能,Feature Store还解决流式特征训练数据生成和治理难题。它存储Kafka数据的离线副本,支持时间点准确连接以生成训练数据。特征作为Unity Catalog中的一等公民,具备访问控制和完整血缘追踪,简化了跨系统协调,提升了开发效率和合规性。
Q&A
Databricks Feature Store如何实现亚秒级特征新鲜度?
Databricks Feature Store通过Spark RTM(实时模式)进行连续流处理,使用Lakebase作为流优化的在线存储,并由Model Serving在推理时自动检索特征。端到端延迟可达200毫秒(p99),从事件到达Kafka到特征在在线特征存储中可用。
Databricks Feature Store支持哪些时间窗口类型?
Databricks Feature Store支持三种时间窗口:滚动窗口(rolling)、跳跃窗口(tumbling)和滑动窗口(sliding)。滚动窗口提供最大新鲜度,每个新事件都会立即影响特征值;跳跃和滑动窗口在特征变化不频繁时更高效,更新较少且成本更低。
Spark RTM与传统的微批处理模式有何不同?
Spark RTM(实时模式)与传统的微批处理模式(MBM)不同,RTM让各阶段并发运行,聚合操作符在行可用时立即处理,无需等待上游阶段完成。这消除了微批处理中批边界带来的延迟,使得状态聚合的延迟从秒级降低到毫秒级。
Databricks Feature Store如何处理流式写入的WAL放大问题?
Lakebase利用计算与存储分离的架构,允许Postgres写入小而紧凑的变更记录,而不是重复写入完整的8KB页面快照到WAL。这些紧凑记录由分布式safekeeper节点确认,保证了持久性。完整的页面快照在存储层稍后生成,从而减少了WAL放大,提高了写入吞吐量。
在推理时,Databricks Feature Store如何自动检索特征?
当模型使用MLflow记录时,其特征依赖会被记录。在推理时,Databricks Model Serving自动从Lakebase查找所需特征,无需自定义查找代码或手动集成。特征与推理请求透明地连接,简化了部署流程。
Databricks Feature Store如何支持训练数据的生成和回填?
Databricks Feature Store存储摄入的Kafka数据的离线副本。对于模型训练,它计算与流式管道相同的历史特征值,并执行时间点准确的连接。此功能也用于回填在线流式特征,以便快速启动生产。
Databricks Feature Store在治理和血缘方面提供了哪些能力?
在Databricks中,特征是Unity Catalog中的一等对象,可发现、受访问控制管理,并具有完整的血缘追踪。特征转换与模型打包,MLflow捕获使用的特征,部署血缘连接模型与其特征依赖。这简化了治理和特征重用。