MatrixOne v1.0.0-RC1 发布报告
我们非常高兴地宣布 MatrixOne 内核 v1.0.0-RC1 版本于 2023 年 8 月 24 日正式发布!
这是一个重要的里程碑,标志着 MatrixOne 已经基本实现一个超融合异构云原生数据库的主要功能。MatrixOne 内核 1.0 GA 及 MatrixOne Cloud 正式版也将在近期发布,敬请关注!
MatrixOne 1.0.0-RC1 功能概览
MatrixOne 的设计和开发始终聚焦在资源利用最大化和超高性价比、简化数据处理架构、降低用户数据处理难度等几个方面。MatrixOne 1.0.0-RC1 的功能与性能已经基本上达成了架构设计目标,完整的实现了云原生及存算分离、冷热分离和细数据颗粒度的读写分离架构,具备了一款 SQL 数据库产品的主要功能,且在 OLTP,OLAP,时序几个不同负载下的性能均表现良好,也已经提供了最基础流计算能力。
SQL 能力
- 语法:整体 SQL 语法与 MySQL 8.0 保持高度一致
- DDL:支持常见的创建,修改,删除数据库、表、视图、分区表的 DDL 功能
- DML:支持常见的 insert,update,delete 及数据导入导出语句
- 基础查询功能:支持常见的分组,去重,过滤,排序,限定,正则表达式等基础查询能力
- 高级查询功能:支持视图,子查询,联接,组合,公共表表达式(CTE),窗口函数,Prepare 预处理等高级查询能力
- 数据类型:支持整型,浮点数,字符串,时间日期,布尔,枚举,二进制,JSON 类型
- 聚合函数:支持常见的 AVG,COUNT,MIN,MAX,SUM 等聚合函数
- 系统函数及操作符:支持常见的字符串,日期时间,数学函数及常见操作符
- 索引及约束:支持主键,唯一,非空,外键,自增约束及次级索引
- 流计算:支持流式表的创建,及对 Kafka 数据源的接入
- 多租户:支持数据库内部租户的创建与管理
导入与导出
- 支持 INSERT,LOAD,SOURCE 等方式批量导入数据
- 支持 SELECT INTO 及 modump 等方式导出数据
- 支持从本地文件及对象存储中直接导入数据
事务
- 支持 ACID(原子性、一致性、隔离性、持久性)事务特性
- 支持事务的开始,提交和回滚操作
- 支持悲观及乐观事务,用户可自主切换
- 提供提供隔离级别的配置选项,包括快照隔离,读已提交
部署架构
- 支持单机及分布式两种部署架构
- 支持源码,二进制包,docker 及 k8s 的部署形式
- 支持公有云,私有云,物理机部署
开发与运维管理
- 支持常见开发语言如 Java,Python,Golang 的原生连接器如 JDBC,pymysql,go-sql-driver
- 支持常见的各语言 ORM 框架如 MyBatis,Spring JPA,SQLAlchemy,GORM
- 支持常见的 MySQL 管理工具如 Navicat,MySQL Workbench,DBeaver,HeidiSQL
- 提供了单机及分布式命令行管理工具 mo_ctl
- 自带完整的数据库日志及 Query 记录能力,可对接 Grafana 可视化组件,实时监控集群的状态
安全与权限管理
- 支持传输层 TLS 加密连接
- 支持基于角色的访问控制(RBAC)
备份还原
- 支持基于 modump 工具的逻辑备份
- 支持基于 mobr 工具的物理备份
MatrixOne 适用的应用场景
MatrixOne 产品适用于以下几个应用场景。我们非常欢迎有以下业务痛点及需求的用户与我们联系进行试用测试。
轻量级 HTAP 场景
企业常用的业务系统,如 OA,ERP,CRM 等系统随着业务的发展数据量增大,传统的单机数据库无法满足其性能需求,尤其在特殊时间点的业务分析需求,很多企业会专门配备一套分析数据库系统来满足月末,季末等重要节点的统计报表需求,或者采用分库分表等形式来降低查询负载。这种场景采用 MatrixOne 数据库可以用一套数据库同时满足业务系统和分析系统的需求,同时具备强大的扩展性,随着业务增长可以无缝扩容。
实时分析场景
针对企业典型的 OLAP 类型应用,如看板、BI 报表等分析系统,往往需要进行海量数据的分析,数据量一旦较为庞大则会面临性能瓶颈,导致时效性较差。MatrixOne 具备强大的分析性能和可扩展能力,可以针对各类复杂和数据量庞大的 SQL 查询进行加速,获得秒级体验的效果,提高企业决策分析的敏捷度。
时序数据场景
随着传感器和网络技术的大量应用,海量的各类 IoT 设备生产了大量的数据,比如制造业工厂产线,新能源汽车,城市安防监控摄像头等等,其规模可能轻易能达到数百 TB 甚至 PB 级别,而对数字化的需求也越来越多的要求企业存储和利用这些数据。但是传统的数据库方案无法满足如此海量且大规模的实时数据写入,以及加工应用的场景。MatrixOne 具备强大的流式数据写入和加工的能力,同时强大的可扩展性可以适应任意规模的负载和数据量,可以完全满足该场景的需求。
负载波动较多的创新业务场景
对于游戏,电商,文娱,社交,新闻等互联类应用来说,用户数量庞大且业务波动剧烈而频繁,在热门事件发生的时候,往往需要大量的计算资源来支撑业务需求。MatrixOne 完全云原生化的架构具备超强的扩展性,可以跟随业务的变化自动的快速扩缩容,极大的降低用户的运维难度。
企业级 SaaS 场景
企业级 SaaS 应用在近几年成爆发式的增长趋势,SaaS 的应用开发中都需要考虑自己的多租户模型,传统的方案中会有多租户共享数据库实例和单租户独享数据库实例两种模式,但是会面临管理成本和隔离性的两难选择。MatrixOne 自带多租户能力,租户之间天然负载隔离且可以独立扩展,同时又提供了统一管理能力,可以兼顾企业对成本,管理简易度和隔离性的需求,是 SaaS 应用的最佳选择。
快速试用
社区用户及企业开发者都可以通过以下命令一键部署 MatrixOne 进行试用。
docker pull matrixorigin/matrixone:1.0.0-rc1
本文档网站也提供详细的架构说明、安装指南和开发教程,帮助您探索 MatrixOne 的能力。
此外,我们的 GitHub 网站和社区微信群欢迎您提问、讨论或反馈。
0.8.0 到 1.0.0 的迭代更新
在这两个月的版本迭代中,我们也着重优化了我们面向生产环境的一些功能及可用性。
重点新功能
物理备份(企业版)
这个版本我们引入了物理备份功能,使用户能够方便地备份和还原数据库。现在,您可以轻松创建数据库的快照,并在需要时恢复到先前的状态,确保数据的完整性和可靠性。
流计算
作为 HSTAP 架构的最后一块拼图,我们完成了流计算的框架设计,并在这个迭代增加了创建流式表的相关能力,同时实现了一个 Kafka 的连接器,用于满足大量时序场景的流式数据接入需求。
递归 CTE
递归 CTE 是一个重复执行初始 CTE 以返回数据子集直到获取完整结果集的公用表表达式。本迭代的实现将使得用户可以轻松地处理具有层次结构的数据,能够使用递归查询构建更复杂和灵活的查询。
可用性提升
MySQL 建表语句兼容
我们进一步改进了 MatrixOne 对 MySQL 的兼容性,使其能够更好地支持 MySQL 建表语句。现在用户可以无缝迁移现有的 MySQL 应用程序到 MatrixOne 中,而无需修改现有的建表语句。
扩缩容会话迁移
我们增加了扩缩容会话迁移的能力,使用户能够在分布式实例扩容或缩容时无缝迁移会话。用户可以在不影响现有会话和业务的情况下,轻松地调整 MatrixOne 的容量。
系统配置简化
我们大幅简化了单机与分布式版本的启动配置项,使用户能够更快速地上手启动数据库。
mo_ctl 工具优化
我们针对单机与分布式的 mo_ctl 运维工具进行了功能优化,提供了更强大和易用的运维功能。现在您可以通过分布式 mo_ctl 工具(企业版)轻松实现部署,升级,扩缩容等运维操作。
其他新功能
- 增加
Replace
语句 Alter Table
完善了修改列属性相关能力- 增加了
Create Stage
语句,简化导入导出的流程 - 增加
Show Processlist
语句查看当前系统状态 - 增加
enum
类型 - 增加
Year
类型 - 增加
To_Days
/To_Seconds
系统函数 - 优化
Group by
行为,可以支持别名
仍存在的已知问题
- 次级索引没有加速查询能力
- 内存泄漏仍会有偶发,可能导致系统内存溢出
- 分布式版本中 DN 存在一定的单点风险
更详细的更新日志
https://github.com/matrixorigin/matrixone/compare/v0.8.0…v1.0.0-rc1