准备工作
非常欢迎您参与到MatrixOne(以下简称MO)项目的建设中来!无论你是初识MatrixOne,还是已经迫切地想参与到开发工作中来,亦或是在阅读文档、使用产品的过程中发现了一些问题,都欢迎你提出意见和建议,与我们共同打造更加强大、稳定的MatrixOne! 当然,在您向MatrixOne项目提出改进之前,我们需要提前说明一些基本规范与流程,以提高整个贡献过程的质量与流畅性,同时也能保障MO的稳定性与安全性。 此外,在本章中,我们为尚未熟知MO的贡献者们提供一些了解我们的渠道,希望能为你们带来一些便利!
了解MatrixOne
特点与框架
在MatrixOne简介中您可以了解到MO的超融合、云边协同特性以及其所创造的优异表现与独特价值。 此外,在MatrixOne框架中您可以详细地了解MO的整体架构,以及存储层、计算层、负责分布式管理的MatrixCube的具体组成情况。 同时,你也可以查阅MatrixOne术语表来了解一些复杂的词汇。 在技术层面,SQL参考指南 为您提供了详细的SQL语言的参考,其中对语法和示例都有详细解释;同样,自定义函数提供了MO中自定义函数的相关解释。
建设情况
目前,MatrixOne v0.3.0 已经发布了,您可以通过版本发布指南来了解最新的发布信息,其中包含了最新的修改与优化。 同时,我们当前正在开发 v0.4.0和 v0.5.0版本,对应的工作任务在GitHub的milestone0.4.0中列出。 关于长期的项目规划,请参阅MatrixOne roadmap。
你可以做些什么?
对MatrixOne的贡献可分为以下几类: * 报告代码中的bug或文档中的谬误。请在GitHub上提出issue,并提供问题的详细信息。请记得选取合适的issue模板,并打上标签。 * 提议新的功能。请在Feature Request中描述详情并与社区中的开发人员商议。一旦我们的团队认可了您的计划,您就可以按照工作流程进行具体开发。 * 实现某个功能或修复既有问题,请按照工作流程完成开发。如果你需要关于某一特定问题的更多背景信息,请就该问题发表评论。
工作目录与文件介绍
我们将为Github上matrixorigin/matrixone的项目目录及其中关键文件进行简单介绍,以期为您的深入了解和开发提供指导性帮助。 matrixone是MatrixOne代码所在的主库,我们将介绍其中的项目目录以及关键文件,以期为您的深入了解和开发提供指导性帮助。
目录 | 内容 |
---|---|
/LICENSES | 相关依赖库的许可 |
/cmd | Go的可执行文件的binary entry |
optools | 测试与部署工具 |
pkg | MatrixOne项目的主要代码库 |
对于不同的技术模块,/pkg
喜爱的代码结构如下表所示。详情请参照MatrixOne技术架构。
目录 | 模块 |
---|---|
frontend/ | SQL前端 |
sql/parser | SQL解析 |
sql/ | MPP SQL Execution |
sql/vectorize | SQL的向量化执行 |
catalog/ | 存储元数据的Catalog |
github.com/matrixorigin/matrixcube | MatrixCube |
vm/engine | 存储引擎 |
vm/engine/aoe | AOE引擎(分析优化引擎) |
vm/engine/tpe | TPE引擎(事务处理引擎) |
buildin/ | 系统的内置函数 |
在文档方面,matrixone, matrixorigin.io 与 artwork都是在贡献过程中可能使用的库,详情参见文档贡献。
目录 | 内容 |
---|---|
matrixone/docs/en/MatrixOne | 文档网站的具体内容文件(.md文件) |
matrixone/docs/rfcs | MatrixOne项目的设计文档 |
matrixorigin.io/mkdocs.yml | 文档网站的配置文件 |
artwork/docs | 文档官网出现的图片和图表 |
开发环境
MO主要由Go语言编写,因此需要提前安装部署好相关的开发环境,简要的示例流程如下: 1. 安装版本不低于1.17的Go,您可以通过Download Go与Installation instructions教程来完成整个过程。 2. 定义环境变量并修改路径,您可以遵循以下示例流程:
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin
Note
MatrixOne使用Go Modules 来管理相关依赖。
若您需要补充Go语言的相关知识,可以通过How to Write Go Code进行了解。
此外,确保您至少已经安装了单机版本的MatrixOne,具体过程可参照 Install Standalone MatrixOne。
Github & Git
为更好地开发建设MatrixOne,我们采取了开源运营的方式,通过Github为项目维护人员和其他开发者提供了一个协作平台。因此,如果您想参与到MO的开发中来,我们强烈建议您采取Github的渠道。
若您还未使用过Github或缺少相关开发经验,您首先需要熟悉GitHub上的相关操作,并学习基本的git命令。
如果您没有Github帐户,请在https://github.com上完成注册。
如果你没有SSH密钥,你可以按照GitHub上关于SSH的教程来生成、添加密钥。
更多详情请参见Github Docs。
此外,我们建议您学习并使用git命令来完成github上的各种流程,因为我们提供的相关工作流程大多通过git命令完成,这有助于您提高效率。
您可通过install git安装git环境。
并且可以通过以下教程来学习如何使用: * 简易版 * 详细版