StoneDB:开源MySQL HTAP数据库及其演进计划(一)

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
可观测可视化 Grafana 版,10个用户账号 1个月
简介: StoneDB:开源MySQL HTAP数据库及其演进计划(一)

云原生实时数仓-StoneDB:开源MySQL HTAP数据库及其演进计划(一)

嘉宾信息
李浩 StoneDB首席架构师 StoneDB PMC


StoneDB:开源MySQL HTAP数据库及其演进计划(一)


内容介绍

一、 Who am I? A brief introduction of StoneStoneDB

二、Present of StoneStoneDB

三、Where StoneStoneDB will go?


今天给大家带来的分享是开源的MySQL htp数据库及其演进的计划,那么首先介绍一下StoneDB的应用场景是什么?我们为什么会做StoneDB这样产品?


一、Who am I? A brief introduction of StoneStoneDB

image.png

那么StoneDB是作为开源的MySQL http的数据库,其主要是为了解决在MySQL生态下面MySQL在app分析能力上的不足,那么从以下几个方面来讨论一下我们StoneStoneDB产品的优势或者是一些能力。
首先第就是完全兼容力MySQL时代,因为我们是基于MySQL上面做的htp数据库,因此,对于生态我们是完全兼容的,无论是从语法使用习惯上带来的好处是如果业务可以频发的迁移到我们自从StoneDB上面,第二个就是事务分析的一体化,因为我们是htp数据库,因此,无论是tp负载或者说我们均可以承载,同时在app上面,也保留了事物的acid的特性,第三个就是完全的开源,带来的好处是,我们可以去利用社区广大的一些人才资源,同时在互联网上存在着关于MySQL海量的一些解决方案,或者说一些知识库,这也是我们给我们StoneDB带来一个好处,就是我们所有遇到的问题,可以得到快速的社区的响应,以及相应的一些丰富的人才,再是十倍特性,主要是因为我们采用了触造级过滤以及知识网格的方式,同时,我们在执行的时候,会引入项量化执行的策略,因此带来十倍的性能,十倍的导入速度,那么是主要是通过预处理方式,将数据进行预处理,使得我们在导入的过程中无需经过层的一些解析,直接会把数据去加载到存储引擎上面,来获得十倍的导入速度,那最后是成本是,我们是完全进入MySQL生态的,因此,以前的解决方案,或者etf工具,或者运文的习惯,运维的人员的一些能力,支持他完全可以去兼容到我们,因此,总体t c o成本上可以最多给原来的1/10的成本。


1、产品架构

image.png

我们从产品的架构来讨论一下,上边是我们StoneDB的鉴临版本,另外是2.0版本,那么一在我们StoneDB中,我们引入了目的,劣势存储引擎,它主要的作用就是使得我们所有的app上的一些数据,会以列存的方式去存储在天目引擎上面,带来的好处在下面,会比较详细的去来分析一下,

 

2、数据组织


image.png

首先直观的好处就是我们在StoneDB上,一条查询涉及到一些大数据上的app的分析的时候,使得查询能力可以得到飞速的提升,那么从数据的组织上我们可以看出是采用的方式及我们在StoneDB上存在着行存和列存两种存储格式,那么主要是为了方面及引擎,那么,基于内存的存储引擎,就是我们所引入的新的天目存储引擎,

所有的数据是列存的方式进行组织,组织的方以列存的方带来好处就是可以对数据进行一些压缩,可以选择一些高效的压缩算法,可以进步,同时对于一些catch也是比较友好的,那么在查询的过程中,会利用各种针对于列运算进行一些并发的执行,使得我们查询的效率或者现场进一步的提升。
同时,在在查询扫描的过程中,创建索引,因为我们是利用测套集合知识网格的方式提供这样方式,不需要进行索引,给获得相对比较高效的,相较于MySQL来说,高效的app的处理的能力,从数据压缩的角度来看,由于我们是列存的方式,同时,每一列这种数据的类型,它的分布情况是比较比较比较有大量的一些冗余或者比较相似,为我们数据加缩提供了很好的使用的场景,所以因为支持多到20种以上的自信的压缩方法,你方式等压缩算法,从查询处理的部分来看,首先我们查询优化是基于知识网格的进行优化。


3、数据处理

image.png

