MatrixOne All in One

license language macos linux codefactor release
mysql-compatible ai-native cloud-native
Docs || Official Website || Research Paper
English || 简体中文

Connect with us:

matrixone16 matrixone16

Contents ======== * [What is MatrixOne](#what-is-matrixone) * [Get Started in 60 Seconds](#️-get-started-in-60-seconds) * [Tutorials & Demos](#-tutorials--demos) * [Installation & Deployment](#️-installation--deployment) * [Architecture](#architecture) * [Python SDK](#python-sdk) * [Citing MatrixOne](#citation) * [Contributing](#contributing) * [License](#license) ## What is MatrixOne? **MatrixOne is the industry's first database to bring Git-style version control to data**, combined with MySQL compatibility, AI-native capabilities, and cloud-native architecture. At its core, MatrixOne is a **HTAP (Hybrid Transactional/Analytical Processing) database** with a hyper-converged **HSTAP engine** that seamlessly handles transactional (OLTP), analytical (OLAP), full-text search, and vector search workloads in a single unified system—no data movement, no ETL, no compromises. ### 🎬 **Git for Data - The Game Changer** Just as Git revolutionized code management, MatrixOne brings Git-style workflows to data management. The design behind this capability is detailed in the arXiv paper [Version Control System for Data with MatrixOne](https://arxiv.org/abs/2604.03927), and in practice it lets you **manage your database like code:** - **📸 Instant Snapshots** - Zero-copy snapshots in milliseconds, no storage explosion - **⏰ Time Travel** - Query data as it existed at any point in history - **🔀 Branch & Merge** - Test migrations and transformations in isolated branches - **↩️ Instant Rollback** - Restore to any previous state without full backups - **🔍 Complete Audit Trail** - Track every data change with immutable history **Why it matters:** Data mistakes are expensive. Git for Data gives you the safety net and flexibility developers have enjoyed with Git—now for your most critical asset: your data. --- ### 🎯 **Built for the AI Era**
**🗄️ MySQL-Compatible** Drop-in replacement for MySQL. Use existing tools, ORMs, and applications without code changes. Seamless migration path. **🤖 AI-Native** Built-in vector search (IVF/HNSW) and full-text search. Build RAG apps and semantic search directly—no external vector databases needed. **☁️ Cloud-Native** Storage-compute separation. Deploy anywhere. Elastic scaling. Kubernetes-native. Zero-downtime operations.
--- ### 🚀 **One Database for Everything** **The typical modern data stack:** 🗄️ MySQL for transactions → 📊 ClickHouse for analytics → 🔍 Elasticsearch for search → 🤖 Pinecone for AI **The problem:** 4 databases · Multiple ETL jobs · Hours of data lag · Sync nightmares **MatrixOne replaces all of them:** 🎯 **One database** with native OLTP, OLAP, full-text search, and vector search. Real-time. ACID compliant. No ETL.

MatrixOne

## ⚡️ Get Started in 60 Seconds ### 1️⃣ Launch MatrixOne ```bash docker run -d -p 6001:6001 --name matrixone matrixorigin/matrixone:latest ``` ### 2️⃣ Create Database ```bash mysql -h127.0.0.1 -P6001 -p111 -uroot -e "create database demo" ``` ### 3️⃣ Connect & Query **Install Python SDK:** ```bash pip install matrixone-python-sdk ``` **Vector search:** ```python from matrixone import Client from matrixone.orm import declarative_base from sqlalchemy import Column, Integer, String, Text from matrixone.sqlalchemy_ext import create_vector_column # Create client and connect client = Client() client.connect(database='demo') # Define model using MatrixOne ORM Base = declarative_base() class Article(Base): __tablename__ = 'articles' id = Column(Integer, primary_key=True, autoincrement=True) title = Column(String(200), nullable=False) content = Column(Text, nullable=False) embedding = create_vector_column(8, "f32") # Create table using client API client.create_table(Article) # Insert some data using client API articles = [ {'title': 'Machine Learning Guide', 'content': 'Comprehensive machine learning tutorial...', 'embedding': [0.1, 0.2, 0.3, 0.15, 0.25, 0.35, 0.12, 0.22]}, {'title': 'Python Programming', 'content': 'Learn Python programming basics', 'embedding': [0.2, 0.3, 0.4, 0.25, 0.35, 0.45, 0.22, 0.32]}, ] client.batch_insert(Article, articles) client.vector_ops.create_ivf( Article, name='idx_embedding', column='embedding', lists=100, op_type='vector_l2_ops' ) query_vector = [0.2, 0.3, 0.4, 0.25, 0.35, 0.45, 0.22, 0.32] results = client.query( Article.title, Article.content, Article.embedding.l2_distance(query_vector).label("distance"), ).filter(Article.embedding.l2_distance(query_vector) < 0.1).execute() for row in results.rows: print(f"Title: {row[0]}, Content: {row[1][:50]}...") # Cleanup client.drop_table(Article) # Use client API client.disconnect() ``` **Fulltext Search:** ```python ... from matrixone.sqlalchemy_ext import boolean_match # Create fulltext index using SDK client.fulltext_index.create( Article,name='ftidx_content',columns=['title', 'content'] ) # Boolean search with must/should operators results = client.query( Article.title, Article.content, boolean_match('title', 'content') .must('machine') .must('learning') .must_not('basics') ).execute() # Results is a ResultSet object for row in results.rows: print(f"Title: {row[0]}, Content: {row[1][:50]}...") ... ``` **That's it!** 🎉 You're now running a production-ready database with Git-like snapshots, vector search, and full ACID compliance. > 💡 **Want more control?** Check out the [Installation & Deployment](#️-installation--deployment) section below for production-grade installation options. 📖 **[Python SDK Documentation →](clients/python/README.md)** ## 📚 Tutorials & Demos Ready to dive deeper? Explore our comprehensive collection of hands-on tutorials and real-world demos: ### 🎯 Getting Started Tutorials | Tutorial | Language/Framework | Description | |----------|-------------------|-------------| | [Java CRUD Demo](https://docs.matrixorigin.cn/en/v25.3.0.2/MatrixOne/Tutorial/develop-java-crud-demo/) | Java | Java application development | | [SpringBoot and JPA CRUD Demo](https://docs.matrixorigin.cn/en/v25.3.0.2/MatrixOne/Tutorial/springboot-hibernate-crud-demo/) | Java | SpringBoot with Hibernate/JPA | | [PyMySQL CRUD Demo](https://docs.matrixorigin.cn/en/v25.3.0.2/MatrixOne/Tutorial/develop-python-crud-demo/) | Python | Basic database operations with Python | | [SQLAlchemy CRUD Demo](https://docs.matrixorigin.cn/en/v25.3.0.2/MatrixOne/Tutorial/sqlalchemy-python-crud-demo/) | Python | Python with SQLAlchemy ORM | | [Django CRUD Demo](https://docs.matrixorigin.cn/en/v25.3.0.2/MatrixOne/Tutorial/django-python-crud-demo/) | Python | Django web framework | | [Golang CRUD Demo](https://docs.matrixorigin.cn/en/v25.3.0.2/MatrixOne/Tutorial/develop-golang-crud-demo/) | Go | Go application development | | [Gorm CRUD Demo](https://docs.matrixorigin.cn/en/v25.3.0.2/MatrixOne/Tutorial/gorm-golang-crud-demo/) | Go | Go with Gorm ORM | | [C# CRUD Demo](https://docs.matrixorigin.cn/en/v25.3.0.2/MatrixOne/Tutorial/c-net-crud-demo/) | C# | .NET application development | | [TypeScript CRUD Demo](https://docs.matrixorigin.cn/en/v25.3.0.2/MatrixOne/Tutorial/typescript-crud-demo/) | TypeScript | TypeScript application development | ### 🚀 Advanced Features Tutorials | Tutorial | Use Case | Related MatrixOne Features | |----------|----------|---------------------------| | [Pinecone-Compatible Vector Search](https://docs.matrixorigin.cn/en/v25.3.0.2/MatrixOne/Tutorial/pinecone-vector-demo/) | AI & Search | vector search, Pinecone-compatible API | | [IVF Index Health Monitoring](https://docs.matrixorigin.cn/en/v25.3.0.2/MatrixOne/Tutorial/ivf-index-health-demo/) | AI & Search | vector search, IVF index | | [HNSW Vector Index](https://docs.matrixorigin.cn/en/v25.3.0.2/MatrixOne/Tutorial/hnsw-vector-demo/) | AI & Search | vector search, HNSW index | | [Fulltext Natural Search](https://docs.matrixorigin.cn/en/v25.3.0.2/MatrixOne/Tutorial/fulltext-natural-search-demo/) | AI & Search | fulltext search, natural language | | [Fulltext Boolean Search](https://docs.matrixorigin.cn/en/v25.3.0.2/MatrixOne/Tutorial/fulltext-boolean-search-demo/) | AI & Search | fulltext search, boolean operators | | [Fulltext JSON Search](https://docs.matrixorigin.cn/en/v25.3.0.2/MatrixOne/Tutorial/fulltext-json-search-demo/) | AI & Search | fulltext search, JSON data | | [Hybrid Search](https://docs.matrixorigin.cn/en/v25.3.0.2/MatrixOne/Tutorial/hybrid-search-demo/) | AI & Search | hybrid search, vector + fulltext + SQL | | [RAG Application Demo](https://docs.matrixorigin.cn/en/v25.3.0.2/MatrixOne/Tutorial/rag-demo/) | AI & Search | RAG, vector search, fulltext search | | [Picture(Text)-to-Picture Search](https://docs.matrixorigin.cn/en/v25.3.0.2/MatrixOne/Tutorial/search-picture-demo/) | AI & Search | multimodal search, image similarity | | [Dify Integration Demo](https://docs.matrixorigin.cn/en/v25.3.0.2/MatrixOne/Tutorial/dify-mo-demo/) | AI & Search | AI platform integration | | [HTAP Application Demo](https://docs.matrixorigin.cn/en/v25.3.0.2/MatrixOne/Tutorial/htap-demo/) | Performance | HTAP, real-time analytics | | [Instant Clone for Multi-Team Development](https://docs.matrixorigin.cn/en/v25.3.0.2/MatrixOne/Tutorial/efficient-clone-demo/) | Performance | instant clone, Git for Data | | [Safe Production Upgrade with Instant Rollback](https://docs.matrixorigin.cn/en/v25.3.0.2/MatrixOne/Tutorial/snapshot-rollback-demo/) | Performance | snapshot, rollback, Git for Data | 📖 **[View All Tutorials →](https://docs.matrixorigin.cn/en/v25.3.0.2/MatrixOne/Tutorial/snapshot-rollback-demo/)** ## 🛠️ Installation & Deployment MatrixOne supports multiple installation methods. Choose the one that best fits your needs: ### 🐳 Local Multi-CN Development Run a complete distributed cluster locally with multiple CN nodes, load balancing, and easy configuration management. ```bash # Quick start make dev-build && make dev-up # Connect via proxy (load balanced) mysql -h 127.0.0.1 -P 6001 -u root -p111 # Configure specific service (interactive editor) make dev-edit-cn1 # Edit CN1 config make dev-restart-cn1 # Restart only CN1 (fast!) ``` 📖 **[Complete Development Guide →](etc/DEV_README.md)** - Comprehensive guide covering standalone setup, multi-CN clusters, monitoring, metrics, configuration, and all `make dev-*` commands ### 🎯 Using mo_ctl Tool (Recommended for Production) One-command deployment and lifecycle management with the official [mo_ctl](https://github.com/matrixorigin/mo_ctl_standalone) tool. Handles installation, upgrades, backups, and health monitoring automatically. 📖 **[Complete mo_ctl Installation Guide →](INSTALLATION.md#using-moctl-tool)** ### ⚙️ Building from Source Build MatrixOne from source for development, customization, or contributing. Requires Go 1.26.4 or later, GCC/Clang, Git, and Make. 📖 **[Complete Build from Source Guide →](BUILD.md)** ### 🐳 Other Methods Docker standalone, Kubernetes, binary packages, and more deployment options. 📖 **[All Installation Options →](INSTALLATION.md)** ## 🔎 Architecture MatrixOne's architecture is as below:

MatrixOne

For more details, you can checkout [MatrixOne Architecture Design](https://docs.matrixorigin.cn/en/latest/MatrixOne/Overview/architecture/matrixone-architecture-design/). ## 🐍 Python SDK MatrixOne provides a **comprehensive Python SDK** for database operations, vector search, fulltext search, and advanced features like snapshots, PITR, and account management. **Key Features**: High-performance async/await support, vector similarity search with IVF/HNSW indexing, fulltext search, metadata analysis, and complete type safety. 📚 **[Complete Documentation](https://matrixone.readthedocs.io/)** [![Documentation Status](https://app.readthedocs.org/projects/matrixone/badge/?version=latest)](https://matrixone.readthedocs.io/en/latest/) 📖 **[Python SDK README](clients/python/README.md)** - Full features, installation, and usage guide 📦 **Installation**: `pip install matrixone-python-sdk` ## Citing MatrixOne If you use MatrixOne in academic work or refer to its Git for Data design, please cite: ```bibtex @misc{gou2026versioncontrolsystemdata, title={Version Control System for Data with MatrixOne}, author={Gou, Hongshen and Tian, Feng and Wang, Long and Deng, Nan and Xu, Peng}, year={2026}, eprint={2604.03927}, archivePrefix={arXiv}, primaryClass={cs.DB}, doi={10.48550/arXiv.2604.03927}, url={https://arxiv.org/abs/2604.03927} } ``` ## 🙌 Contributing Contributions to MatrixOne are welcome from everyone. See [Contribution Guide](https://docs.matrixorigin.cn/en/latest/MatrixOne/Contribution-Guide/make-your-first-contribution/) for details on submitting patches and the contribution workflow. ### 👏 All contributors
nnsgmsone
Nnsgmsone
XuPeng-SH
XuPeng-SH
zhangxu19830126
Fagongzi
reusee
Reusee
ouyuanning
Ouyuanning
daviszhen
Daviszhen
aunjgr
BRong Njam
sukki37
Maomao
iamlinjunhong
Iamlinjunhong
jiangxinmeng1
Jiangxinmeng1
jianwan0214
Jianwan0214
LeftHandCold
GreatRiver
w-zr
Wei Ziran
m-schen
Chenmingsong
dengn
Dengn
aptend
Aptend
lni
Lni
xzxiong
Jackson
YANGGMM
YANGGMM
qingxinhome
Qingxinhome
badboynt1
Nitao
broccoliSpicy
BroccoliSpicy
mooleetzi
Mooleetzi
fengttt
Fengttt
zzl200012
Kutori
lacrimosaprinz
Prinz
guguducken
Brown
dongdongyang33
Dongdongyang
JackTan25
Boyu Tan
cnutshell
Cui Guoke
JinHai-CN
Jin Hai
lignay
Matthew
bbbearxyz
Bbbearxyz
tianyahui-python
Tianyahui-python
wanglei4687
Wanglei
triump2020
Triump2020
heni02
Heni02
wanhanbo
Wanhanbo
iceTTTT
IceTTTT
volgariver6
LiuBo
taofengliu
刘陶峰
Ariznawlll
Ariznawlll
goodMan-code
GoodMan-code
yingfeng
Yingfeng
mklzl
Mklzl
jensenojs
Jensen
domingozhang
DomingoZhang
arjunsk
Arjun Sunil Kumar
chrisxu333
Nuo Xu
aressu1985
Aressu1985
matrix-meow
Mo-bot
zengyan1
Zengyan1
aylei
Aylei
noneback
NoneBack
WenhaoKong2001
Otter
richelleguice
Richelle Guice
yjw1268
Ryan
e1ijah1
Elijah
MatrixAdventurer
MatrixAdventurer
NTH19
NTH19
anitajjx
Anitajjx
whileskies
Whileskies
BePPPower
BePPPower
jiajunhuang
Jiajun Huang
Morranto
Morranto
Y7n05h
Y7n05h
songjiayang
Songjiayang
Abirdcfly
Abirdcfly
decster
Binglin Chang
Charlie17Li
Charlie17Li
DanielZhangQD
DanielZhangQD
Juneezee
Eng Zer Jun
ericsyh
Eric Shen
Fungx
Fungx
player-kirito
Kirito
JasonPeng1310
Jason Peng
ikenchina
O2
RinChanNOWWW
RinChanNOW!
TheR1sing3un
TheR1sing3un
chaixuqing
XuQing Chai
qqIsAProgrammer
Yiliang Qiu
yubindy
ZeYu Zhao
adlternative
ZheNing Hu
TszKitLo40
Zijie Lu
ZoranPandovski
Zoran Pandovski
yegetables
Ajian
bxiiiiii
Binxxi
coderzc
Coderzc
forsaken628
ColdWater
dr-lab
Dr-lab
florashi181
Florashi181
hiyoyolumi
Hiyoyolumi
jinfuchiang
Jinfu
sourcelliu
Liuguangliang
lokax
Lokax
lyfer233
Lyfer233
sundy-li
Sundyli
supermario1990
Supermario1990
lawrshen
Tjie
Toms1999
Toms
wuliuqii
Wuliuqii
xiw5
Xiyuedong
yclchuxue
Yclchuxue
ZtXavier
Zt
## License MatrixOne is licensed under the [Apache License, Version 2.0](LICENSE).