github.com/matrixorigin/matrixone@v0.7.0/README_CN.md (about) 1 <div class="column" align="middle"> 2 <p align="center"> 3 <img alt="MatrixOne All in One" height="50" src="https://github.com/matrixorigin/artwork/blob/main/docs/overview/logo.png?raw=true"> 4 </p> 5 <a href="https://github.com/matrixorigin/matrixone/blob/main/LICENSE"> 6 <img src="https://img.shields.io/badge/License-Apache%202.0-red.svg" alt="license"/> 7 </a> 8 <a href="https://golang.org/"> 9 <img src="https://img.shields.io/badge/Language-Go-blue.svg" alt="language"/> 10 </a> 11 <img src="https://img.shields.io/badge/platform-MacOS-white.svg" alt="macos"/> 12 <img src="https://img.shields.io/badge/platform-Linux-9cf.svg" alt="linux"/> 13 <a href="https://www.codefactor.io/repository/github/matrixorigin/matrixone"> 14 <img src="https://www.codefactor.io/repository/github/matrixorigin/matrixone/badge?s=7280f4312fca2f2e6938fb8de5b726c5252541f0" alt="codefactor"/> 15 </a> 16 <a href="https://docs.matrixorigin.io/0.6.0/MatrixOne/Release-Notes/v0.6.0/"> 17 <img src="https://img.shields.io/badge/Release-v0.6.0-green.svg" alt="release"/> 18 </a> 19 <br> 20 <a href="https://docs.matrixorigin.io/cn/0.6.0/"> 21 <b>Docs</b> 22 </a> 23 <b>||</b> 24 <a href="https://www.matrixorigin.cn/"> 25 <b> Official Website</b> 26 </a> 27 <br> 28 <a href="https://github.com/matrixorigin/matrixone/blob/main/README.md"> 29 <b>English</b> 30 </a> 31 <b>||</b> 32 <a href="https://github.com/matrixorigin/matrixone/blob/main/README_CN.md"> 33 <b>简体中文</b> 34 </a> 35 </div> 36 37 <h3 align="center">加入 MatrixOne 社区</h3> 38 <p align="center"> 39 <a href="https://26805113.s21i.faiusr.com/4/ABUIABAEGAAgv7rJjwYo977zvgQw1AY41AY!200x200.png.webp" target="blank"><img align="center" src="https://github.com/dengn/CASAUVSQ/blob/priority/wechat-logo.png" alt="matrixone16" height="30" width="30" /></a> 40 <a href="http://matrixoneworkspace.slack.com" target="blank"><img align="center" src="https://github.com/dengn/CASAUVSQ/blob/priority/slack_icon.png" alt="matrixone16" height="30" width="30" /></a> 41 42 </p> 43 44 <h5 align="center">如果你对 MatrixOne 项目感兴趣的话,请帮忙给 MatrixOne 点击 Star, Fork 和 Watch 三连吧,谢谢!</h5> 45 46 47 目录 48 ======== 49 50 * [MatrixOne 是什么?](#what-is-matrixone) 51 * [核心特性](#key-features) 52 * [用户价值](#user-values) 53 * [架构](#architecture) 54 * [快速上手](#quick-start) 55 * [参与贡献](#contributing) 56 * [License](#license) 57 58 ## <a id="what-is-matrixone">MatrixOne 是什么?</a> 59 60 MatrixOne 是一款面向未来的超融合异构云原生数据库,通过超融合数据引擎支持事务/分析/流处理等混合工作负载,通过异构云原生架构支持跨机房协同/多地协同/云边协同。简化开发运维,消简数据碎片,打破数据的系统、位置和创新边界。 61 <p align="center"> 62 <img alt="MatrixOne" height="500" src="https://github.com/matrixorigin/artwork/blob/main/docs/overview/all-in-one.png?raw=true"> 63 </p> 64 65 ## 🎯 <a id="key-features">核心特性</a> 66 ### 💥 **超融合引擎** 67 68 <details> 69 <summary><b><font size=4>超融合引擎</b></font></summary> 70 融合数据引擎,单数据库即可支持TP、AP、时序、机器学习等混合工作负载。 71 </details> 72 73 <details> 74 <summary><b><font size=4>内置流引擎</b></font></summary> 75 利用独有的增量物化视图能力,无需跨数据库即可实现实时数据流处理。 76 </details> 77 78 79 ### ☁️ **异构云原生** 80 81 82 <details> 83 <summary><b><font size=4>异构统一</b></font></summary> 84 支持跨机房协同/多地协同/云边协同,实现无感知扩缩容,提供高效统一的数据管理。 85 </details> 86 87 <details> 88 <summary><b><font size=4>多地多活</b></font></summary> 89 MatrixOne采用最优的一致性协议,实现业内最短网络延迟的多地多活。 90 </details> 91 92 93 ### 🚀 **极致的性能** 94 95 <details> 96 <summary><b><font size=4>高性能</b></font></summary> 特有的因子化计算和向量化执行引擎,支持极速的复杂查询。单表、星型和雪花查询都具备极速分析性能。</details> 97 98 <details> 99 <summary><b><font size=4>强一致</b></font></summary> 100 提供跨存储引擎的高性能全局分布式事务能力,在保证极速分析性能的同时支持更新、删除和实时点查询。 101 </details> 102 103 <details> 104 <summary><b><font size=4>高可用</b></font></summary> 105 存算分离,支持存储节点与计算节点独立扩缩容,高效应对负载变化。 106 </details> 107 108 109 110 ## 💎 **<a id="user-values">用户价值</a>** 111 <details> 112 <summary><b><font size=4>简化数据开发和运维</b></font></summary> 113 随着业务发展,企业使用的数据引擎和中间件越来越多,而每一个数据引擎平均依赖5+个基础组件,存储3+个数据副本,每一个数据引擎都要各自安装、监控、补丁和升级。这些都导致数据引擎的选型、开发及运维成本高昂且不可控。在MatrixOne的一体化架构下,用户使用单个数据库即可服务多种数据应用,引入的数据组件和技术栈减少80%,大大简化了数据库管理和维护的成本。 114 </details> 115 <details> 116 <summary><b><font size=4>消减数据碎片和不一致</b></font></summary> 117 在既有复杂的系统架构内,存在多条数据管道多份数据存储冗余。数据依赖复杂,导致数据更新维护复杂,上下游数据不一致问题频发,人工校对难度增大。MatrixOne的高内聚架构和独有的增量物化视图能力,使得下游可以支持上游数据的实时更新,摆脱冗余的ETL流程,实现端到端实时数据处理。 118 </details> 119 <details> 120 <summary><b><font size=4>无需绑定基础设施</b></font></summary> 121 因为基础设施的碎片化,企业的私有化数据集群和公有云数据集群之间数据架构和建设方案割裂,数据迁移成本高。而数据上云一旦选型确定数据库厂商,后续的集群扩容、其他组件采购等都将被既有厂商绑定。MatrixOne提供统一的云边基础架构和高效统一的数据管理,企业数据架构不再被基础设施绑定,实现单数据集群跨云无感知扩缩容,提升性价比。 122 </details> 123 <details> 124 <summary><b><font size=4>极速的分析性能</b></font></summary> 125 目前,由于缓慢的复杂查询性能以及冗余的中间表,数据仓库在业务敏捷性上的表现不尽人意,大量宽表的创建也严重影响迭代速度。MatrixOne通过特有的因子化计算和向量化执行引擎,支持极速的复杂查询,单表、星型和雪花查询都具备极速分析性能。 126 </details> 127 <details> 128 <summary><b><font size=4>像 TP 一样可靠的 AP 体验</b></font></summary> 129 传统数据仓库数据更新代价非常高,很难做到数据更新即可见。在营销风控,无人驾驶,智能工厂等实时计算要求高的场景或者上游数据变化快的场景中,当前的大数据分析系统无法支持增量更新,往往需要做全量的更新,耗时耗力。MatrixOne通过提供跨存储引擎的高性能全局分布式事务能力,支持条级别的实时增量更新,在保证极速分析性能的同时支持更新、删除和实时点查询。 130 </details> 131 <details> 132 <summary><b><font size=4>不停服自动扩缩容</b></font></summary> 133 传统数仓无法兼顾性能和灵活度,性价比无法做到最优。MatrixOne基于存算分离的技术架构,支持存储节点与计算节点独立扩缩容,高效应对负载变化。 134 </details> 135 136 ## 🔎 <a id="architecture">架构一览</a> 137 MatrixOne 的架构图如下图所示: 138 <p align="center"> 139 <img alt="MatrixOne" height="500" src="https://github.com/matrixorigin/artwork/blob/main/docs/overview/matrixone_new_arch.png?raw=true"> 140 </p> 141 142 关于更详细的 MatrixOne 技术架构,可以参考[MatrixOne 架构设计](https://docs.matrixorigin.io/cn/0.6.0/MatrixOne/Overview/matrixone-architecture-design/)。 143 144 ## ⚡️ <a id="quick-start">快速上手</a> 145 146 ### ⚙️ 安装 MatrixOne 147 148 MatrixOne 目前支持 Linux 及 MacOS 系统,您可以通过源码安装或者 docker 安装。其他安装方式请参见[MatrixOne 安装指南](https://docs.matrixorigin.io/cn/0.6.0/MatrixOne/Get-Started/install-standalone-matrixone/) 149 150 #### 使用源代码搭建 151 152 **步骤 1.** 搭建 Go 语言环境(至少需要 1.19 版本) 153 154 点击 <a href="https://go.dev/doc/install" target="_blank">Go Download and install</a> 入到 **Go** 的官方文档,按照官方指导安装步骤完成 **Go** 语言的安装。 155 156 **步骤 2.** 获取 MatrixOne 源码,构建 MatrixOne 157 158 根据您的需要,选择您所获取的代码永远保持最新,还是获得稳定版本的代码。 159 160 - *选项 1*:获取 MatrixOne(开发版本) 代码,搭建 MatrixOne 161 162 **main** 分支是默认分支,主分支上的代码总是最新的,但不够稳定。 163 164 1. 获取 MatrixOne(开发版本) 代码方法如下: 165 166 ```shell 167 git clone https://github.com/matrixorigin/matrixone.git 168 cd matrixone 169 ``` 170 171 2. 运行 `make build` 编译文件: 172 173 ``` 174 make build 175 ``` 176 177 __Tips__: 你也可以运行`make debug`与`make clean`或者其他任何`Makefile`支持的命令;`make debug` 可以用来调试构建进程,`make clean` 可以清除构建进程。 178 179 - *选项 2*:获取 MatrixOne(稳定版本) 代码,搭建 MatrixOne 180 181 1. 如果您想获得 MatrixOne 发布的最新稳定版本代码,请先从 **main** 切换选择至 **0.6.0** 版本分支。 182 183 ``` 184 git clone https://github.com/matrixorigin/matrixone.git 185 git checkout 0.6.0 186 cd matrixone 187 ``` 188 189 2. 运行 `make config` 和 `make build` 编译文件: 190 191 ``` 192 make config 193 make build 194 ``` 195 196 __Tips__: 你也可以运行`make debug`与`make clean`或者其他任何`Makefile`支持的命令;`make debug` 可以用来调试构建进程,`make clean` 可以清除构建进程。 197 198 **步骤 3.** 启动 MatrixOne 服务: 199 200 - **在终端的前台启动 MatrixOne 服务** 201 202 该启动方式会在终端的前台运行 `mo-service` 进行,实时打印系统日志。如果你想停止 MatrixOne 服务器,只需按 CTRL+C 或关闭当前终端。 203 204 ``` 205 # Start mo-service in the frontend 206 ./mo-service -launch ./etc/quickstart/launch.toml 207 ``` 208 209 - **在终端的后台启动 MatrixOne 服务** 210 211 该启动方法会在后台运行 `mo-service` 进程,系统日志将重定向到 `test.log` 文件中。如果你想停止 MatrixOne 服务器,你需要通过以下命令查找出它的 `PID` 进程号并消除进程。下面是整个过程的完整示例。 212 213 ``` 214 # Start mo-service in the backend 215 nohup ./mo-service -launch ./etc/quickstart/launch.toml &> test.log & 216 217 # Find mo-service PID 218 ps aux | grep mo-service 219 220 [root@VM-0-10-centos ~]# ps aux | grep mo-service 221 root 15277 2.8 16.6 8870276 5338016 ? Sl Nov25 156:59 ./mo-service -launch ./etc/quickstart/launch.toml 222 root 836740 0.0 0.0 12136 1040 pts/0 S+ 10:39 0:00 grep --color=auto mo-service 223 224 # Kill the mo-service process 225 kill -9 15277 226 ``` 227 228 __Tips__: 如上述示例所示,使用命令 `ps aux | grep mo-service` 首先查找出 MatrixOne 运行的进程号为 `15277`,`kill -9 15277` 即表示停止进程号为 `15277` 的 MatrixOne。 229 230 231 #### 使用 Docker 232 233 **步骤 1.** 确保 Docker 已经安装 234 235 点击<a href="https://docs.docker.com/get-docker/" target="_blank">Get Docker</a>,进入 Docker 的官方文档页面,根据你的操作系统,下载安装对应的 Docker。 236 237 请检查 Docker daemon 是否正在后台运行,并确认 Docker 版本: 238 239 ``` 240 $ docker --version 241 ``` 242 243 安装成功,代码示例如下: 244 245 ``` 246 Docker version 20.10.17, build 100c701 247 ``` 248 249 **步骤 2.** 创建并运行容器 250 251 使用以下命令将从 Docker Hub 中拉取 MatrixOne 镜像,你可以选择稳定版本镜像,或开发版本镜像。 252 253 - 稳定版本的镜像(0.6.0) 254 255 ```bash 256 docker pull matrixorigin/matrixone:0.6.0 257 docker run -d -p 6001:6001 --name matrixone matrixorigin/matrixone:0.6.0 258 ``` 259 260 - 开发版本的镜像 261 262 获取最新开发版本的镜像,参见[Docker Hub](https://hub.docker.com/r/matrixorigin/matrixone/tags),找到最新 Tag,拉取镜像。拉取镜像代码示例如下: 263 264 ```bash 265 docker pull matrixorigin/matrixone:nightly-commitnumber 266 docker run -d -p 6001:6001 --name matrixone matrixorigin/matrixone:nightly-commitnumber 267 ``` 268 269 !!! info 270 如上面代码所示,*nightly* 为标识的 Tag 版本每天都进行更新,请注意获取最新的镜像。 271 272 运行 Docker Hub 时需要输入用户名和密码,获取用户名和密码可以参考**连接 MatrixOne 服务**章节所述。 273 274 ### 🌟 连接 MatrixOne 服务 275 276 1. 安装 MySQL 客户端 277 278 MatrixOne 支持 MySQL 连接协议,因此您可以使用各种语言通过 MySQL 客户机程序进行连接。 279 目前,MatrixOne 只兼容 Oracle MySQL 客户端,因此一些特性可能无法在 MariaDB、Percona 客户端下正常工作。 280 281 安装部署 MySQL 客户端请进入到 [MySQL Community Downloads](https://dev.mysql.com/downloads/mysql/) 页面下载: 282 283 - 根据你的系统,下拉选择 **Select Operating System**。 284 - 下拉选择 **Select OS Version**,建议选择 8.0.30 版本及以上。 285 286 安装完成后,按照<a href="https://dev.mysql.com/doc/refman/8.0/en/installing.html" target="_blank">Installing and Upgrading MySQL</a>指导,配置 MySQL 客户端环境变量。 287 288 2. 连接 MatrixOne 服务 289 290 你按照上述步骤完成安装启动 MatrixOne,默认在启动模式下,产生很多日志,接下来你可以启动新的终端,使用 MySQL 命令行客户端来连接 MatrixOne 服务。 291 292 ``` 293 mysql -h IP -P PORT -uUsername -p 294 ``` 295 296 输入完成上述命令后,终端会提示你提供用户名和密码。你可以使用我们的内置帐号: 297 298 - user: dump 299 - password: 111 300 301 也可以使用 MySQL 客户端下述命令行,输入密码,来连接 MatrixOne 服务: 302 303 ``` 304 mysql -h 127.0.0.1 -P 6001 -udump -p 305 Enter password: 306 ``` 307 目前,MatrixOne 只支持 TCP 监听。 308 309 ## 🙌 <a id="contributing">参与贡献</a> 310 311 欢迎大家对 MatrixOne 的贡献。 312 请查看[贡献指南](https://docs.matrixorigin.io/cn/0.6.0/MatrixOne/Contribution-Guide/make-your-first-contribution/)来了解有关提交补丁和完成整个贡献流程的详细信息。 313 314 ### 👏贡献者们 315 316 <!-- readme: contributors -start --> 317 <!-- readme: contributors -end --> 318 319 ## <a id="license">License</a> 320 [Apache License, Version 2.0](LICENSE)。