From 23cd302b8ae9a94929f5a9ef2b960c25e52cde8f Mon Sep 17 00:00:00 2001 From: yangj1211 <153493538+yangj1211@users.noreply.github.com> Date: Tue, 7 May 2024 20:39:54 +0800 Subject: [PATCH] add doc of matrixone-positioning (#1053) --- .../matrixone-positioning.md | 12 ++++++++++++ mkdocs.yml | 2 ++ 2 files changed, 14 insertions(+) create mode 100644 docs/MatrixOne/Overview/matrixone-vs-other_databases/matrixone-positioning.md diff --git a/docs/MatrixOne/Overview/matrixone-vs-other_databases/matrixone-positioning.md b/docs/MatrixOne/Overview/matrixone-vs-other_databases/matrixone-positioning.md new file mode 100644 index 0000000000..2b590c4924 --- /dev/null +++ b/docs/MatrixOne/Overview/matrixone-vs-other_databases/matrixone-positioning.md @@ -0,0 +1,12 @@ +# MatrixOne 的定位 + +在庞大而复杂的数据技术栈和各类数据库产品中,MatrixOne 的定位是一款主打一站式融合能力和灵活扩展性的 SQL 关系型数据库。MatrixOne 的设计目标是提供一个使用体验如 MySQL 一样简单的数据库产品,可以处理包括 OLTP 和 OLAP 等各类业务负载和数据类型,同时能感知用户的负载和数据量变化自动化的进行快速弹性伸缩,以简化用户当前复杂的多数据库产品+ETL 的传统数据架构。 + +在行业现有的数据库产品中来说与 MatrixOne 最接近的数据库产品是 SingleStore,两者都采用统一存储模型,支持 OLTP,OLAP 以及其他一系列数据负载和数据类型的融合,同时也都以云原生和可灵活扩展作为自己的核心架构能力。 + +![mo_vs_singlestore](https://community-shared-data-1308875761.cos.ap-beijing.myqcloud.com/artwork/docs/overview/mo-other-database/mo_vs_singlestore.png) + +- 从架构上来说,MatrixOne 是一款完全云原生和容器化的数据库,MatrixOne 借鉴了 Snowflake 对[云原生数据仓库](https://event.cwi.nl/lsde/papers/p215-dageville-snowflake.pdf)的存算分离设计,完全将存储交于云上的共享存储,同时将计算层完全构建成了无状态化的容器。同时,为了能适应 OLTP 类型负载对快速写入请求的处理,MatrixOne 增加了 TN 及 LogService 的概念,以块存储来支撑高频写入,通过 Raft 三副本一致性保证来确保写入日志 WAL 的高可用,同时再异步的将 WAL 落盘到共享存储中。与 SingleStore 不同之处在于 SingleStore 是从 Share-nothing 架构上扩展到了云原生的存算分离上,其仅将冷数据放入共享存储(可参考 [SingleStore 架构论文](https://dl.acm.org/doi/pdf/10.1145/3514221.3526055)),依然需要做数据分片和再平衡。而 MatrixOne 与 Snowflake 一致,则是完全基于共享存储,没有任何数据分片。 + +- 从负载类型上来说,MatrixOne 以 HTAP 为基本核心,逐步扩展至流计算,时序处理,机器学习,搜索等多种负载类型。在 HTAP 的技术路线上,MatrixOne 与以 TiDB 为主的双存储和计算引擎路线不同的是,MatrixOne 是直接在单存储引擎和计算引擎上实现 HTAP,存储引擎也是以落盘列存为主,内存行存为辅的架构,这点与 SingleStore 也较为一致。TiDB 一类的技术路线需要内部进行双引擎数据同步,同时 TP 与 AP 数据需要单独存储,而 MatrixOne 不需要做此同步及多份存储。相比 SingleStore 已经对流计算,搜索,GIS,机器学习等 HTAP 以外的其他多种业务类型都有良好支持,MatrixOne 本身发展时间较晚,目前除了 HTAP 以外对其他负载类型的支持程度不够完善。 +- 从使用体验上来说,MatrixOne 以 MySQL 为核心兼容目标,包括从传输协议,SQL 语法,基本功能上都全面兼容 MySQL。MatrixOne 仅在 MySQL 不支持的能力上,如流式写入,向量类型等能力上有自己独特的语法。同时 MySQL 有部分高级能力,如触发器,存储过程等,由于用户使用率较低,MatrixOne 暂时未支持。总体来说,基于 MySQL 开发的应用,可以非常轻松的迁移到 MatrixOne 上,同时 MySQL 生态相关工具,如 Navicat,DBeaver 等可视化管理和建模工具,DataX,Kettle 等 ETL 工具,以及 Spark,Flink 等计算引擎,都可以直接使用 MySQL 相关 connector 与 MatrixOne 对接使用。 diff --git a/mkdocs.yml b/mkdocs.yml index 42e51e1f54..0a9c69fbc8 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -70,6 +70,8 @@ nav: - WAL 技术详解: MatrixOne/Overview/architecture/architecture-wal.md - 数据缓存及冷热数据分离架构详解: MatrixOne/Overview/architecture/architecture-cold-hot-data-separation.md - 流引擎架构详解: MatrixOne/Overview/architecture/streaming.md + - MatrixOne 与其它数据库对比: + - MatrixOne 的定位: MatrixOne/Overview/matrixone-vs-other_databases/matrixone-positioning.md - 最新动态: MatrixOne/Overview/whats-new.md - 快速开始: - 单机部署 MatrixOne: