Skip to content

matrixorigin/matrixone

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Connect with us:

matrixone16 matrixone16

Contents

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 revolutionizes data management. 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

docker run -d -p 6001:6001 --name matrixone matrixorigin/matrixone:latest

2️⃣ Create Database

mysql -h127.0.0.1 -P6001 -p111 -uroot -e "create database demo"

3️⃣ Connect & Query

Install Python SDK:

pip install matrixone-python-sdk

Vector search:

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:

...
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 section below for production-grade installation options.

📖 Python SDK Documentation →

📚 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 Java Java application development
SpringBoot and JPA CRUD Demo Java SpringBoot with Hibernate/JPA
PyMySQL CRUD Demo Python Basic database operations with Python
SQLAlchemy CRUD Demo Python Python with SQLAlchemy ORM
Django CRUD Demo Python Django web framework
Golang CRUD Demo Go Go application development
Gorm CRUD Demo Go Go with Gorm ORM
C# CRUD Demo C# .NET application development
TypeScript CRUD Demo TypeScript TypeScript application development

🚀 Advanced Features Tutorials

Tutorial Use Case Related MatrixOne Features
Pinecone-Compatible Vector Search AI & Search vector search, Pinecone-compatible API
IVF Index Health Monitoring AI & Search vector search, IVF index
HNSW Vector Index AI & Search vector search, HNSW index
Fulltext Natural Search AI & Search fulltext search, natural language
Fulltext Boolean Search AI & Search fulltext search, boolean operators
Fulltext JSON Search AI & Search fulltext search, JSON data
Hybrid Search AI & Search hybrid search, vector + fulltext + SQL
RAG Application Demo AI & Search RAG, vector search, fulltext search
Picture(Text)-to-Picture Search AI & Search multimodal search, image similarity
Dify Integration Demo AI & Search AI platform integration
HTAP Application Demo Performance HTAP, real-time analytics
Instant Clone for Multi-Team Development Performance instant clone, Git for Data
Safe Production Upgrade with Instant Rollback Performance snapshot, rollback, Git for Data

📖 View All Tutorials →

MatrixOne supports multiple installation methods. Choose the one that best fits your needs:

🎯 Using mo_ctl Tool (Recommended)

One-command deployment and lifecycle management with the official mo_ctl tool. Handles installation, upgrades, backups, and health monitoring automatically.

📖 Complete mo_ctl Installation Guide →

⚙️ Building from Source

Build MatrixOne from source for development, customization, or contributing. Requires Go 1.22, GCC/Clang, Git, and Make.

📖 Complete Build from Source Guide →

🐳 Other Methods

Docker, Kubernetes, binary packages, and more deployment options.

📖 All Installation Options →

MatrixOne's architecture is as below:

MatrixOne

For more details, you can checkout MatrixOne Architecture Design.

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 Documentation Status

📖 Python SDK README - Full features, installation, and usage guide

📦 Installation: pip install matrixone-python-sdk

Contributions to MatrixOne are welcome from everyone.
See Contribution Guide 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

MatrixOne is licensed under the Apache License, Version 2.0.