OpenMLDB介绍与特点
OpenMLDB 是一个开源的机器学习数据库,旨在解决机器学习工程化落地中的数据和特征挑战。它提供了高效的特征计算能力,并支持线上线下一致的特征平台开发。
关键特性:
- 毫秒级实时特征计算:能够实现实时数据处理和计算,最大化机器学习决策的业务效果。
- 线上线下一致性执行引擎:统一的底层计算函数,支持逻辑计划到物理计划的自适应调整,确保线上线下一致性。
- 低门槛且功能强大的数据库开发体验:基于SQL和CLI的全流程开发体验,支持LastJoin、WindowUnion等扩展功能。
- 定制化性能优化:针对特征工程进行了优化,包括多窗口并行计算、数据倾斜计算优化等。
- 企业级特性支持:适用于大规模企业级应用,已在上百个场景中实践落地。
产品架构
OpenMLDB 的架构包括以下几个主要模块:
- SQL执行引擎:支持离线和在线统一的SQL引擎,内置常用函数,并支持UDF动态扩展。
- 存储引擎:提供基于内存和外存的两种存储引擎选择,分别适用于不同场景。
- 内存存储引擎:低延迟、高并发,但成本较高。
- 外存存储引擎:基于RocksDB,支持高效编解码格式和表数据分片/副本机制。
实现细节
- 内存存储引擎:采用双层跳表内存索引结构,支持高效插入和查询,满足高并发数据访问需求。
- 外存存储引擎:数据模型基于RocksDB,支持高效编解码格式,节省内存并方便做projection。
- 预聚合技术:优化长窗口计算效率,提升性能表现。
性能测试
- 性能测试基准:包括Window数目、LAST JOIN数目、窗口内数据条数和索引列基数的影响。
- 预聚合技术:在长窗口查询下,预聚合技术使得延迟和吞吐性能提升了两个数量级。
社区贡献
OpenMLDB已开源一周年,社区活跃度高,包括多个版本迭代、开发者贡献和问题修复。
- 版本迭代:从v0.1到v0.6。
- 开发者数量:103位开发者,排名前15位开发者来自不同组织。
- PR和Issue数量:合并PR总数1,117,解决Issue总数863。
欢迎加入OpenMLDB开源社区,详情参见官方网站和GitHub页面。