imtoken官网下载链接|matrixone
主页 - MatrixOne 䏿–‡æ–‡æ¡£
主页 - MatrixOne 䏿–‡æ–‡æ¡£
Skip to content
MatrixOne 䏿–‡æ–‡æ¡£
主页
English
䏿–‡ç®€ä½“
Initializing search
matrixorigin/matrixone
MatrixOne
MatrixOne 䏿–‡æ–‡æ¡£
matrixorigin/matrixone
MatrixOne
MatrixOne
主页
主页
Table of contents
��阅读 👉
关� MatrixOne
关� MatrixOne
MatrixOne 简介
MatrixOne 功能列表
MatrixOne 技术��
MySQL 兼容性
最新动�
快速开始
快速开始
�机部署 MatrixOne
�机部署 MatrixOne
�机部署 MatrixOne 概述
在 macOS 上部署
在 macOS 上部署
使用æº�代ç �部署
使用二进制包部署
使用 Docker 部署
在 Linux 上部署
在 Linux 上部署
使用æº�代ç �部署
使用二进制包部署
使用 Docker 部署
SQL 的基本�作
开�指�
开�指�
数�库模�设计
数�库模�设计
概述
创建数�库
创建表
数�完整性
数�完整性
数�完整性约�概述
NOT NULL 完整性约�
UNIQUE KEY 完整性约�
PRIMARY KEY 完整性约�
FOREIGN KEY 完整性约�
�� MatrixOne
�� MatrixOne
�置 MatrixOne SSL ��
客户端工具�� MatrixOne �务
Java �� MatrixOne �务
Java �� MatrixOne �务
使用 JDBC ��器�� MatrixOne
使用 Java ORMs �� MatrixOne
Python �� MatrixOne �务
导入数�
导入数�
��导入
批�导入
批�导入
批�导入概述
导入 csv 文件
导入 jsonlines 文件
� S3 读�数�并导入至 MatrixOne
导出数�
导出数�
使用 `SELECT INTO...OUTFILE` 导出数�
使用 `modump` 导出数�
数�读�
数�读�
�表读�
多表��查询
å�查询
视图
公共表表达�
事务
事务
事务通用概念
MatrixOne 的事务
MatrixOne 的事务
MatrixOne 的事务概述
MatrixOne 的显�事务
MatrixOne 的��事务
MatrixOne 的�观事务
如何使用 MatrixOne 事务
MatrixOne 的事务隔离级别
MVCC
MatrixOne ä¸çš„事务应用场景
部署指�
部署指�
MatrixOne 分布�集群部署
教程
教程
�建一个 Java CRUD 示例
使用 SpringBoot 和 Spring JPA �建一个 CRUD 示例
使用 SpringBoot 和 MyBatis �建一个 CRUD 示例
使用 Python 和 SQLAlchemy �建一个 CRUD 示例
�建一个 Python CRUD 示例
�维
�维
备份���
数�挂载
数�挂载
挂载目录到 Docker 容器
数��移
数��移
将数�� MySQL �移至 MatrixOne
测试
测试
性能测试
性能测试
SSB 测试
TPCH 测试
TPCC 测试
测试工具
测试工具
MO-Tester
MO-Tester 规范�求
性能调优
性能调优
SQL 性能调优方法概述
MatrixOne 执行计划
MatrixOne 执行计划
MatrixOne 执行计划概述
使用 EXPLAIN �解执行计划
JOIN 查询的执行计划
å�查询的执行计划
��查询的执行计划
视图的执行计划
性能调优最佳�践
性能调优最佳�践
使用 Cluster by è¯å�¥è°ƒä¼˜
��
��
TLS 安全��
什么是��管�
什么是��管�
关� MatrixOne ��管�
最佳�践
�作指�
�作指�
快速开始
快速开始
创建租户,验�资�隔离
新租户创建用户�创建角色和��
��管��作
应用场景
�考手册
�考手册
SQL 结æ�„ä¸�è¯æ³•
SQL 结æ�„ä¸�è¯æ³•
关键å—
SQL 目录
SQL 目录
æ•°æ�®å®šä¹‰è¯è¨€ï¼ˆDDL)
æ•°æ�®å®šä¹‰è¯è¨€ï¼ˆDDL)
CREATE DATABASE
CREATE INDEX
CREATE TABLE
CREATE EXTERNAL TABLE
CREATE VIEW
ALTER VIEW
DROP DATABASE
DROP INDEX
DROP TABLE
DROP VIEW
TRUNCATE TABLE
æ•°æ�®ä¿®æ”¹è¯è¨€ï¼ˆDML)
æ•°æ�®ä¿®æ”¹è¯è¨€ï¼ˆDML)
INSERT
INSERT INTO SELECT
DELETE
UPDATE
LOAD DATA
INTERVAL
Information Functions
Information Functions
LAST_QUERY_ID()
LAST_INSERT_ID()
OPERATORS
OPERATORS
�算符概述
�算符的优先级
算数�算符
算数�算符
算数�算符概述
%,MOD
*
+
-
-
/
DIV
赋值�算符
赋值�算符
赋值�算符概述
=
二进制�算符
二进制�算符
二进制�算符概述
&
>>
<<
^
|
~
强制转�函数和�算符
强制转�函数和�算符
强制转�函数和�算符概述
CAST
CONVERT
比较函数和�算符
比较函数和�算符
比较函数和�算符概述
>
>=
<
<>,!=
<=
=
BETWEEN ... AND ...
IN
IS
IS NOT
IS NOT NULL
IS NULL
LIKE
NOT BETWEEN ... AND ...
NOT LIKE
COALESCE
�制�函数
�制�函数
�制�函数概述
CASE WHEN
IF
逻辑�算符
逻辑�算符
逻辑�算符概述
AND,&&
NOT,!
OR
XOR
æ•°æ�®æŸ¥è¯¢è¯è¨€ï¼ˆDQL)
æ•°æ�®æŸ¥è¯¢è¯è¨€ï¼ˆDQL)
SELECT
SUBQUERY
SUBQUERY
SUBQUERY 概述
Derived Tables
å�查询ä¸�比较æ“�作符的使用
SUBQUERY with ANY or SOME
SUBQUERY with ALL
SUBQUERY with EXISTS
SUBQUERY with IN
JOIN
JOIN
JOIN 概述
INNER JOIN
LEFT JOIN
RIGHT JOIN
FULL JOIN
OUTER JOIN
NATURAL JOIN
With CTE
��查询
��查询
��查询概述
UNION
INTERSECT
MINUS
æ•°æ�®æ�§åˆ¶è¯è¨€ï¼ˆDCL)
æ•°æ�®æ�§åˆ¶è¯è¨€ï¼ˆDCL)
CREATE ACCOUNT
ALTER ACCOUNT
CREATE ROLE
CREATE USER
DROP ACCOUNT
DROP USER
DROP ROLE
GRANT
REVOKE
å…¶ä»–
å…¶ä»–
SHOW
SHOW
SHOW ACCOUNTS
SHOW DATABASES
SHOW CREATE TABLE
SHOW CREATE VIEW
SHOW TABLES
SHOW INDEX
SHOW COLLATION
SHOW COLUMNS
SHOW GRANT
SHOW VARIABLES
SET
SET
SET ROLE
USE
USE
USE DATABASE
Prepared
Prepared
Prepared 概述
PREPARE
EXECUTE
DEALLOCATE
Explain
Explain
EXPLAIN
EXPLAIN Output Format
Explain Analyze
��函数
��函数
ANY_VALUE
AVG
BIT_AND
BIT_OR
BIT_XOR
COUNT
GROUP_CONCAT
MAX
MEDIAN
MIN
SLEEP
STDDEV_POP
SUM
系统��
系统��
自定义��
数�类�
数�类�
数�类�概览
数�类�转�
TIMESTAMP 和 DATETIME 的自动�始化和更新
JSON 数�类�
BLOB 和 TEXT 数�类�
精确数值类�-DECIMAL
系统函数
系统函数
æ•°å¦ç±»
æ•°å¦ç±»
ABS()
ACOS()
ATAN()
CEIL()
COS()
COT()
EXP()
FLOOR()
LN()
LOG()
PI()
POWER()
ROUND()
SIN()
SINH()
TAN()
UUID()
日期时间类
日期时间类
CURDATE()
CURRENT_TIMESTAMP()
DATE()
DATE_ADD()
DATE_FORMAT()
DATE_SUB()
DATEDIFF()
DAY()
DAYOFYEAR()
EXTRACT()
FROM_UNIXTIME
MONTH()
TIMEDIFF()
TIMESTAMP()
TO_DATE()
UNIX_TIMESTAMP
UTC_TIMESTAMP()
WEEKDAY()
YEAR()
å—符串类
å—符串类
BIN()
BIT_LENGTH()
CHAR_LENGTH()
CONCAT()
CONCAT_WS()
EMPTY()
ENDSWITH()
FIELD()
FIND_IN_SET()
FORMAT()
HEX()
LEFT()
LENGTH()
LPAD()
LTRIM()
OCT()
REVERSE()
RPAD()
RTRIM()
SPACE()
STARTSWITH()
SUBSTRING()
SUBSTRING_INDEX()
TRIM()
系统�置
系统�置
通用�数�置
时区�置
系统表目录
��分类列表
使用�制
使用�制
MatrixOne 的 JDBC 功能支�列表
MatrixOne DDL è¯å�¥åˆ†åŒºæ”¯æŒ�的说æ˜�
MatrixOne 文件目录结�
故障诊æ–
故障诊æ–
慢查询
常用统计数�查询
数�库统计信�
审计
错误ç �
常è§�问题解ç”
常è§�问题解ç”
产�常�问题
部署常�问题
SQL 常�问题
版本�布纪�
版本�布纪�
版本�布��记录
v0.7.0
v0.6.0
v0.5.1
v0.5.0
v0.4.0
v0.3.0
v0.2.0
v0.1.0
å��è¯�术è¯è¡¨
社区贡献指�
社区贡献指�
快速贡献
贡献指�
贡献指�
有哪些贡献类�
贡献准备
报告 Issue
贡献代ç �
å®¡æ ¸ä¿®æ”¹
文档贡献
�出设计�案
代ç �规范
代ç �规范
ç¼–ç �规范
注释规范
�交规范
Table of contents
��阅读 👉
MatrixOne 文档
欢��到 MatrixOne 官方文档网站�
MatrixOne 是一款致力�“One Size Fits Most�的超��异�数�库。
MatrixOne 通过超è��å�ˆæ•°æ�®å¼•æ“�å®�ç�°å�•一数æ�®åº“系统支æŒ�事务å�‹ï¼ˆTP,Transactional Processing)ã€�分æ��å�‹ï¼ˆAP,Analytical Processing)ã€�æµ�å¼�(Streaming)ç‰å¤šç§�æ•°æ�®è´Ÿè½½ï¼Œé€šè¿‡å¼‚æ�„云å�Ÿç”Ÿæ�¶æ�„å®�ç�°å�•一数æ�®åº“系统支æŒ�公有云å�Ÿç”Ÿã€�ç§�有云ã€�边缘云部署和使用。ä»�而简化开å�‘è¿�维,消简数æ�®ç¢�片,æ��å�‡æ•°æ�®ç«¯åˆ°ç«¯å˜ç®—性能和开å�‘æ•�æ�·åº¦ã€‚
如æ�œä½ å�‘ç�°äº†ä»»ä½•文档问题,请直æ�¥åœ¨ GitHub 上创建 Issue 报告该问题,或者直æ�¥æ��出 PR æ�¥ä¿®å¤�ï¼�
��阅读 👉
概述
快速上手
�考指�
MatrixOne 简介
MatrixOne 安装部署
SQL �考指�
MatrixOne ��
MatrixOne 的 SQL 基本�作
v0.7.0 �布公告
MySQL 兼容性
使用 MatrixOne 完� SSB 测试
Next
MatrixOne 简介
Made with
Material for MkDocs
GitHub - matrixorigin/matrixone: Hyperconverged cloud-edge native database
GitHub - matrixorigin/matrixone: Hyperconverged cloud-edge native database
Skip to content
Toggle navigation
Sign in
Product
Actions
Automate any workflow
Packages
Host and manage packages
Security
Find and fix vulnerabilities
Codespaces
Instant dev environments
Copilot
Write better code with AI
Code review
Manage code changes
Issues
Plan and track work
Discussions
Collaborate outside of code
Explore
All features
Documentation
GitHub Skills
Blog
Solutions
For
Enterprise
Teams
Startups
Education
By Solution
CI/CD & Automation
DevOps
DevSecOps
Resources
Learning Pathways
White papers, Ebooks, Webinars
Customer Stories
Partners
Open Source
GitHub Sponsors
Fund open source developers
The ReadME Project
GitHub community articles
Repositories
Topics
Trending
Collections
Pricing
Search or jump to...
Search code, repositories, users, issues, pull requests...
Search
Clear
Search syntax tips
Provide feedback
We read every piece of feedback, and take your input very seriously.
Include my email address so I can be contacted
Cancel
Submit feedback
Saved searches
Use saved searches to filter your results more quickly
Name
Query
To see all available qualifiers, see our documentation.
Cancel
Create saved search
Sign in
Sign up
You signed in with another tab or window. Reload to refresh your session.
You signed out in another tab or window. Reload to refresh your session.
You switched accounts on another tab or window. Reload to refresh your session.
Dismiss alert
matrixorigin
/
matrixone
Public
Notifications
Fork
250
Star
1.6k
Hyperconverged cloud-edge native database
docs.matrixorigin.cn/en
License
Apache-2.0 license
1.6k
stars
250
forks
Branches
Tags
Activity
Star
Notifications
Code
Issues
598
Pull requests
35
Discussions
Actions
Projects
1
Security
Insights
Additional navigation options
Code
Issues
Pull requests
Discussions
Actions
Projects
Security
Insights
matrixorigin/matrixone
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
mainBranchesTagsGo to fileCodeFolders and filesNameNameLast commit messageLast commit dateLatest commit History7,153 Commits.github.github LICENSESLICENSES cgocgo cmdcmd docs/rfcsdocs/rfcs etcetc optoolsoptools pkgpkg protoproto test/distributedtest/distributed .dockerignore.dockerignore .gitignore.gitignore .golangci.yml.golangci.yml .licenserc.yml.licenserc.yml .markdownlint.yaml.markdownlint.yaml CODEOWNERSCODEOWNERS CODE_OF_CONDUCT.mdCODE_OF_CONDUCT.md CONTRIBUTING.mdCONTRIBUTING.md LICENSELICENSE MakefileMakefile README.mdREADME.md README_CN.mdREADME_CN.md go.modgo.mod go.sumgo.sum View all filesRepository files navigationREADMECode of conductApache-2.0 license
Docs
||
Official Website
English
||
简体中文
Connect with us:
If you are interested in MatrixOne project, please kindly give MatrixOne a triple `Star`, `Fork` and `Watch`, Thanks!
Contents
What is MatrixOne
KeyFeatures
User Values
Architecture
Quick start
Contributing
License
What is MatrixOne?
MatrixOne is a hyper-converged cloud & edge native distributed database with a structure that separates storage, computation, and transactions to form a consolidated HSTAP data engine. This engine enables a single database system to accommodate diverse business loads such as OLTP, OLAP, and stream computing. It also supports deployment and utilization across public, private, and edge clouds, ensuring compatibility with diverse infrastructures.
Key Features
Hyper-converged Engine
Monolithic Engine
HTAP data engine that supports a mix of workloads such as TP, AP, time series, and machine learning within a single database.
Built-in Streaming Engine
Built-in stream computing engine that enables real-time data inflow, transformation, and querying.
☁️ Cloud & Edge Native
Storage-Computation Separation Structure
Separates the storage, computation, and transaction layers, leveraging a containerized design for ultimate scalability.
Multi-Infrastructure Compatibility
MatrixOne provides industry-leading latency control with optimized consistency protocol.
Extreme Performance
High-Performance Execution Engine
The flexible combination of Compute Node and Transaction node accommodates point queries and batch processing, delivering peak performance for OLTP and OLAP.
Enterprise-Grade High Availability
Establishes a consistently shared log under a leading Multi-Raft replication state machine model. It ensures high cluster availability while preventing data duplication, thus achieving RTO=0.
️ Ease of Use
Built-in Multi-Tenancy Capability
Offers inherent multi-tenancy, where tenants are isolated from each other, independently scalable yet uniformly manageable. This feature simplifies the complexity of multi-tenancy design in upper-level applications.
High Compatibility with MySQL
MatrixOne exhibits high compatibility with MySQL 8.0, including transmission protocol, SQL syntax, and ecosystem tools, lowering usage and migration barriers.
Cost-Effective
Efficient Storage Design
Employs cost-effective object storage as primary storage. High availability can be achieved through erasure coding technology with only about 150% data redundancy. It also provides high-speed caching capabilities, balancing cost and performance via a multi-tiered storage strategy that separates hot and cold data.
Flexible Resource Allocation
Users can adjust the resource allocation ratio for OLTP and OLAP according to business conditions, maximizing resource utilization.
Enterprise-Level Security and Compliance
MatrixOne employs Role-Based Access Control (RBAC), TLS connections, and data encryption to establish a multi-tiered security defense system, safeguarding enterprise-level data security and compliance.
User Values
Simplify Database Management and Maintenance
With business evolution, the number of data engines and middleware enterprises employ increases. Each data engine relies on 5+ essential components and stores 3+ data replicas. Each engine must be independently installed, monitored, patched, and upgraded. This results in high and uncontrollable data engine selection, development, and operations costs. Under MatrixOne's unified architecture, users can employ a single database to serve multiple data applications, reducing the number of introduced data components and technology stacks by 80% and significantly simplifying database management and maintenance costs.
Reduce Data Fragmentation and Inconsistency
Data flow and copy between databases make data sync and consistency increasingly tricky. The unified and incrementally materialized view of MatrixOne allows the downstream to support real-time upstream updates and achieve end-to-end data processing without redundant ETL processes.
Decoupling Data Architecture From Infrastructure
Currently, the architecture design across different infrastructures is complicated, causing new data silos between cloud and edge, cloud and on-premise. MatrixOne is designed with a unified architecture to support simplified data management and operations across different infrastructures.
Extremely Fast Complex Query Performance
Poor business agility results from slow, complex queries and redundant intermediate tables in current data warehousing solutions. MatrixOne supports blazing-fast experience even for star and snowflake schema queries, improving business agility with real-time analytics.
Solid OLTP-like OLAP Experience
Current data warehousing solutions have the following problems: high latency and absence of immediate visibility for data updates. MatrixOne brings OLTP (Online Transactional Processing) level consistency and high availability to CRUD operations in OLAP (Online Analytical Processing).
Seamless and Non-disruptive Scalability
It is challenging to balance performance and scalability to achieve an optimum price-performance ratio in current data warehousing solutions. MatrixOne's disaggregated storage and compute architecture makes it fully automated and efficient to scale in/out and up/down without disrupting applications.
Architecture
MatrixOne's architecture is as below:
For more details, you can checkout MatrixOne Architecture Design.
⚡️ Quick start
⚙️ Install MatrixOne
MatrixOne supports Linux and MacOS. You can install MatrixOne either by building from source or using docker.
For other installation types, please refer to MatrixOne installation for more details.
Building from source
Step 1. Install Dependency
Install Go (version 1.20 is required)
Click Go Download and install to enter its official documentation, and follow the installation steps to complete the Go installation.
Install GCC/Clang
Click GCC Download and install to enter its official documentation, and follow the installation steps to complete the GCC installation.
Install Git
Install Git via the Official Documentation.
Install and configure MySQL Client
Click MySQL Community Downloads to enter into the MySQL client download and installation page. According to your operating system and hardware environment.Configure the MySQL client environment variables.
Step 2. Install the mo_ctl tool
mo_ctl is a command-line tool for deploying, installing, and managing MatrixOne. It is very convenient to perform various operations on MatrixOne.
The mo_ctl tool can be installed through the following command:
wget https://raw.githubusercontent.com/matrixorigin/mo_ctl_standalone/main/install.sh && sudo -u $(whoami) bash +x ./install.sh
See mo_ctl Tool for complete usage details.
Step 3. Get MatrixOne code
Depending on your needs, choose whether you want to keep your code up to date, or if you want to get the latest stable version of the code.
Option 1: Get the MatrixOne(Develop Version)
The main branch is the default branch, the code on the main branch is always up-to-date but not stable enough.
mo_ctl deploy main
Option 2: Get the MatrixOne(Stable Version)
If you want to get the latest stable version code released by MatrixOne, please switch to the branch of version 1.1.1 first.
mo_ctl deploy v1.1.1
Step 4. Launch MatrixOne server
Launch the MatrixOne service through the mo_ctl start command.The relevant operation logs of MatrixOne will be in /data/mo/logs/.
Step 5. Connect to MatrixOne
One-click connection to MatrixOne service through mo_ctl connect command.
Tips: The initial startup of MatrixOne approximately takes 20 to 30 seconds. After a brief wait, you can connect to MatrixOne using the MySQL client.
Using docker
Step 1: Download and install Docker
Click Get Docker, enter into the Docker's official document page, depending on your operating system, download and install the corresponding Docker. It is recommended to choose Docker version 20.10.18 or later and strive to maintain consistency between the Docker client and Docker server versions.
Step 2: Create and run the container of MatrixOne
It will pull the image from Docker Hub if not exists. You can choose to pull the stable version image or the develop version image.
Stable Version Image(1.1.1 version)
docker pull matrixorigin/matrixone:1.1.1
docker run -d -p 6001:6001 --name matrixone matrixorigin/matrixone:1.1.1
If you are using the network in mainland China, you can pull the MatrixOne stable version image on Alibaba Cloud:
docker pull registry.cn-shanghai.aliyuncs.com/matrixorigin/matrixone:1.1.1
docker run -d -p 6001:6001 --name matrixone registry.cn-shanghai.aliyuncs.com/matrixorigin/matrixone:1.1.1
Develop Version Image
If you want to pull the develop version image, see Docker Hub, get the image tag. An example as below:
docker pull matrixorigin/matrixone:nightly-commitnumber
docker run -d -p 6001:6001 --name matrixone matrixorigin/matrixone:nightly-commitnumber
If you are using the network in mainland China, you can pull the MatrixOne develop version image on Alibaba Cloud:
docker pull registry.cn-shanghai.aliyuncs.com/matrixorigin/matrixone:nightly-commitnumber
docker run -d -p 6001:6001 --name matrixone registry.cn-shanghai.aliyuncs.com/matrixorigin/matrixone:nightly-commitnumber
Note: The nightly version is updated once a day.
Step 3: Connecting to MatrixOne server
Install and configure MySQL Client
Click MySQL Community Downloads to enter into the MySQL client download and installation page. According to your operating system and hardware environment.Configure the MySQL client environment variables.
Note: MySQL client version 8.0.30 or later is recommended.
Connect to MatrixOne
You can use the MySQL command-line client to connect to MatrixOne server. Open a new terminal window and enter the following command:
mysql -h 127.0.0.1 -P 6001 -uroot -p
Enter password: # The default initial password is 111
Currently, MatrixOne only supports the TCP listener.
Note: The login account in the above code snippet is the initial account; please change the initial password after logging in to MatrixOne; see Password Management.
Contributing
Contributions to MatrixOne are welcome from everyone.
See Contribution Guide for details on submitting patches and the contribution workflow.
All contributors
Nnsgmsone
XuPeng-SH
Fagongzi
Reusee
Ouyuanning
Daviszhen
BRong Njam
Maomao
Iamlinjunhong
Jiangxinmeng1
Jianwan0214
GreatRiver
Wei Ziran
Chenmingsong
Dengn
Aptend
Lni
Jackson
YANGGMM
Qingxinhome
Nitao
BroccoliSpicy
Mooleetzi
Fengttt
Kutori
Prinz
Brown
Dongdongyang
Boyu Tan
Cui Guoke
Jin Hai
Matthew
Bbbearxyz
Tianyahui-python
Wanglei
Triump2020
Heni02
Wanhanbo
IceTTTT
LiuBo
刘陶峰
Ariznawlll
GoodMan-code
Yingfeng
Mklzl
Jensen
DomingoZhang
Arjun Sunil Kumar
Nuo Xu
Aressu1985
Mo-bot
Zengyan1
Aylei
NoneBack
Otter
Richelle Guice
Ryan
Elijah
MatrixAdventurer
NTH19
Anitajjx
Whileskies
BePPPower
Jiajun Huang
Morranto
Y7n05h
Songjiayang
Abirdcfly
Binglin Chang
Charlie17Li
DanielZhangQD
Eng Zer Jun
Eric Shen
Fungx
Kirito
Jason Peng
O2
RinChanNOW!
TheR1sing3un
XuQing Chai
Yiliang Qiu
ZeYu Zhao
ZheNing Hu
Zijie Lu
Zoran Pandovski
Ajian
Binxxi
Coderzc
ColdWater
Dr-lab
Florashi181
Hiyoyolumi
Jinfu
Liuguangliang
Lokax
Lyfer233
Sundyli
Supermario1990
Tjie
Toms
Wuliuqii
Xiyuedong
Yclchuxue
Zt
License
MatrixOne is licensed under the Apache License, Version 2.0.
About
Hyperconverged cloud-edge native database
docs.matrixorigin.cn/en
Topics
go
distributed-systems
streaming
sql
database
olap
distributed-database
cloud-native
htap
hyperconverged
one-size-fits-all
Resources
Readme
License
Apache-2.0 license
Code of conduct
Code of conduct
Activity
Custom properties
Stars
1.6k
stars
Watchers
34
watching
Forks
250
forks
Report repository
Releases
16
MatrixOne-v1.1.1
Latest
Feb 4, 2024
+ 15 releases
Packages
0
No packages published
Contributors
117
+ 103 contributors
Languages
Go
95.9%
PLpgSQL
2.0%
Yacc
1.3%
C
0.3%
Python
0.2%
Assembly
0.1%
Other
0.2%
Footer
© 2024 GitHub, Inc.
Footer navigation
Terms
Privacy
Security
Status
Docs
Contact
Manage cookies
Do not share my personal information
You can’t perform that action at this time.
MatrixOne - 全新 HSTAP 国产开源数据库 | MatrixOrigin
ixOne - 全新 HSTAP 国产开源数据库 | MatrixOriginMatrixOne Cloud 即将开放公测,点击立即预约产品公测MatrixOne 企业版企业级超融合异构数据库,稳定高效,专业支持MatrixOne Cloud公测全托管云原生数据平台,简单易用,Serverless 按量计费解决方案SaaS 应用为 SaaS 应用提供极简、高效、低成本的数据服务一站式时序一站式时序解决方案应对海量 IoT 数据挑战实时数仓实时数仓解决方案帮助企业获得极速洞见HTAPHTAP 解决方案助力业务分析系统一体化湖仓一体湖仓一体解决方案帮助用户高效搭建轻量级数据中台BI/AIBI/AI 一体化方案帮助企业快速构建大模型智能化应用文档中心博客公司关于我们加入我们社区新手导航近期活动EN预约公测EN新一代超融合异构数据库灵活部署、专业支持、共同成长立即咨询MatrixOne Cloud 公测活动预约中,点击进入! >存算分离解耦架构将存储、计算、事务三层解耦,以极致灵活的技术架构来平衡及优化不同的工作负载和冲突。高性价比存储引擎统一引擎支持 OLTP/OLAP 等混合工作负载,兼容多种存储介质,通过冷热分离多级存储方案持续降低成本。高性能执行引擎通过 Compute Node 和 Transaction Node 的灵活配合兼顾点查询与批处理,对于星型、雪花等复杂查询都具备极速分析体验。分布式高可用在领先的 Multi-Raft 复制状态机模型之上建立强一致共享日志,可在避免数据重复复制的同时确保集群的高可用。企业级安全与合规采用用户角色访问控制(RBAC)、TLS 连接、数据加密等方法,建立多级安全防护体系,保障企业数据安全与合规。MySQL 兼容性MatrixOne 与 MySQL8.0 高度兼容,包括传输协议、SQL 语法和生态工具等。社区版永久免费,体验最新技术特性快速迭代验证,共同进步成长数百名开发爱好者,助力社区贡献查看技术文档 >社区贡献指南 >加入 MatrixOne Beta 用户计划 >立即下载企业版专业技术支持,深化业务交流专属方案制定,持续增值服务专家支持服务,极速故障响应加入 MatrixOne Beta 用户计划 >立即咨询社区版社区版企业版永久免费,体验最新技术特性快速迭代验证,共同进步成长数百名开发爱好者,助力社区贡献查看技术文档 >社区贡献指南 >加入 MatrixOne Beta 用户计划 >立即下载超融合创新架构MatrixOne 作为一款新型超融合异构云原生数据库管理系统,通过全新设计研发的统一分布式数据库引擎,能够同时灵活支持 OLTP、OLAP、Streaming 等不同工作负载的数据管理和应用,用户可以在公有云、自建数据库中心和边缘节点上无缝部署和运行。极简更加可靠的高性能数据写入数据写入支持事务写入吞吐量可线性拓展更高性价比的数据储存一份存储减少数据冗余冷热分离降低存储成本极速的数据查询性能健全的 SQL 能力极致的查询性能,兼顾点查询与批处理实时库内 ETL,无需再做数据导出与导入内置流引擎,无缝访问库表数据实时更新即可见灵活TP 与 AP 工作负载资源可完全隔离容器之间负载与数据完全隔离数据新鲜度可配置,保障 TP/AP 互不影响TP 与 AP 工作负载资源配比可灵活调整与拓展支持 TP 与 AP 工作负载,资源独立拓展灵活按需调整不同负载的资源配比分布式数据库的高可用与强拓展Raft 强一致性协议确保高可用存算分离,任意伸缩MySQL 兼容与主流 ID 支持支持 MySQL 客户端及语法,低迁移门槛兼容主流 ORM,低开发门槛极简更加可靠的高性能数据写入数据写入支持事务写入吞吐量可线性拓展更高性价比的数据储存一份存储减少数据冗余冷热分离降低存储成本极速的数据查询性能健全的 SQL 能力极致的查询性能,兼顾点查询与批处理实时库内 ETL,无需再做数据导出与导入内置流引擎,无缝访问库表数据实时更新即可见灵活TP 与 AP 工作负载资源可完全隔离容器之间负载与数据完全隔离数据新鲜度可配置,保障 TP/AP 互不影响TP 与 AP 工作负载资源配比可灵活调整与拓展支持 TP 与 AP 工作负载,资源独立拓展灵活按需调整不同负载的资源配比分布式数据库的高可用与强拓展Raft 强一致性协议确保高可用存算分离,任意伸缩MySQL 兼容与主流 ID 支持支持 MySQL 客户端及语法,低迁移门槛兼容主流 ORM,低开发门槛万物归一,化繁为简50,000,000 次查询,0 元来试,即将开放公测立即预约MatrixOne 社区了解更多MatrixOne 更多信息产品MatrixOneMatrixOne Cloud资源文档社区GitHub公司关于我们加入我们联系我们博客微信公众号Copyright © 2024 矩阵起源(深圳)信息科技有限公司粤公安网备 44030402004672号 | 粤ICP备20210448MatrixOne 简介 - MatrixOne 中文文档
MatrixOne 简介 - MatrixOne 中文文档
Skip to content
MatrixOne 中文文档
MatrixOne 简介
English
中文简体
Initializing search
matrixorigin/matrixone
MatrixOne
MatrixOne 中文文档
matrixorigin/matrixone
MatrixOne
MatrixOne
主页
关于 MatrixOne
关于 MatrixOne
MatrixOne 简介
MatrixOne 简介
Table of contents
核心特性
超融合引擎
异构云原生
极致性能
简单易用
高性价比
企业级安全合规
用户价值
应用场景
相关信息
MatrixOne 功能清单
MatrixOne 功能概述
MatrixOne 功能概述
混合负载 HTAP
多租户
极致扩展性
高性价比
高可用
MySQL 兼容性
MatrixOne 技术架构
MatrixOne 技术架构
整体架构概述
存储引擎架构详解
Logservice 架构详解
Proxy 架构详解
数据缓存及冷热数据分离架构详解
最新动态
快速开始
快速开始
单机部署 MatrixOne
单机部署 MatrixOne
单机部署 MatrixOne 概述
在 macOS 上部署
在 macOS 上部署
使用源代码部署
使用二进制包部署
使用 Docker 部署
在 Linux 上部署
在 Linux 上部署
使用源代码部署
使用二进制包部署
使用 Docker 部署
SQL 的基本操作
开发指南
开发指南
概述
连接到 MatrixOne
连接到 MatrixOne
客户端工具连接
Java 连接
Java 连接
JDBC 连接
Java ORMs 连接
Python 连接
Golang 连接
数据库模式设计
数据库模式设计
概述
创建数据库
创建表
创建视图
创建临时表
创建次级索引
创建约束
创建约束
约束概述
NOT NULL 非空约束
UNIQUE KEY 唯一约束
PRIMARY KEY 主键约束
FOREIGN KEY 外键约束
AUTO INCREMENT 自增约束
数据写入
数据写入
插入数据
插入数据
INSERT 插入
批量插入
批量插入
批量插入概述
插入 csv 文件
插入 jsonlines 文件
从对象存储导入文件
Source 插入
更新数据
删除数据
预处理
数据写出
数据写出
SELECT INTO 写出
MODUMP 工具写出
数据读取
数据读取
单表读取
多表连接查询
子查询
视图
公共表表达式
窗口函数
租户设计
租户设计
多租户概述
发布订阅
事务
事务
事务通用概念
MatrixOne 的事务
MatrixOne 的事务
概述
显式事务
隐式事务
悲观事务
乐观事务
隔离级别
MVCC
如何使用 MatrixOne 事务
如何使用 MatrixOne 事务
使用指南
应用场景
应用开发实例
应用开发实例
Java 基础示例
SpringBoot 和 JPA 基础示例
SpringBoot 和 MyBatis 基础示例
Python 基础示例
SQLAlchemy 基础示例
Golang 基础示例
部署指南
部署指南
集群拓扑规划
集群拓扑规划
体验环境
最小生产环境
推荐生产环境
集群部署指南
集群运维管理
集群运维管理
启动与停服下线
版本升级
健康检查与资源监控
集群扩缩容
负载与租户隔离
本地对象存储导入数据
Operator 管理
运维
运维
备份与恢复
数据挂载
数据挂载
挂载目录到 Docker 容器
数据迁移
数据迁移
将数据迁移至 MatrixOne 概述
将数据从 MySQL 迁移至 MatrixOne
将数据从 Oracle 迁移至 MatrixOne
将数据从 SQL Server 迁移至 MatrixOne
测试
测试
性能测试
性能测试
SSB 测试
TPCH 测试
TPCC 测试
测试工具
测试工具
MO-Tester
MO-Tester 规范要求
性能调优
性能调优
SQL 性能调优方法概述
MatrixOne 执行计划
MatrixOne 执行计划
MatrixOne 执行计划概述
使用 EXPLAIN 理解执行计划
JOIN 查询的执行计划
子查询的执行计划
聚合查询的执行计划
视图的执行计划
性能调优最佳实践
性能调优最佳实践
使用 Cluster by 语句调优
通过扩展 CN 提升性能
安全与权限
安全与权限
安全与权限概览
身份鉴别与认证
密码管理
访问控制
访问控制
权限管理概述
场景案例
最佳实践
操作指南
操作指南
权限管理操作概述
创建租户,验证资源隔离
新租户创建用户、创建角色和授权
数据加密传输
安全审计
参考手册
参考手册
系统变量
系统变量
系统变量概述
系统变量参数
系统变量参数
SQL 模式
保存查询结果支持
时区支持
大小写敏感支持
自定义变量
SQL 结构与语法
SQL 结构与语法
关键字
注释
数据类型
数据类型
数据类型概览
数据类型转换
TIMESTAMP 和 DATETIME 的自动初始化和更新
JSON 数据类型
BLOB 和 TEXT 数据类型
UUID 数据类型
精确数值类型-DECIMAL
SQL 目录
SQL 目录
数据定义语言(DDL)
数据定义语言(DDL)
CREATE DATABASE
CREATE INDEX
CREATE TABLE
CREATE EXTERNAL TABLE
CREATE PUBLICATION
CREATE SEQUENCE
CREATE...FROM...PUBLICATION...
CREATE VIEW
ALTER TABLE
ALTER PUBLICATION
ALTER VIEW
DROP DATABASE
DROP INDEX
DROP TABLE
DROP PUBLICATION
DROP SEQUENCE
DROP VIEW
TRUNCATE TABLE
数据修改语言(DML)
数据修改语言(DML)
INSERT
INSERT INTO SELECT
INSERT ON DUPLICATE KEY UPDATE
DELETE
UPDATE
LOAD DATA
Information Functions
Information Functions
CURRENT_USER()
CURRENT_ROLE()
LAST_QUERY_ID()
LAST_INSERT_ID()
数据查询语言(DQL)
数据查询语言(DQL)
SELECT
SUBQUERY
SUBQUERY
SUBQUERY 概述
Derived Tables
子查询与比较操作符的使用
SUBQUERY with ANY or SOME
SUBQUERY with ALL
SUBQUERY with EXISTS
SUBQUERY with IN
JOIN
JOIN
JOIN 概述
INNER JOIN
LEFT JOIN
RIGHT JOIN
FULL JOIN
OUTER JOIN
NATURAL JOIN
With CTE
联合查询
联合查询
联合查询概述
UNION
INTERSECT
MINUS
数据控制语言(DCL)
数据控制语言(DCL)
CREATE ACCOUNT
ALTER ACCOUNT
CREATE ROLE
CREATE USER
ALTER USER
DROP ACCOUNT
DROP USER
DROP ROLE
GRANT
REVOKE
其他
其他
SHOW
SHOW
SHOW ACCOUNTS
SHOW DATABASES
SHOW CREATE TABLE
SHOW CREATE VIEW
SHOW CREATE PUBLICATION
SHOW TABLES
SHOW INDEX
SHOW COLLATION
SHOW COLUMNS
SHOW FUNCTION STATUS
SHOW GRANT
SHOW PUBLICATIONS
SHOW ROLES
SHOW SEQUENCES
SHOW SUBSCRIPTIONS
SHOW VARIABLES
SET
SET
SET ROLE
USE
USE
USE DATABASE
KILL
Prepared
Prepared
PREPARE
EXECUTE
DEALLOCATE
Explain
Explain
EXPLAIN
EXPLAIN Output Format
Explain Analyze
函数与操作符
函数与操作符
运算符
运算符
INTERVAL
Operators
Operators
运算符概述
运算符的优先级
算数运算符
算数运算符
算数运算符概述
%,MOD
*
+
-
-
/
DIV
赋值运算符
赋值运算符
赋值运算符概述
=
二进制运算符
二进制运算符
二进制运算符概述
&
>>
<<
^
|
~
强制转换函数和运算符
强制转换函数和运算符
强制转换函数和运算符概述
CAST
CONVERT
比较函数和运算符
比较函数和运算符
比较函数和运算符概述
>
>=
<
<>,!=
<=
=
BETWEEN ... AND ...
IN
IS
IS NOT
IS NOT NULL
IS NULL
LIKE
NOT BETWEEN ... AND ...
NOT LIKE
COALESCE
控制流函数
控制流函数
控制流函数概述
CASE WHEN
IF
逻辑运算符
逻辑运算符
逻辑运算符概述
AND,&&
NOT,!
OR
XOR
函数
函数
聚合函数
聚合函数
ANY_VALUE
AVG
BIT_AND
BIT_OR
BIT_XOR
COUNT
GROUP_CONCAT
MAX
MEDIAN
MIN
STDDEV_POP
SUM
VARIANCE
日期时间类
日期时间类
CURDATE()
CURRENT_TIMESTAMP()
DATE()
DATE_ADD()
DATE_FORMAT()
DATE_SUB()
DATEDIFF()
DAY()
DAYOFYEAR()
EXTRACT()
FROM_UNIXTIME
MONTH()
TIMEDIFF()
TIMESTAMP()
TO_DATE()
UNIX_TIMESTAMP
UTC_TIMESTAMP()
WEEKDAY()
YEAR()
数学类
数学类
ABS()
ACOS()
ATAN()
CEIL()
COS()
COT()
EXP()
FLOOR()
LN()
LOG()
PI()
POWER()
ROUND()
RAND()
SIN()
SINH()
TAN()
字符串类
字符串类
BIN()
BIT_LENGTH()
CHAR_LENGTH()
CONCAT()
CONCAT_WS()
EMPTY()
ENDSWITH()
FIELD()
FIND_IN_SET()
FORMAT()
HEX()
INSTR()
LEFT()
LENGTH()
LPAD()
LTRIM()
OCT()
REVERSE()
RPAD()
RTRIM()
SPACE()
SPLIT_PART()
STARTSWITH()
SUBSTRING()
SUBSTRING_INDEX()
TRIM()
正则表达式
正则表达式
正则表达式概述
NOT REGEXP
REGEXP_INSTR()
REGEXP_LIKE()
REGEXP_REPLACE()
REGEXP_SUBSTR()
表函数
表函数
UNNEST()
窗口函数
窗口函数
DENSE_RANK()
RANK()
ROW_NUMBER()
JSON 函数
其他函数
其他函数
SLEEP
UUID()
系统运维函数
系统运维函数
PURGE_LOG()
系统配置
系统配置
通用参数配置
系统表目录
权限分类列表
使用限制
使用限制
MatrixOne 的 JDBC 功能支持列表
MatrixOne DDL 语句分区支持的说明
MatrixOne 文件目录结构
MatrixOne 工具
MatrixOne 工具
mo_ctl 工具
故障诊断
故障诊断
慢查询
常用统计数据查询
数据库统计信息
错误码
常见问题解答
常见问题解答
产品常见问题
部署常见问题
SQL 常见问题
版本发布纪要
版本发布纪要
版本发布历史记录
v0.8.0
v0.7.0
v0.6.0
v0.5.1
v0.5.0
v0.4.0
v0.3.0
v0.2.0
v0.1.0
名词术语表
社区贡献指南
社区贡献指南
快速贡献
贡献指南
贡献指南
有哪些贡献类型
贡献准备
报告 Issue
贡献代码
审核修改
文档贡献
提出设计草案
代码规范
代码规范
编码规范
注释规范
提交规范
Table of contents
核心特性
超融合引擎
异构云原生
极致性能
简单易用
高性价比
企业级安全合规
用户价值
应用场景
相关信息
MatrixOne 简介
MatrixOne 是一款超融合异构分布式数据库,通过云原生化和存储、计算、事务分离的架构构建 HSTAP 超融合数据引擎,实现单一数据库系统支持 OLTP、OLAP、流计算等多种业务负载,并且支持公有云、私有云、边缘云部署和使用,实现异构基础设施的兼容。
MatrixOne 具备实时 HTAP,多租户,流式计算,极致扩展性,高性价比,企业级高可用及 MySQL 高度兼容等重要特性,通过为用户提供一站式超融合数据解决方案,可以将过去由多个数据库完成的工作合并到一个数据库里,从而简化开发运维,消减数据碎片,提高开发敏捷度。
MatrixOne 适用于需要实时数据写入,数据规模较大,负载波动频繁,同时拥有流程型业务和分析型业务的场景,比如移动互联网 APP、IoT 数据应用、实时数据仓库、SaaS 平台等。
核心特性
超融合引擎
超融合引擎
HTAP 数据引擎,单数据库即可支持 TP、AP、时序、机器学习等混合工作负载。
内置流引擎
内置流计算引擎,支持实时数据流入、实时数据转换及实时数据查询。
异构云原生
存算分离架构
将存储、计算、事务三层解耦,通过完全容器化的设计来实现极致扩展。
多基础设施兼容
支持跨机房协同/多地协同/云边协同,实现无感知扩缩容,提供高效统一的数据管理。
极致性能
高性能执行引擎
通过 Compute Node 和 Data Node 的灵活配合兼顾点查询与批处理,对于 OLTP 和 OLAP 都具备极致性能。
企业级高可用
在领先的 Multi-Raft 复制状态机模型下建立强一致共享日志,可在避免数据重复的同时保证集群的高可用。
简单易用
自带多租户能力
自带多租户功能,租户既相互隔离,独立扩缩容又可进行统一管理,简化上层应用的多租户设计复杂度。
MySQL 高度兼容
MatrixOne 与 MySQL8.0 高度兼容,包括传输协议,SQL 语法和生态工具,降低使用和迁移门槛。
高性价比
高效存储设计
以成本低廉的对象存储作为主存储,通过纠删码技术仅需要 150%左右的数据冗余即可实现高可用,同时提供高速缓存能力,通过冷热分离多级存储方案兼顾成本和性能。
资源灵活调配
用户可以根据业务情况自由调整为 OLTP 及 OLAP 分配的资源比例,实现资源最大化利用。
企业级安全合规
采用用户角色访问控制(RBAC)、TLS 连接、数据加密等手段,建立多级安全防护体系,保障企业级数据安全和合规。
用户价值
简化数据开发和运维
随着业务发展,企业使用的数据引擎和中间件越来越多,而每一个数据引擎平均依赖 5+ 个基础组件,存储 3+ 个数据副本,每一个数据引擎都要各自安装、监控、补丁和升级。这些都导致数据引擎的选型、开发及运维成本高昂且不可控。在 MatrixOne 的一体化架构下,用户使用单个数据库即可服务多种数据应用,引入的数据组件和技术栈减少 80%,大大简化了数据库管理和维护的成本。
消减数据碎片和不一致
在既有复杂的系统架构内,存在多条数据管道多份数据存储冗余。数据依赖复杂,导致数据更新维护复杂,上下游数据不一致问题频发,人工校对难度增大。MatrixOne 的高内聚架构和独有的增量物化视图能力,使得下游可以支持上游数据的实时更新,摆脱冗余的 ETL 流程,实现端到端实时数据处理。
无需绑定基础设施
因为基础设施的碎片化,企业的私有化数据集群和公有云数据集群之间数据架构和建设方案割裂,数据迁移成本高。而数据上云一旦选型确定数据库厂商,后续的集群扩容、其他组件采购等都将被既有厂商绑定。MatrixOne 提供统一的云边基础架构和高效统一的数据管理,企业数据架构不再被基础设施绑定,实现单数据集群跨云无感知扩缩容,提升性价比。
极速的分析性能
目前,由于缓慢的复杂查询性能以及冗余的中间表,数据仓库在业务敏捷性上的表现不尽人意,大量宽表的创建也严重影响迭代速度。MatrixOne 通过特有的因子化计算和向量化执行引擎,支持极速的复杂查询,单表、星型和雪花查询都具备极速分析性能。
像 TP 一样可靠的 AP 体验
传统数据仓库数据更新代价非常高,很难做到数据更新即可见。在营销风控,无人驾驶,智能工厂等实时计算要求高的场景或者上游数据变化快的场景中,当前的大数据分析系统无法支持增量更新,往往需要做全量的更新,耗时耗力。MatrixOne 通过提供跨存储引擎的高性能全局分布式事务能力,支持条级别的实时增量更新,在保证极速分析性能的同时支持更新、删除和实时点查询。
不停服自动扩缩容
传统数仓无法兼顾性能和灵活度,性价比无法做到最优。MatrixOne 基于存算分离的技术架构,支持存储节点与计算节点独立扩缩容,高效应对负载变化。
应用场景
需要可扩展性及分析报表能力的传统应用系统场景
企业常用的业务系统,如 OA,ERP,CRM 等系统随着业务的发展数据量增大,传统的单机数据库无法满足其性能需求,尤其在特殊时间点的业务分析需求,很多企业会专门配备一套分析数据库系统来满足月末,季末等重要节点的统计报表需求。这种场景采用 MatrixOne 数据库可以用一套数据库同时满足业务系统和分析系统的需求,同时具备强大的扩展性,随着业务增长可以无缝扩容。
需要实时分析能力的看板、BI 报表场景
针对企业典型的 OLAP 类型应用,如看板、BI 报表等分析系统,往往需要进行海量数据的分析,数据量一旦较为庞大则会面临性能瓶颈,导致时效性较差。MatrixOne 具备强大的分析性能和可扩展能力,可以针对各类复杂和数据量庞大的 SQL 查询进行加速,获得秒级体验的效果,提高企业决策分析的敏捷度。
海量异构数据实时流入和加工应用的数据平台场景
随着传感器和网络技术的大量应用,海量的各类 IoT 设备生产了大量的数据,比如制造业工厂产线,新能源汽车,城市安防监控摄像头等等,其规模可能轻易能达到数百 TB 甚至 PB 级别,而对数字化的需求也越来越多的要求企业存储和利用这些数据。但是传统的数据库方案无法满足如此海量且大规模的实时数据写入,以及加工应用的场景。MatrixOne 具备强大的流式数据写入和加工的能力,同时强大的可扩展性可以适应任意规模的负载和数据量,可以完全满足该场景的需求。
企业内部各类数据汇聚的数据中台场景
中大型企业往往有很多套业务系统,为了统一分析和打通各类数据,很多企业会建设一个打通各个系统数据源的数据中台,以全面的了解企业的整体状况。传统承载数据中台的解决方案都是基于 Hadoop 体系,但是 Hadoop 组件极为复杂,有较高的开发和运维门槛,对于很多企业来说成本太高。MatrixOne 的一站式 HTAP 架构可以非常方便的以使用 MySQL 一样的形式来使用一个数据中台,直接在 MatrixOne 中对海量数据进行 SQL 分析获得报表,极大的降低了成本。
互联网业务波动剧烈且频繁的业务场景
对于游戏,电商,文娱,社交,新闻等互联类应用来说,用户数量庞大且业务波动剧烈而频繁,在热门事件发生的时候,往往需要大量的计算资源来支撑业务需求。MatrixOne 完全云原生化的架构具备超强的扩展性,可以跟随业务的变化自动的快速扩缩容,极大的降低用户的运维难度。
企业级 SaaS 服务业务场景
企业级 SaaS 应用在近几年成爆发式的增长趋势,SaaS 的应用开发中都需要考虑自己的多租户模型,传统的方案中会有多租户共享数据库实例和单租户独享数据库实例两种模式,但是会面临管理成本和隔离性的两难选择。MatrixOne 自带多租户能力,租户之间天然负载隔离且可以独立扩展,同时又提供了统一管理能力,可以兼顾企业对成本,管理简易度和隔离性的需求,是 SaaS 应用的最佳选择。
相关信息
本节描述了 MatrixOne 的基本介绍,如果您想了解其他更多关于 MatrixOne 的详细信息,请参阅以下内容:
MatrixOne 技术架构
MatrixOne 快速部署
Previous
主页
Next
MatrixOne 功能清单
Made with
Material for MkDocs
matrixone: MatrixOne 是一个分布式的云原生融合数据库,专为异构混合工作负载而设计
matrixone: MatrixOne 是一个分布式的云原生融合数据库,专为异构混合工作负载而设计
登录
注册
开源
企业版
高校版
搜索
帮助中心
使用条款
关于我们
开源
企业版
高校版
私有云
Gitee AI
NEW
我知道了
查看详情
登录
注册
代码拉取完成,页面将自动刷新
开源项目
>
数据库相关
>
数据库服务
&&
捐赠
捐赠前请先登录
取消
前往登录
扫描微信二维码支付
取消
支付完成
支付提示
将跳转至支付宝完成支付
确定
取消
Watch
不关注
关注所有动态
仅关注版本发行动态
关注但不提醒动态
13
Star
34
Fork
13
matrixorigin / matrixone
代码
Wiki
统计
流水线
服务
Gitee Pages
质量分析
Jenkins for Gitee
腾讯云托管
腾讯云 Serverless
悬镜安全
阿里云 SAE
Codeblitz
我知道了,不再自动展开
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
已有帐号?
立即登录
返回
main
管理
管理
分支 (12)
标签 (17)
main
1.1-dev
1.0-dev
revert-14660-0222-add-fk-checks
0.8.0
0.7.0
0.6.0
0.5.1
0.4.0
0.3.0
0.2.0
0.1.0
v1.1.1
v1.1.0
v1.0.2
v1.0.1
v1.0.0
v1.0.0-rc2
v0.8.1
v1.0.0-rc1
v0.8.0
v0.7.0
v0.6.0
v0.5.1
v0.5.0
v0.4.0
v0.3.0
v0.2.0
v0.1.0
克隆/下载
克隆/下载
HTTPS
SSH
SVN
SVN+SSH
下载ZIP
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册
提示
下载代码请复制以下命令到终端执行
为确保你提交的代码身份被 Gitee 正确识别,请执行以下命令完成配置
git config --global user.name userName
git config --global user.email userEmail
初次使用 SSH 协议进行代码克隆、推送等操作时,需按下述提示完成 SSH 配置
1
生成 RSA 密钥
2
获取 RSA 公钥内容,并配置到 SSH公钥 中
在 Gitee 上使用 SVN,请访问 使用指南
使用 HTTPS 协议时,命令行会出现如下账号密码验证步骤。基于安全考虑,Gitee 建议 配置并使用私人令牌 替代登录密码进行克隆、推送等操作
Username for 'https://gitee.com': userName
Password for 'https://userName@gitee.com':
#
私人令牌
新建文件
新建子模块
上传文件
分支 12
标签 17
贡献代码
同步代码
创建 Pull Request
了解更多
对比差异
通过 Pull Request 同步
同步更新到分支
通过 Pull Request 同步
将会在向当前分支创建一个 Pull Request,合入后将完成同步
欧锦赛
Enable pkfilter for unqiue index (#14798)
4384dfe
7153 次提交
提交
取消
提示:
由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
.github
保存
取消
LICENSES
保存
取消
cgo
保存
取消
cmd
保存
取消
docs/rfcs
保存
取消
etc
保存
取消
optools
保存
取消
pkg
保存
取消
proto
保存
取消
test/distributed
保存
取消
.dockerignore
保存
取消
.gitignore
保存
取消
.golangci.yml
保存
取消
.licenserc.yml
保存
取消
.markdownlint.yaml
保存
取消
CODEOWNERS
保存
取消
CODE_OF_CONDUCT.md
保存
取消
CONTRIBUTING.md
保存
取消
LICENSE
保存
取消
Makefile
保存
取消
README.md
保存
取消
README_CN.md
保存
取消
go.mod
保存
取消
go.sum
保存
取消
Loading...
README
Apache-2.0
Docs
||
Official Website
English
||
简体中文
加入 MatrixOne 社区
如果你对 MatrixOne 项目感兴趣的话,请帮忙给 MatrixOne 点击 Star, Fork 和 Watch 三连吧,谢谢!
目录
MatrixOne 是什么?
核心特性
用户价值
架构
快速上手
参与贡献
License
MatrixOne 是什么?
MatrixOne 是一款超融合异构分布式数据库,通过云原生化和存储、计算、事务分离的架构构建 HSTAP 超融合数据引擎,实现单一数据库系统支持 OLTP、OLAP、流计算等多种业务负载,并且支持公有云、私有云、边缘云部署和使用,实现异构基础设施的兼容。
核心特性
超融合引擎
超融合引擎
HTAP 数据引擎,单数据库即可支持 TP、AP、时序、机器学习等混合工作负载。
内置流引擎
内置流计算引擎,支持实时数据流入、实时数据转换及实时数据查询。
☁️ 异构云原生
存算分离架构
将存储、计算、事务三层解耦,通过完全容器化的设计来实现极致扩展。
多基础设施兼容
支持跨机房协同/多地协同/云边协同,实现无感知扩缩容,提供高效统一的数据管理。
极致性能
高性能执行引擎
通过 Compute Node 和 Transaction node 的灵活配合兼顾点查询与批处理,对于 OLTP 和 OLAP 都具备极致性能。
企业级高可用
在领先的 Multi-Raft 复制状态机模型下建立强一致共享日志,可在避免数据重复的同时保证集群的高可用。
️ 简单易用
自带多租户能力
自带多租户功能,租户既相互隔离,独立扩缩容又可进行统一管理,简化上层应用的多租户设计复杂度。
MySQL 高度兼容
MatrixOne 与 MySQL8.0 高度兼容,包括传输协议,SQL 语法和生态工具,降低使用和迁移门槛。
高性价比
高效存储设计
以成本低廉的对象存储作为主存储,通过纠删码技术仅需要 150% 左右的数据冗余即可实现高可用,同时提供高速缓存能力,通过冷热分离多级存储方案兼顾成本和性能。
资源灵活调配
用户可以根据业务情况自由调整为 OLTP 及 OLAP 分配的资源比例,实现资源最大化利用。
企业级安全合规
采用用户角色访问控制(RBAC)、TLS 连接、数据加密等手段,建立多级安全防护体系,保障企业级数据安全和合规。
用户价值
简化数据开发和运维
随着业务发展,企业使用的数据引擎和中间件越来越多,而每一个数据引擎平均依赖 5+ 个基础组件,存储 3+ 个数据副本,每一个数据引擎都要各自安装、监控、补丁和升级。这些都导致数据引擎的选型、开发及运维成本高昂且不可控。在 MatrixOne 的一体化架构下,用户使用单个数据库即可服务多种数据应用,引入的数据组件和技术栈减少 80%,大大简化了数据库管理和维护的成本。
消减数据碎片和不一致
在既有复杂的系统架构内,存在多条数据管道多份数据存储冗余。数据依赖复杂,导致数据更新维护复杂,上下游数据不一致问题频发,人工校对难度增大。MatrixOne 的高内聚架构和独有的增量物化视图能力,使得下游可以支持上游数据的实时更新,摆脱冗余的 ETL 流程,实现端到端实时数据处理。
无需绑定基础设施
因为基础设施的碎片化,企业的私有化数据集群和公有云数据集群之间数据架构和建设方案割裂,数据迁移成本高。而数据上云一旦选型确定数据库厂商,后续的集群扩容、其他组件采购等都将被既有厂商绑定。MatrixOne 提供统一的云边基础架构和高效统一的数据管理,企业数据架构不再被基础设施绑定,实现单数据集群跨云无感知扩缩容,提升性价比。
极速的分析性能
目前,由于缓慢的复杂查询性能以及冗余的中间表,数据仓库在业务敏捷性上的表现不尽人意,大量宽表的创建也严重影响迭代速度。MatrixOne 通过特有的因子化计算和向量化执行引擎,支持极速的复杂查询,单表、星型和雪花查询都具备极速分析性能。
像 TP 一样可靠的 AP 体验
传统数据仓库数据更新代价非常高,很难做到数据更新即可见。在营销风控,无人驾驶,智能工厂等实时计算要求高的场景或者上游数据变化快的场景中,当前的大数据分析系统无法支持增量更新,往往需要做全量的更新,耗时耗力。MatrixOne 通过提供跨存储引擎的高性能全局分布式事务能力,支持条级别的实时增量更新,在保证极速分析性能的同时支持更新、删除和实时点查询。
不停服自动扩缩容
传统数仓无法兼顾性能和灵活度,性价比无法做到最优。MatrixOne 基于存算分离的技术架构,支持存储节点与计算节点独立扩缩容,高效应对负载变化。
架构一览
MatrixOne 的架构图如下图所示:
关于更详细的 MatrixOne 技术架构,可以参考MatrixOne 架构设计。
⚡️ 快速上手
⚙️ 安装 MatrixOne
MatrixOne 目前支持 Linux 及 MacOS 系统,您可以通过源码安装、二进制包安装或者 docker 安装。详情方式请参见MatrixOne 安装指南
使用源代码搭建
步骤 1.前置依赖
搭建 Go 语言环境(至少需要 1.20 版本)
点击 Go Download and install 入到 Go 的官方文档,按照官方指导安装步骤完成 Go 语言的安装。
安装 GCC/Clang
点击 GCC Download and install 进入到 GCC 的官方文档,按照官方指导安装步骤完成 GCC 的安装。
安装 Git
通过官方文档安装 Git。
安装 MySQL Client
点击 MySQL Community Downloads,进入到 MySQL 客户端下载安装页面,根据你的操作系统和硬件环境,按需选择下载安装包进行安装并配置环境变量
步骤 2.安装 mo_ctl 工具
mo_ctl 是一个部署安装和管理 MatrixOne 的命令行工具,使用它可以非常方便的对 MatrixOne 进行各类操作。
通过以下命令一键安装 mo_ctl 工具:
wget https://raw.githubusercontent.com/matrixorigin/mo_ctl_standalone/main/install.sh && sudo -u $(whoami) bash +x ./install.sh
如需获取完整的使用细节可以参考 mo_ctl 工具指南。
步骤 3.一键安装 MatrixOne
根据您的需要,选择您所获取的代码永远保持最新,还是获得稳定版本的代码。
选项 1:获取 MatrixOne(开发版本)
main 分支是默认分支,主分支上的代码总是最新的,但不够稳定。
mo_ctl deploy main
选项 2:获取 MatrixOne (稳定版本)
如果您想获得 MatrixOne 发布的最新稳定版本,请先从 main 切换选择至 1.1.1 版本分支。
mo_ctl deploy 1.1.1
步骤 4.启动 MatrixOne 服务
通过 mo_ctl start 命令一键启动 MatrixOne 服务。MatrixOne 的相关运行日志会在 /data/mo/logs/ 中。
Tips: 首次启动 MatrixOne 大致需要花费 20 至 30 秒的时间,在稍作等待后,你便可以连接至 MatrixOne。
步骤 5.连接 MatrixOne 服务
通过 mo_ctl connect 命令一键连接 MatrixOne 服务。
Tips: 连接和登录账号为初始账号 root 和密码 111,请在登录 MatrixOne 后及时修改初始密码,参见密码管理。修改登录用户名或密码后重新登录同样需要通过 mo_ctl set_conf 的方式设置新的用户名和密码,详情可以参考 mo_ctl 工具指南。
使用 Docker
步骤 1.安装 Docker
点击 Get Docker,进入 Docker 的官方文档页面,根据你的操作系统,下载安装对应的 Docker,Docker 版本推荐选择在 20.10.18 及以上,且尽量保持 Docker client 和 Docker server 的版本一致。
步骤 2.获取 MatrixOne 镜像并启动
使用以下命令将从 Docker Hub 中拉取 MatrixOne 镜像,你可以选择稳定版本镜像,或开发版本镜像,当 Tag 为 latest 时获取最新稳定版本。
稳定版本的镜像(1.1.1)
docker pull matrixorigin/matrixone:1.1.1
docker run -d -p 6001:6001 --name matrixone matrixorigin/matrixone:1.1.1
如果你使用的是中国大陆的网络,你可以拉取阿里云上的 MatrixOne 稳定版本镜像:
docker pull registry.cn-shanghai.aliyuncs.com/matrixorigin/matrixone:1.1.1
docker run -d -p 6001:6001 --name matrixone registry.cn-shanghai.aliyuncs.com/matrixorigin/matrixone:1.1.1
开发版本的镜像
获取最新开发版本的镜像,参见Docker Hub,找到最新 Tag,拉取镜像。拉取镜像代码示例如下:
docker pull matrixorigin/matrixone:nightly-commitnumber
docker run -d -p 6001:6001 --name matrixone matrixorigin/matrixone:nightly-commitnumber
如果你使用的是中国大陆的网络,你可以拉取阿里云上的 MatrixOne 开发版本镜像:
docker pull registry.cn-shanghai.aliyuncs.com/matrixorigin/matrixone:nightly-commitnumber
docker run -d -p 6001:6001 --name matrixone registry.cn-shanghai.aliyuncs.com/matrixorigin/matrixone:nightly-commitnumber
Note: 若 Docker 版本低于 20.10.18 或者 Docker client 和 Docker server 的版本不一致,推荐同时升级到 Docker 最新稳定版本后再尝试。若坚持使用,需要在 docker run 命令中加上参数 --privileged=true,如:
docker run -d -p 6001:6001 --name matrixone --privileged=true matrixorigin/matrixone:1.1.1
Tips: 首次启动 MatrixOne 大致需要花费 20 至 30 秒的时间,在稍作等待后,你便可以使用 MySQL 客户端连接至 MatrixOne。
步骤 3.连接 MatrixOne 服务
安装 MySQL 客户端
MatrixOne 支持 MySQL 连接协议,因此您可以使用各种语言通过 MySQL 客户机程序进行连接。
目前,MatrixOne 只兼容 Oracle MySQL 客户端,因此一些特性可能无法在 MariaDB、Percona 客户端下正常工作。
点击 MySQL Community Downloads,进入到 MySQL 客户端下载安装页面,根据你的操作系统和硬件环境,按需选择下载安装包进行安装。
Tips: 建议 MySQL 客户端版本为 8.0.30 版本及以上。
连接 MatrixOne 服务
你可以使用 MySQL 命令行客户端来连接 MatrixOne。打开一个新的终端,直接输入以下指令:
```
mysql -h 127.0.0.1 -P 6001 -uroot -p
Enter password: # 初始密码默认为 111
目前,MatrixOne 只支持 TCP 监听。
贡献者
Nnsgmsone
XuPeng-SH
Fagongzi
Reusee
Ouyuanning
Daviszhen
BRong Njam
Maomao
Iamlinjunhong
Jiangxinmeng1
Jianwan0214
GreatRiver
Wei Ziran
Chenmingsong
Dengn
Aptend
Lni
Jackson
YANGGMM
Qingxinhome
Nitao
BroccoliSpicy
Mooleetzi
Fengttt
Kutori
Prinz
Brown
Dongdongyang
Boyu Tan
Cui Guoke
Jin Hai
Matthew
Bbbearxyz
Tianyahui-python
Wanglei
Triump2020
Heni02
Wanhanbo
IceTTTT
LiuBo
刘陶峰
Ariznawlll
GoodMan-code
Yingfeng
Mklzl
Jensen
DomingoZhang
Arjun Sunil Kumar
Nuo Xu
Aressu1985
Mo-bot
Zengyan1
Aylei
NoneBack
Otter
Richelle Guice
Ryan
Elijah
MatrixAdventurer
NTH19
Anitajjx
Whileskies
BePPPower
Jiajun Huang
Morranto
Y7n05h
Songjiayang
Abirdcfly
Binglin Chang
Charlie17Li
DanielZhangQD
Eng Zer Jun
Eric Shen
Fungx
Kirito
Jason Peng
O2
RinChanNOW!
TheR1sing3un
XuQing Chai
Yiliang Qiu
ZeYu Zhao
ZheNing Hu
Zijie Lu
Zoran Pandovski
Ajian
Binxxi
Coderzc
ColdWater
Dr-lab
Florashi181
Hiyoyolumi
Jinfu
Liuguangliang
Lokax
Lyfer233
Sundyli
Supermario1990
Tjie
Toms
Wuliuqii
Xiyuedong
Yclchuxue
Zt
参与贡献
欢迎大家对 MatrixOne 的贡献。
请查看贡献指南来了解有关提交补丁和完成整个贡献流程的详细信息。
License
Apache License, Version 2.0。
header:
license:
spdx-id: Apache-2.0
copyright-owner: Matrix Origin
paths:
- '**/*.go'
- '**/*.c'
- '**/*.s'
- '**/*.h'
- '**/*.cpp'
- '**/*.proto'
paths-ignore:
- 'docs/'
- 'test/'
- 'optools/'
- 'cgo/external/'
- 'pkg/frontend/test/'
- 'pkg/vm/engine/tae/mergesort/sort.go'
- 'pkg/vm/engine/tae/mergesort/heap.go'
- 'pkg/hakeeper/operator/'
- '**/*.pb.go'
- '**/.gitignore'
- '**/goyacc.go'
- 'pkg/sql/parsers/dialect/postgresql/postgresql_sql.go'
- 'pkg/sql/parsers/dialect/mysql/mysql_sql.go'
comment: on-failure
dependency:
files:
- go.mod
Starred
34
Star
34
Fork
13
捐赠
0 人次
举报
举报成功
我们将于2个工作日内通过站内信反馈结果给你!
请认真填写举报原因,尽可能描述详细。
举报类型
请选择举报类型
举报原因
取消
发送
误判申诉
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
取消
提交
简介
MatrixOne 是一个分布式的云原生融合数据库,专为异构混合工作负载而设计
展开
收起
云原生数据库
暂无标签
https://docs.matrixorigin.io
Go
等 6 种语言
Go
95.9%
PLpgSQL
2.0%
Yacc
1.3%
C
0.3%
Python
0.2%
Other
0.3%
Apache-2.0
使用 Apache-2.0 开源许可协议
Code of conduct
保存更改
取消
发行版
暂无发行版
开源评估指数源自 OSS-Compass 评估体系,评估体系围绕以下三个维度对项目展开评估:
1. 开源生态
生产力:来评估开源项目输出软件制品和开源价值的能力。
创新力:用于评估开源软件及其生态系统的多样化程度。
稳健性:用于评估开源项目面对多变的发展环境,抵御内外干扰并自我恢复的能力。
2. 协作、人、软件
协作:代表了开源开发行为中协作的程度和深度。
人:观察开源项目核心人员在开源项目中的影响力,并通过第三方视角考察用户和开发者对开源项目的评价。
软件:从开源项目对外输出的制品评估其价值最终落脚点。也是开源评估最“古老”的主流方向之一“开源软件” 的具体表现。
3. 评估模型
基于“开源生态”与“协作、人、软件”的维度,找到与该目标直接或间接相关的可量化指标,对开源项目健康与生态进行量化评估,最终形成开源评估指数。
贡献者
全部
近期动态
加载更多
不能加载更多了
编辑仓库简介
简介内容
MatrixOne 是一个分布式的云原生融合数据库,专为异构混合工作负载而设计
主页
取消
保存更改
Go
1
https://gitee.com/matrixorigin/matrixone.git
git@gitee.com:matrixorigin/matrixone.git
matrixorigin
matrixone
matrixone
main
深圳市奥思网络科技有限公司版权所有
Git 大全
Git 命令学习
CopyCat 代码克隆检测
APP与插件下载
Gitee Reward
Gitee 封面人物
GVP 项目
Gitee 博客
Gitee 公益计划
Gitee 持续集成
OpenAPI
帮助文档
在线自助服务
更新日志
关于我们
加入我们
使用条款
意见建议
合作伙伴
售前咨询客服
技术交流QQ群
微信服务号
client#oschina.cn
企业版在线使用:400-606-0201
专业版私有部署:
13670252304
13352947997
开放原子开源基金会
合作代码托管平台
违法和不良信息举报中心
粤ICP备12009483号
简 体
/
繁 體
/
English
点此查找更多帮助
搜索帮助
Git 命令在线学习
如何在 Gitee 导入 GitHub 仓库
Git 仓库基础操作
企业版和社区版功能对比
SSH 公钥设置
如何处理代码冲突
仓库体积过大,如何减小?
如何找回被删除的仓库数据
Gitee 产品配额说明
GitHub仓库快速导入Gitee及同步更新
什么是 Release(发行版)
将 PHP 项目自动发布到 packagist.org
评论
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册
MatrixOne 文档中心 - 数据库开发者使用手册 | MatrixOrigin
ixOne 文档中心 - 数据库开发者使用手册 | MatrixOriginMatrixOne Cloud 即将开放公测,点击立即预约产品公测MatrixOne 企业版企业级超融合异构数据库,稳定高效,专业支持MatrixOne Cloud公测全托管云原生数据平台,简单易用,Serverless 按量计费解决方案SaaS 应用为 SaaS 应用提供极简、高效、低成本的数据服务一站式时序一站式时序解决方案应对海量 IoT 数据挑战实时数仓实时数仓解决方案帮助企业获得极速洞见HTAPHTAP 解决方案助力业务分析系统一体化湖仓一体湖仓一体解决方案帮助用户高效搭建轻量级数据中台BI/AIBI/AI 一体化方案帮助企业快速构建大模型智能化应用文档中心博客公司关于我们加入我们社区新手导航近期活动EN预约公测EN欢迎来到 MatrixOne 文档中心MatrixOne 文档中心将通过用户指南、案例等资料帮助您全面地了解 MatrixOne。MatrixOne Cloud公测MatrixOne Cloud 作为一个全托管云原生数据平台,提供零门槛创建和使用 Matrixone 产品服务的能力。通过创新的 Serverless 实例管理和 SQL 用量计费模式,实现计算资源的自动弹性伸缩,让用户无需关注机器配置,专注于 SQL 需求的满足。MatrixOne Cloud 文档帮助你全面了解 MatrixOne Cloud预约入口MatrixOne Cloud 公测活动预约中快速上手从零开始使用 MatrixOne CloudMatrixOneMatrixOne 是一款面向未来的超融合异构云原生数据库管理系统。通过全新设计和研发的统一分布式数据库引擎,能够同时灵活支持 OLTP、OLAP、Streaming 等不同工作负载的数据管理和应用,用户可以在公有云、自建数据中心和边缘节点上无缝部署和运行。MatrixOne 文档帮助你全面了解 MatrixOne功能列表了解 MatrixOne 最新版本所支持的功能技术架构了解 MatrixOne 的技术架构开发者指引快速上手安装 MatrixOne连接 MatrixOne基础 SQL开发数据库模式设计数据导入数据导出教程使用 Java 构建 CRUD 示例使用 Python 构建 CRUD 示例使用 SpringBoot 构建 CRUD 示例社区贡献文档贡献MatrixOne 文档欢迎你的加入与贡献。代码贡献MatrixOne 欢迎你参与共同维护、改进和扩展我们的开源项目,也欢迎你贡献代码或提出 Issue。万物归一,化繁为简50,000,000 次查询,0 元来试,即将开放公测立即预约MatrixOne 社区了解更多MatrixOne 更多信息产品MatrixOneMatrixOne Cloud资源文档社区GitHub公司关于我们加入我们联系我们博客微信公众号Copyright © 2024 矩阵起源(深圳)信息科技有限公司粤公安网备 44030402004672号 | 粤ICP备20210448来了来了!MatrixOne技术架构详解来了! - 知乎
来了来了!MatrixOne技术架构详解来了! - 知乎首发于MatrixOne 技术解读切换模式写文章登录/注册来了来了!MatrixOne技术架构详解来了!MatrixOrigin已认证账号前一段时间在知乎上有个小伙伴吐槽说已放弃阅读MatrixOne源代码,想必是对MatrixOne的代码可读性与解释文档的缺乏不太满意。确实,MO在这些方面还需要做很多改进工作,作为一个开源项目,良好的代码和文档可阅读性是让大家来参与的基础。社区中也有很多小伙伴问到MatrixOne是否有一个整体架构和模块说明的文档?那必须给大家安排上!本文将说明MatirxOne每个模块的现状与进展,希望通过技术架构详解,大家对MatrixOne能够有更清楚的了解,同时也欢迎大家贡献代码~设计理念和初衷MatrixOne的定位是超融合异构云原生数据库。我们核心的设计初衷是由于观察到数据增长和应用的需求越来越强烈,但是数据处理的任务却变得越来越复杂,行业中充斥着使用多个数据库或者大数据的组件自己组合搭建一套数据平台的做法,这样的做法需要极强的IT能力、高昂的维护和使用成本。对互联网企业而言,行业红利已经接近天花板,下半场的强监管与精细化运营必然对降低成本提出更高要求。而对大量还在数字化转型过程中的传统企业而言,在还未尝到数字化的甜头的时候,由于数据处理的复杂性和高IT门槛就已经足够劝退大量企业。MatrixOne希望通过一套比较简洁的架构,能提供一套统一的满足大部分场景数据处理需求的平台,将复杂性包含在系统内部,让用户能够高效快速的处理和应用数据。举一个例子来讲,现在的数据库产品就类似于一个个独立的电子设备,MP3,数码相机,收音机,电话,每个实现一部分相对突出的功能。而MatrixOne希望提供的是一个类似智能手机的产品,将大部分相对通用的功能集成在产品内部,极大的简化使用体验和维护成本。关于我们的产品理念和初衷,请参见我们发布于InfoQ的《昂贵、复杂、低效... 中小型企业如何打破大数据技术栈困境?》一文。架构特点当前整体架构可以用NewSQL+MPP来定义,并且正在进化成为一个为OLAP增强的分布式HTAP数据库,今年下半年将开始向面向云边一体的场景进一步演进。MatrixOne将极简易用作为重要的设计准则,尽管是分布式数据库,但在部署上只提供单一Binary,每个节点只运行完全同样的单一进程即可。MatrixOne的NewSQL架构特点众所周知,关系型数据库自SystemR确立了关系模型+SQL+事务处理“老三样”以来,已经存在了超过30年,直到NewSQL的出现。NewSQL是指以Google Spanner为起点,CockroachDB、TiDB、YugabyteDB等作为开源代表出现的分布式数据库,采用以复制状态机(Replicate State Machine)为核心,同时解决传统单机数据库伸缩性和高可用问题的分布式架构。在计算机领域,复制状态机是实现容错服务的主要方式。状态机开始于给定的起始状态。每个收到的输入都通过状态转移机制来产生一个新的状态以及相应的输出。在复制状态机中,一组Server的状态机计算相同状态的副本,即使有一部分Server宕机了,它们仍然能够继续运行。一致性协议是复制状态机背景下提出的,用来保证复制日志的一致性,常用的一致性协议有Paxos,Raft等。在复制状态机架构下,通过挂载Key Value存储引擎进而实现OLTP能力,就是以上NewSQL的主要构型。MatrixOne的当前架构,跟以上NewSQL数据库的区别在于,它是可以挂载多种存储引擎的。当前的0.2版本已经挂载了一个Key-Value存储引擎,用来存放Catalog等元数据。以及一个列存引擎,提供OLAP分析能力。当然,根据需要,它也可以挂载任意存储引擎,包括但不限于行存,图,专用时序,专用NoSQL等多模引擎。不同的存储引擎可以去满足不同场景中的应用,也非常欢迎社区的开发者来贡献想法和代码。图:Raft的复制状态机实现MatrixOne的MPP架构特点MPP(Massively Parallel Processing)大规模并行处理是一种针对大规模的数据分析的计算架构。简单来说,MPP是将任务并行的分散到多个服务器和节点上,在每个节点上计算完成后,将各自部分的结果汇总在一起得到最终的结果。这个架构最早被Teradata和Greenplum等第一代OLAP数据库采用,后来为Hadoop体系奠基的MapReduce也借鉴了MPP架构的做法。但是两者在处理的数据体量,SQL的支持程度,数据处理类型及效率上有较大差别。用今天的概念来讲,Hadoop方案更偏数据湖,可以存储和处理上百PB数据,可以在读取的时候再定义schema,可以放大量的非结构化和半结构化数据,但是SQL支持,查询性能和实时流式处理不太理想。基于MPP架构的数据库方案更像是大幅强化了查询能力的关系型数据库,仍然兼具良好的SQL支持和ACID事务属性。新一代的开源MPP计算引擎代表有Clickhouse,Presto,Impala,GreenPlum,Apache Doris等。MatrixOne也在MPP架构的基础上提供强大的OLAP能力,与其他项目不同的是,目前MatrixOne的MPP SQL计算引擎目前是用Golang实现的最快SQL引擎,相比C++的计算引擎,也可以在性能上一较高下。而且通过向量化和因子化加速之后,在如非主键join,多表复杂join等方面表现更优。图:MPP架构整体架构MatrixOne整体分为前端、计算层、元数据层、分布式框架和存储层这几个层次。图:MatrixOne的整体架构组件介绍:前端SQL Frontend:这是MatrixOne的入口,目前MatrixOne提供MySQL兼容协议,以及MySQL语法(部分兼容)。SQL Frontend接收来自MySQL客户端的请求,解析后转到下一层。计算层Query Parser: 接收到来自SQL Frontend的请求之后,SQL Parser负责将其解析并转化为抽象语法树。尽管提供 MySQL语法,但MatrixOne并没有采用流行的开源Query Parser,如TiDB,Vitess的Parser等。事实上,在2021 年10月发布的MatrixOne 0.1版本中,就采用的TiDB Parser,但在0.2版本中,我们自研了一个新的Parser,这主要是因为:MatrixOne致力于提供超融合数据库,未来会有很多的自定义语法,这并没有必要完全跟MySQL保持一致。此外, MatrixOne未来还有提供多方言协议兼容的计划,包括PostgreSQL,Hive,ClickHouse等,因此MatrixOne需要 有自己的Query Parser,可以任意定制,并为多方言语法兼容提供基础。MatrixOne当前更突出OLAP能力,而目前开源的Parser,基本的都是服务OLTP场景的,对一些OLAP的场景,如大批量插入等,性能开销较大。计算层MPP SQL Execution:这是MatrixOne的MPP计算引擎,该引擎由Golang实现,其中针对SQL计算引擎的一些基础操作的向量化加速,部分操作采用了汇编改写做加速。目前仅实现了Intel X86架构中AVX2,AVX512指令集的适配和加速。另外,我们通过独有的因子化加速能力,在针对多表join的场景下会有非常高效的表现。这些技术细节都会有后续的文章介绍。但是总的来说我们目前距离完善的SQL能力和底层适配还有很长的路要走,这里也欢迎社区可以更多的贡献针对其他如ARM处理器架构以及更多SQL操作的汇编加速实现。元数据层Catalog:这是存放数据库整体元数据的组件,例如Table/Schema定义等。目前Catalog还是一个临时方案,采用一个Key Value引擎存放,后续Catalog将整体迁入一个标准的OLTP引擎,提供进一步更完善的ACID能力来支撑Catalog组件。分布式框架MatixCube:这个组件是实现NewSQL架构的分布式基础架构库,目前是一个独立的仓库。它包含两部分的功能,一个是提供复制状态机实现的共识协议部分,当前采用Multi Raft机制。另一个是提供基于Raft的副本调度机制,该调度器在代码中称为Prophet。MatrixCube是一个通用的库,它可以对接各种存储引擎,这也是目前把它放到一个独立的仓库 的原因,任何第三方开发者,都可以比较方便的采用它来实现分布式强一致的存储引擎和数据库。MatrixCube还有一个非常重要的工作,就是提供分布式事务能力,这个工作目前正在方案设计中,很快也会将方案公开给开发者参考与讨论。图:MatrixCube架构图存储层Storage Engine:在MatrixOne中,存储引擎被定义为Engine,因此采用DDL创建表的时候,可以通过指定Engine,来决定用什么存储引擎来存放表数据。在当前的仓库里,只实现了一个Engine: AOE引擎。在最初的版本里,AOE的意思是Append Only Engine,这是一个Append Only的列存引擎。前面提到MatrixOne目前提供了2种存储的挂载,一个是Key Value,另一个是列存。 但是目前,Key Value还没有完成Engine的抽象,它对应的名字叫做TPE(Transaction Processing Engine),目前正在开发中,因此前述的Catalog是临时方案,待TPE完成后,Catalog将采用TPE实现。未来,不排除TPE对外暴露提供完整SQL能力的可能。AOE本质上是一个Demo存储引擎,它验证了将列存跟 NewSQL架构结合的一系列设计问题,这跟基于Key Value的NewSQL有着很大不同。目前开源的分布式数据库中,只有MatrixOne和Apache Kudu实现了基于列存的NewSQL架构。AOE的一个演进叫做TAE(Transactional Analytical Engine),这是一个基于列存的HTAP引擎,会提供完整ACID能力及强大的OLAP能力,类似于MySQL与Clickhouse整合的同时带完整分布式事务能力的数据库,目前正在紧张开发中。待完成后,MatrixOne将拥有完整的分布式 HTAP能力,完成Apache Kudu多年一直没有做到的事情:兼顾事务和高性能。MatirxOne代码结构介绍完MatrixOne的架构之后,想必小伙伴们已经对MatrixOne有了一个整体的了解。接下来我们会整体介绍一下MatrixOne的代码仓库结构,方便各位小伙伴对感兴趣的部分进行深入研究或者参与贡献。MatrixOne的内核代码全在"matrixone/pkg/ "文件夹下。与上述架构图中对应的模块代码库位置:SQL Frontend: frontend/SQL Parser: sql/parserMPP SQL Execution: sql/- 向量化: vectorize/Catalog: catalog/MatrixCube: MatrixCube目前为单独仓库「https://github.com/matrixorigin/matrixcube」Storage Engine: vm/engine,这里vm的意思是虚拟机,这里借用了SQLite的概念,类似整个MatrixOne的runtime,整个存算逻辑包装在vm中,提供对物理资源的抽象,方便进行资源管理。- AOE: vm/engine/aoe- TPE: vm/engine/tpe我们在github上有一个完整的good-first-issue列表,相对于MatrixOne这个庞大系统,这些任务相对比较容易上手和实现,期待各位开发者来认领参与~图 :MatrixOne good-first-issue列表惊喜预告!MatrixOne即将发布第一期系统built-in函数新手任务,其中需要修改的代码主要在builtin与vectorize当中,欢迎社区开发者的参与!欢迎加入MatrixOne社区官网:matrixorigin.cn源码:github.com/matrixorigin/matrixoneSlack:matrixoneworkspace.slack.com知乎 | CSDN | 墨天轮 | OSCHINA | InfoQ:MatrixOrigin发布于 2022-03-18 16:59技术架构数据库大数据平台赞同 73 条评论分享喜欢收藏申请转载文章被以下专栏收录MatrixOne 技术解读全方位了解 Matrix
MatrixOne从入门到实践01——初识MatrixOne - 知乎
MatrixOne从入门到实践01——初识MatrixOne - 知乎首发于MatrixOne 0.5 版本教程合集切换模式写文章登录/注册MatrixOne从入门到实践01——初识MatrixOneMatrixOrigin已认证账号简介MatrixOrigin矩阵起源 是一家数据智能领域的创新企业,其愿景是成为数字世界的核心技术提供者。物理世界的数字化和智能化无处不在。我们致力于建设开放的技术开源社区和生态系统、打造世界级的团队、并通过业界领先的技术创新和工程能力,实现数据在数字世界中的任意存储和任意计算,帮助用户释放数据的潜力和创新力(Store Anywhere, Compute Anywhere, Innovate Anywhere)。MatrixOneMatrixOne 是一款致力于 One Size Fits Most 的超融合异构数据库。MatrixOne通过超融合数据引擎HSTAP实现单一数据库系统支持 事务性(TP,TransactionalProcessing)、分析型(AP,Analytical Processing)、流式(Streaming)等多种数据负载,通过异构云原生架构实现单一数据库系统支持公有云原生、私有云、边缘云部署和使用。从而简化开发运维,消简数据碎片,提升数据端到端存算性能和开发敏捷度。技术架构MatrixOne 是第一个开源的分布式 HSTAP 数据库,支持 OLTP、OLAP 和 Streaming,使用单个自动调优存储引擎。HSTAP 对 HTAP 数据库进行了重新定义,HSTAP 旨在满足单一数据库内事务处理(TP)和分析处理(AP)的所有需求。与传统的 HTAP 相比,HSTAP 强调其内置的用于连接TP和AP表数据流处理能力。为用户提供了数据库可以像大数据平台一样的使用体验,也恰恰得益于大数据的繁荣,很多用户已经熟悉了这种体验。 MatrixOne 以最少的集成工作,让用户摆脱大数据的限制,为企业提供所有TP和AP场景的一站式覆盖。MatrixOne 作为一个从零开始打造的全新数据库,并在其他 DBMS 中引入了多种创新和最佳实践。采用解耦存储和计算架构,将数据存储在 S3 云存储服务上,实现低成本,计算节点无状态,可随意启动,实现极致弹性。在本地部署可用的情况下,MatrixOne 可以利用用户的 HDFS 或其他支持的分布式文件系统来保存数据。MatrixOne 还配备了兼容 S3 的内置替代方案,以确保其存储的弹性、高可靠性和高性能,而无需依赖任何外部组件。架构如下:集群管理层Cluster Managerment Layer 这一层负责集群管理,在云原生环境中与 Kubernetes 交互动态获取资源;在本地部署时,根据配置获取资源。集群状态持续监控,根据资源信息分配每个节点的任务。提供系统维护服务以确保所有系统组件在偶尔出现节点和网络故障的情况下正常运行,并在必要时重新平衡节点上的负载。集群管理层的主要组件是:Prophet 调度:提供负载均衡和节点 Keep-alive。资源管理:提供物理资源。Serverless层Serverless Layer 层是一系列无状态节点的总称,整体上包含三类:后台任务:最主要的功能是 Offload Worker,负责卸载成本高的压缩任务,以及将数据刷新到S3存储。SQL计算节点:负责执行 SQL 请求,这里分为写节点和读节点,写节点还提供读取最新数据的能力。流任务处理节点:负责执行流处理请求。日志层Log Layer 作为 MatrixOne 的单一数据源 (即Single source of truth),数据一旦写入日志层,则将永久地存储在 MatrixOne中。它建立在我们世界级的复制状态机模型的专业知识之上,以保证我们的数据具有最先进的高吞吐量、高可用性和强一致性。它本身遵循完全模块化和分解的设计,也帮助解耦存储和计算层的核心组件,与传统的 NewSQL 架构相比,我们的架构具有更高的弹性。存储层Storage Layer存储层将来自日志层的传入数据转换为有效的形式,以供将来对数据进行处理和存储。包括为快速访问已写入 S3 的数据进行的缓存维护等。在 MatrixOne 中,TAE(即TransactionalAnalytic Engine)是存储层的主要公开接口,它可以同时支持行和列存储以及事务处理能力。此外,存储层还包括其他内部使用的存储功能,例如流媒体的中间存储。存储供应层Provision Layer作为与基础架构解耦的 DBMS,MatrixOne 可以将数据存储在 S3/HDFS 、本地磁盘、本地服务器、混合云或其他各类型云,以及智能设备的共享存储中。存储供应层通过为上层提供一个统一的接口来访问这些多样化的存储资源,并且不向上层暴露存储的复杂性。核心特性超融合引擎超融合引擎融合数据引擎,单数据库即可支持TP、AP、时序、机器学习等混合工作负载。内置流引擎利用独有的增量物化视图能力,无需跨数据库即可实现实时数据流处理。异构云原生异构统一支持跨机房协同/多地协同/云边协同,实现无感知扩缩容,提供高效统一的数据管理。多地多活MatrixOne采用最优的一致性协议,实现业内最短网络延迟的多地多活。极致性能高性能特有的向量化执行引擎,支持极速的复杂查询。单表、星型和雪花查询都具备极速分析性能。强一致提供跨存储引擎的高性能全局分布式事务能力,在保证极速分析性能的同时支持更新、删除和实时点查询。高可用存算分离,支持存储节点与计算节点独立扩缩容,高效应对负载变化。应用场景数据一致性及高可靠、系统高可用、扩展性和容灾要求较高的金融行业有高并发OLTP事务要求和极速OLAP分析要求的混合场景HSTAP一体化场景OLTP和数仓构建场景. . . . . .用户价值简化数据开发和运维随着业务发展,企业使用的数据引擎和中间件越来越多,而每一个数据引擎平均依赖5+个基础组件,存储3+个数据副本,每一个数据引擎都要各自安装、监控、补丁和升级。这些都导致数据引擎的选型、开发及运维成本高昂且不可控。在MatrixOne的一体化架构下,用户使用单个数据库即可服务多种数据应用,引入的数据组件和技术栈减少80%,大大简化了数据库管理和维护的成本。消减数据碎片和不一致在既有复杂的系统架构内,存在多条数据管道多份数据存储冗余。数据依赖复杂,导致数据更新维护复杂,上下游数据不一致问题频发,人工校对难度增大。MatrixOne的高内聚架构和独有的增量物化视图能力,使得下游可以支持上游数据的实时更新,摆脱冗余的ETL流程,实现端到端实时数据处理。无需绑定基础设施因为基础设施的碎片化,企业的私有化数据集群和公有云数据集群之间数据架构和建设方案割裂,数据迁移成本高。而数据上云一旦选型确定数据库厂商,后续的集群扩容、其他组件采购等都将被既有厂商绑定。MatrixOne提供统一的云边基础架构和高效统一的数据管理,企业数据架构不再被基础设施绑定,实现单数据集群跨云无感知扩缩容,提升性价比。极速的分析性能目前,由于缓慢的复杂查询性能以及冗余的中间表,数据仓库在业务敏捷性上的表现不尽人意,大量宽表的创建也严重影响迭代速度。MatrixOne通过特有的因子化计算和向量化执行引擎,支持极速的复杂查询,单表、星型和雪花查询都具备极速分析性能。像TP一样可靠的AP体验传统数据仓库数据更新代价非常高,很难做到数据更新即可见。在营销风控,无人驾驶,智能工厂等实时计算要求高的场景或者上游数据变化快的场景中,当前的大数据分析系统无法支持增量更新,往往需要做全量的更新,耗时耗力。MatrixOne通过提供跨存储引擎的高性能全局分布式事务能力,支持条级别的实时增量更新,在保证极速分析性能的同时支持更新、删除和实时点查询。不停服自动扩缩容传统数仓无法兼顾性能和灵活度,性价比无法做到最优。MatrixOne基于存算分离的技术架构,支持存储节点与计算节点独立扩缩容,高效应对负载变化。发布于 2022-11-23 21:51・IP 属地上海分布式数据库数据库教程赞同 1添加评论分享喜欢收藏申请转载文章被以下专栏收录MatrixOne 0.5 版本教程合集MO 0.5版本教程合集,从安装部署,到应
503 Service Temporarily Unavailable
503 Service Temporarily Unavailable
503 Service Temporarily Unavailable
nginx