OpenMLDB
开源机器学习数据库,毫秒级实时特征计算,SQL 统一离线训练与在线推理
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
开源机器学习数据库,毫秒级实时特征计算,SQL 统一离线训练与在线推理
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
「调参三小时,上线愁三天」——这是每一位数据科学家在将机器学习模型推向生产环境时都会经历的切肤之痛。离线训练阶段精心设计的特征脚本,换到线上推理时往往需要重写,线上线下一致性校验、特征回填、低延迟优化,每一步都可能耗费数周。中小团队没有能力自研特征平台,只能采购动辄数十万的 SaaS 工具。OpenMLDB 正是为解决这一痛点而生。
OpenMLDB 起源于国内 AI 平台独角兽第四范式的商业机器学习平台 SageOne。2021年,第四范式将其核心特征工程组件进行抽象、增强和开源,以帮助更多企业低成本实现 AI 落地。在此之前,该系统已在第四范式内部及客户的上百个真实场景中部署使用,经历了严格的工程验证。
2021年,相关技术成果还发表于数据库顶会 VLDB 2021,论文《Optimizing In-memory Database Engine for AI-powered Online Decision Augmentation》详细阐述了 OpenMLDB 存储引擎的性能优化方法,实验数据表明其在时序特征计算场景下性能大幅领先主流商业内存数据库。

传统 MLOps 流程中,离线训练和在线推理之间存在巨大的工程鸿沟。OpenMLDB 提出的"开发即上线"理念,将这个过程压缩为三个步骤:
整个过程中,线上线下一致性由架构天然保证,无需额外的校验步骤。
OpenMLDB 的在线 SQL 引擎并非基于现成的数据库二次开发,而是从零构建的时序数据库,针对特征计算做了大量优化。官方基准测试显示,在 1000 万行数据、20 个并发连接的场景下,其 P99 延迟可低至个位数毫秒,远超主流商业内存数据库。核心优化手段包括:
OpenMLDB 对标准 SQL 进行了增强,引入了适合特征工程的专属语法:
LAST JOIN:将历史状态 Join 到当前行,例如将用户最近一次购买商品 ID 作为特征;WINDOW UNION:跨窗口数据聚合,适合计算滑动窗口统计量;WINDOW 聚合函数家族:DISTRIBUTE BY 配合窗口实现高效分区聚合。这些语法使得特征定义可以用声明式 SQL 完成,既便于数据科学家编写,也便于工程团队审查和部署。
OpenMLDB 的架构围绕"线上线下一致性"这一核心目标设计,包含四个关键组件:
| 组件 | 职责 |
|---|---|
| 统一 SQL 前端 | 解析和优化 SQL,生成统一执行计划 |
| 实时 SQL 引擎 | 毫秒级低延迟在线特征计算,基于自研时序存储 |
| 批处理 SQL 引擎 | 基于定制化 Spark 发行版,高吞吐离线批处理 |
| 一致性执行计划生成器 | 桥接实时和批处理引擎,保证线上线下计算逻辑一致 |
数据在实时特征存储(内存表)和离线特征存储(HDFS/S3)中共享同一套 SQL 解析逻辑,这是线上线下一致性的根基。
OpenMLDB 的内核使用 C++ 开发,确保高性能和内存控制能力。外层提供多语言 SDK:
openmldb-sdk):PyPI 分发,生产环境最常用;openmldb-jdbc):Maven Central 分发,适合企业 Java 生态;go):轻量级 Go 应用集成;include):嵌入式场景。离线批处理基于定制版 Apache Spark(4paradigm/spark),对 SQL 优化器做了增强以更好地支持特征工程场景。
通过官方 Docker 镜像 4pdosc/openmldb 可以快速启动单节点集群。镜像基于 Ubuntu 22.04,内置 ZooKeeper 依赖,无需额外部署中间件。但需要注意:
taskmanager_backend 组件支持 K8s 部署,Nameserver 等核心组件暂无官方 K8s manifest;openmldb CLI 工具执行 SQL 操作,无开箱即用的 Web 控制台(社区有第三方 Web UI demo)。对于想快速体验的用户,推荐使用 Docker 单节点部署;生产级部署建议参考官方文档的集群部署章节。

OpenMLDB 并非银弹,以下场景需要谨慎评估:
MLOps 在业界的落地长期面临"最后一公里"难题:特征工程的工程化复杂度高,训练推理不一致导致模型效果打折。OpenMLDB 的务实之处在于,它没有试图做一个大而全的 MLOps 平台,而是聚焦于特征计算的一致性和性能这一核心问题,用 SQL 作为统一语言打通了离线开发和在线服务。
从 GitHub 趋势看,feature store 赛道近年来持续火热,Feast、FeaStream、Tecton 等产品各有所长。OpenMLDB 的差异化定位是:主打毫秒级实时特征计算,而大多数 feature store 产品侧重于离线特征存储和复用。在金融风控、实时推荐、IoT 异常检测等强实时性场景,OpenMLDB 是值得认真评估的开源选项。
截至目前,OpenMLDB 已在金融风控、电商实时推荐、工业 IoT 等多个领域有企业级落地案例,其 Apache-2.0 开源许可和活跃的中文社区为国内企业的采用降低了门槛。