那么就是说,在我们数据加载或者在执行的过程中,会构建知识网格,构建知识网格是为了在我们查询过程中,通过知识网格和塑造集来进行数据的减值,对于在查询中无关数据,会把它舍弃掉,我们只会关注相关的数据么带来的好处就是我们那io可以进入去节约。

我们在检索的过程中所涉及到的数据量的一些io,会大大的减少。


 4、数据导入

image.png

进一步会提高我们在查询处理方面的一些能力,再就是从数据导入方面看,刚才也提到了,我们导入是经过server层的一些处理直接是通过预处理,直接从二进制的方式导入天目引擎,好处就是说,与传统的逻辑导入的方式不同,那么逻辑导入方式,需要经过有层的一些sq解析,那么在解析包括这部分的处理过程中会消耗大量的cpu资源,因此双StoneDB的导入,是无需要经过的一些serve处理,带来的好处就是我们可以节约大量的cpu资源,使得我们cpu可以更好的利用到我们在真正的导入过程中,处理能力。

image.png

再就是所支持的部署方式,总共有以下几种部署方式,最简单的是基础方式,就是我们单节点单实例的部署方式,除了这种单节点的部署方式,主要是面向于中小的客户,要求不是特别高的情况下,如果需要对于高可用业务的一些稳定性有相关的要求的时候,可以采用高可用的部署方式,那么再可以提供读,读写分离部署方式,最后就是三节点的部署方式,那么接下来我们会介绍一下当前的情况。

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
3天前
|
关系型数据库 MySQL 数据库
docker MySQL删除数据库时的错误(errno: 39)
docker MySQL删除数据库时的错误(errno: 39)
23 0
|
3天前
|
Java 关系型数据库 MySQL
【MySQL × SpringBoot 突发奇想】全面实现流程 · xlsx文件,Excel表格导入数据库的接口(下)
【MySQL × SpringBoot 突发奇想】全面实现流程 · xlsx文件,Excel表格导入数据库的接口
12 0
|
3天前
|
Java 关系型数据库 MySQL
【MySQL × SpringBoot 突发奇想】全面实现流程 · xlsx文件,Excel表格导入数据库的接口(上)
【MySQL × SpringBoot 突发奇想】全面实现流程 · xlsx文件,Excel表格导入数据库的接口
18 0
|
1天前
|
关系型数据库 MySQL API
实时计算 Flink版产品使用合集之可以通过mysql-cdc动态监听MySQL数据库的数据变动吗
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
13 0
|
3天前
|
前端开发 关系型数据库 MySQL
【MySQL × SpringBoot 突发奇想】全面实现流程 · 数据库导出Excel表格文件的接口
【MySQL × SpringBoot 突发奇想】全面实现流程 · 数据库导出Excel表格文件的接口
24 0
|
3天前
|
SQL 关系型数据库 Serverless
阿里云关系型数据库RDS
阿里云关系型数据库RDS
16 2
|
3天前
|
关系型数据库 MySQL 数据库
mysql 设置环境变量与未设置环境变量连接数据库的区别
设置与未设置MySQL环境变量在连接数据库时主要区别在于命令输入方式和系统便捷性。设置环境变量后,可直接使用`mysql -u 用户名 -p`命令连接,而无需指定完整路径,提升便利性和灵活性。未设置时,需输入完整路径如`C:\Program Files\MySQL\...`,操作繁琐且易错。为提高效率和减少错误,推荐安装后设置环境变量。[查看视频讲解](https://www.bilibili.com/video/BV1vH4y137HC/)。
24 3
mysql 设置环境变量与未设置环境变量连接数据库的区别
|
3天前
|
关系型数据库 MySQL 数据库连接
用Navicat备份Mysql演示系统数据库的时候出:Too Many Connections
用Navicat备份Mysql演示系统数据库的时候出:Too Many Connections
19 0
|
3天前
|
存储 Oracle 关系型数据库
oracle 数据库 迁移 mysql数据库
将 Oracle 数据库迁移到 MySQL 是一项复杂的任务,因为这两种数据库管理系统具有不同的架构、语法和功能。
24 0
|
3天前
|
关系型数据库 MySQL Linux
【MySQL-10】数据库函数-案例演示【字符串/数值/日期/流程控制函数】(代码演示&可cv代码)
【MySQL-10】数据库函数-案例演示【字符串/数值/日期/流程控制函数】(代码演示&可cv代码)
【MySQL-10】数据库函数-案例演示【字符串/数值/日期/流程控制函数】(代码演示&可cv代码)