14 Star 36 Fork 13

matrixorigin / matrixone

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
Apache-2.0

加入 MatrixOne 社区

matrixone16 matrixone16

如果你对 MatrixOne 项目感兴趣的话,请帮忙给 MatrixOne 点击 Star, Fork 和 Watch 三连吧,谢谢!

目录

MatrixOne 是什么?

MatrixOne 是一款超融合异构分布式数据库,通过云原生化和存储、计算、事务分离的架构构建 HSTAP 超融合数据引擎,实现单一数据库系统支持 OLTP、OLAP、流计算等多种业务负载,并且支持公有云、私有云、边缘云部署和使用,实现异构基础设施的兼容。

MatrixOne

🎯 核心特性

💥 超融合引擎

超融合引擎 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

MatrixOne 目前支持 Linux 及 MacOS 系统,您可以通过源码安装、二进制包安装或者 docker 安装。详情方式请参见MatrixOne 安装指南

使用源代码搭建

步骤 1.前置依赖

  1. 搭建 Go 语言环境(至少需要 1.20 版本)

点击 Go Download and install 入到 Go 的官方文档,按照官方指导安装步骤完成 Go 语言的安装。

  1. 安装 GCC/Clang

点击 GCC Download and install 进入到 GCC 的官方文档,按照官方指导安装步骤完成 GCC 的安装。

  1. 安装 Git

通过官方文档安装 Git。

  1. 安装 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 服务

  1. 安装 MySQL 客户端

MatrixOne 支持 MySQL 连接协议,因此您可以使用各种语言通过 MySQL 客户机程序进行连接。
目前,MatrixOne 只兼容 Oracle MySQL 客户端,因此一些特性可能无法在 MariaDB、Percona 客户端下正常工作。

点击 MySQL Community Downloads,进入到 MySQL 客户端下载安装页面,根据你的操作系统和硬件环境,按需选择下载安装包进行安装。

Tips: 建议 MySQL 客户端版本为 8.0.30 版本及以上。

  1. 连接 MatrixOne 服务

你可以使用 MySQL 命令行客户端来连接 MatrixOne。打开一个新的终端,直接输入以下指令:

   ```
   mysql -h 127.0.0.1 -P 6001 -uroot -p
   Enter password:  # 初始密码默认为 111

目前,MatrixOne 只支持 TCP 监听。

👏贡献者

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 的贡献。
请查看贡献指南来了解有关提交补丁和完成整个贡献流程的详细信息。

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

简介

MatrixOne 是一个分布式的云原生融合数据库,专为异构混合工作负载而设计 展开 收起
Apache-2.0
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Go
1
https://gitee.com/matrixorigin/matrixone.git
git@gitee.com:matrixorigin/matrixone.git
matrixorigin
matrixone
matrixone
main

搜索帮助