matrixone
一体化HTAP数据库:同时支持事务与分析处理,内置向量搜索和Git风格数据版本控制
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
一体化HTAP数据库:同时支持事务与分析处理,内置向量搜索和Git风格数据版本控制
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一个场景:你的 AI Agent 需要实时分析用户行为数据,同时还要处理高频的交易写入请求——传统方案是部署两套数据库(OLAP + OLTP)再加一个数据同步管道,光是维护这套系统就让人头疼。而 MatrixOne 的出现,正是为了终结这种数据库割裂症——它在一套引擎里同时搞定分析型(HTAP)和事务型负载,还原生了 Git-for-Data 能力,让数据管理像代码一样优雅。
MatrixOne 由蚂蚁集团孵化的矩阵起源(MatrixOrigin)团队开发,主创团队来自阿里巴巴 OceanBase、百度等头部数据库项目组。项目于 2021 年正式开源,目标明确:做一款融合 HTAP(混合事务/分析处理)、云原生、向量检索三大能力的新一代数据库,填补当时市场上一个数据库同时满足 AP+TP 需求的空白。
2024 年 4 月,团队在 arXiv 发表了相关研究论文,系统阐述了 MatrixOne 的架构设计理念,引发学术界和工业界的双重关注。其 GitHub 仓库累计获得超过 1800 颗星,吸引了来自全球数十个国家的开发者参与贡献。
MatrixOne 的核心创新在于一体化——不是简单地把 OLAP 和 OLTP 叠加在一起,而是从底层存储引擎到 SQL 解析层重新设计。
HTAP 混合负载引擎是 MatrixOne 最具区分度的特性。它采用计算-存储分离的架构,事务处理和分析查询共享同一份数据副本,彻底告别 ETL 数据同步延迟。在内部实现上,它将写入操作路由到行存引擎(支持强事务),将分析查询下推至 MPP(大规模并行处理)引擎并行执行,两套执行路径互不干扰。

图1:MatrixOne 的 HTAP 写入路径,事务写入行存引擎后异步同步至分析引擎
**Git-for-Data(数据版本控制)**是 MatrixOne 提出的标志性理念。类比代码版本控制系统,MatrixOne 支持数据的 Time Travel 查询、版本分支、Diff 对比等能力。这意味着 AI 应用可以回溯任意历史时刻的数据状态,为模型训练和实验复现提供了天然的基础设施。
内置向量搜索能力则直接面向 AI 场景。MatrixOne 在 pkg/cuvs 包中集成了 CAGRA(近似最近邻图索引)、Brute Force 等向量索引算法,支持直接在数据库内执行语义检索,无需额外的向量数据库(如 Milvus)即可构建 RAG(检索增强生成)系统的数据层。

图2:MatrixOne 的 MPP 并行查询架构,多计算节点协同执行复杂分析查询
MatrixOne 使用 Go 语言作为主要开发语言,这一选择并非偶然。Go 优秀的并发模型(goroutine + channel)天然适合分布式数据库的高并发网络 IO 场景;简洁的部署方式(单二进制文件)大幅降低了生产环境的运维复杂度。
从 pkg/ 目录结构可以清晰看到项目的模块化设计思路——55 个子包各司其职:
catalog/:元数据管理,维护表结构、分区信息clusterservice/:集群服务发现与生命周期管理cdc/:Change Data Capture,支持增量数据变更捕获cuvs/:向量索引实现(CAGRA、Brute Force 等)datalink/:外部数据源接入(HDFS、S3、OSS 等)在依赖层面,MatrixOne 引用了大量成熟的开源基础设施:grpc(RPC 通信)、dragonboat(Raft 共识)、parquet-go(列式存储格式)、usearch(向量检索库),同时深度集成了阿里云、AWS 等云存储 SDK,真正做到了站在巨人肩膀上。
共识协议方面,MatrixOne fork 并维护了 dragonboat(Raft 实现)以及 lni/vfs 等核心依赖,体现了对分布式一致性协议的深度掌控力,而非简单依赖第三方库。
MatrixOne 提供三种部署路径:
Docker 部署(推荐尝鲜):通过官方 mo_ctl 工具一键拉取并启动容器,适合快速验证场景。整个过程只需两条命令即可完成单节点部署,门槛极低。
源码编译(适合开发):需要 Go 1.22+、gcc(编译 cgo 依赖)和 MySQL 客户端工具链。编译后通过 make 命令启动本地实例,适合有二次开发需求的用户。
集群部署(生产级):通过 Kubernetes Operator 或手动配置多节点集群,支持水平扩缩容。这是生产环境的推荐方案,但目前 MatrixOne 尚未提供官方的 Helm Chart 或 docker-compose 生产配置,需要参考文档手动编排 YAML,部署难度相对较高。
MatrixOne 没有独立的 Web 管理界面,完全通过 MySQL 兼容协议(端口 6001)连接数据库,使用标准 SQL 工具操作。对于习惯 Navicat、DBeaver 等 GUI 工具的开发者,上手非常自然。
硬件方面,单节点最低配置仅需 4GB 内存和 5GB 磁盘,无需 GPU,这在中型数据库项目中相当友好。不过需要注意的是,Docker 模式下运行时建议分配 4 核以上 CPU 以获得完整性能。
MatrixOne 的 MySQL 8.0 兼容层是它快速扩张用户基数的关键武器——现有的 MySQL 业务几乎无需修改 SQL 即可无缝迁移。但这种兼容性也带来了约束:MatrixOne 并非 100% 覆盖 MySQL 所有特性(如某些存储过程语法),遗留系统的迁移可能需要小幅适配。
另一个值得关注的局限是向量搜索能力的成熟度。虽然 MatrixOne 内置了 cuvs 包支持向量索引,但相比专业的向量数据库(如 Qdrant、Weaviate),它在向量维度、相似度算法丰富度、混合检索(向量+标量过滤)等高级特性上仍有差距。对于 RAG 场景来说,当前更适合作为有向量能力的 HTAP 数据库而非专门的向量引擎。
MatrixOne 代表了一种新兴趋势:AI 原生数据库(AI-Native Database)。与传统数据库被动等待 AI 应用接入不同,MatrixOne 从设计之初就将向量检索、时间旅行、多租户等 AI 应用刚需能力内嵌为核心功能,而非后期插件扩展。
从数据平台演进角度看,MatrixOne 的 HTAP 统一架构直接挑战了 Snowflake、ClickHouse、TiDB 等明星项目的领地。如果它能在稳定性、生态工具成熟度上持续追赶,有望成为中小型 AI 应用的首选数据底座——尤其是那些既需要实时事务处理、又需要历史数据分析、还想顺便做个语义搜索的场景,MatrixOne 的 All-in-One 价值主张极具吸引力。
项目目前由矩阵起源公司商业支持,同时保持完全开源。对于有数据库内核研发兴趣的开发者,MatrixOne 也是一个极佳的学习案例——其代码结构清晰、依赖关系透明,55 个 pkg 模块覆盖了分布式数据库的各个核心领域,值得深入研读。