一、背景
在信创“自主可控”的浪潮下,政企行业首当其冲,基于国产化信创的要求,本部门某业务后端应用也需要针对分析开源组件的风险和开源协议的商业应用限制;能用国产化替代的评估后尽可替代割接,本期针对传统数据库Mysql向达梦数据库迁移的记录。
相关资源:达梦官方文档、达梦在线服务平台、墨天轮排行榜、IDC数据报告、数据报告、洞见研报
二、数据库现状
无论什么样的数据库都离不开数据库本身定义的作用,即它是一套承载相互有关联关系的若干数据的集合,负责组织、存储和管理数据的仓库,一般由一个数据库管理系统(DBMS)来控制。数据库按照不同维度,分类方法多种多样,按数据结构可分为关系型数据库和非关系型数据库(NoSQL数据库、NewSQL数据库等);按设计架构可分为单机数据库、集中式数据库和分布式数据库。按部署方式可分为本地部署和云部署,按应用场景/功能可分为事务性数据库(OLTP)、分析型数据库(OLAP)以及混合型关系数据库(HTAP),还可按商业模式分为开源数据库和商业数据库(闭源)。
国内数据库的发展,传统厂商多采用集中式设计架构,以达梦、人大金仓、南大通用、万里开源为代表,而新兴厂商则利用分布式进行换道超车,以PingCAP、巨杉数据库、星环等初创企业为代表,随着数据库云化部署大势所趋,云厂商则兼顾了前2者,但也主要是以分布式为主,分布式数据库是通过计算机网络将物理分散的多个数据库单元连接组成的逻辑上统一的数据库;目前分布式数据库的技术路线分为三类:分库分表+中间件方案、共享存储分布式数据库、去中心化的分布式数据库。国内数据库市场,关系型数据库市场占比90%左右,这些年非关系型正在逐年上升。国产供应商主要代表有华为、阿里、达梦、人大金仓等,这4家合计占据约30%份额,根据IDC数据,截至2022年末,在国内关系型数据库中,公有云数据库的市场中以阿里云、华为、腾讯为代表的国产数据库厂商份额已远超海外数据库厂商。
2024年2月国内数据库排行榜:
三、达梦数据库
3.1、产品介绍
当前官网最新版本为DM8,相较于目前主流产品架构:不同特性依靠不同内核去实现,DM8独特采用了双存储引擎架构,行存储引擎和列存储引擎可相互配合、协同工作。同时实现了计算层和存储层的分离,同一内核既支持共享存储式集群,也支持分布式事务集群。
产品特性:
3.2、产品架构
3.3、部署使用
3.4、配置及最佳实践
3.5、FAQ
四、mysql数据库迁移达梦
4.1、
五、数据库趋势
5.1、HTAP 数据库
HTAP,全称为Hybrid transaction and analysis processing,即混合事务和分析处理。HTAP是混合型关系数据库,是能同时提供OLTP和OLAP的混合关系型数据库。一般对OLTP的数据存储通常采用行式组织,而OLAP采用列式组织,OLTP( (On Line Transaction Processing,)是针对写优化设计的,OLAP(Online analytical processing)是针对读优化设计,OLTP的业务通常对实时要求比OLAP高很多,一般的做法是“”OLTP的数据定期会通过ETL(提取,转换,加载)工具把数据同步导入OLAP系统中,但这也导致OLAP的数据滞后,分析出来的结果时效性不够,对决策支持类如 BI 等系统的支持不够。随着越来越多的业务对于 AP 的要求越来越向着 TP 的指标看齐,对实时性要求同样高,要求 AP 系统能够实时反映出当前 TP 系统中的实际数据。同时,AP 系统应可以支持数据的更新等;人们希望能够同时满足业务对于 TP 负载和 AP 负载的需求,基于此提出了HTAP,以实现混合 OLTP 和 OLAP 业务同时TP和AP,它打破了事务处理和分析之间的“墙”。它支持更多的信息和实时业务的决策。但真正的 HTAP 并不应该是简单地将 TP 和 AP 相加:TP + AP ≠ HTAP。HTAP 一定是将 TP 和 AP 进行高度融合的产物。
1)广义的HTAP数据库:
- 在关系数据模型上进行OLTP(联机事务处理)时具有强一致性; OLTP主要是基本的、日常的事务处理。强调数据库内存效率,强调内存各种指标的命令率,强调并发操作。
- 融合分布式能力,从而具有高扩展性以内存型主列存为基础+增量行存来实现支持HTAP;第一类:以列存为主,主列存主要处理OLAP类分析查询,增量行存负责OLTP类事务操作,并直接将更新数据定期合并到主列存中,以OLAP的性能很高,OLTP处理性能中等,代表:SAP HANA。第二类:分布式行存为主存储,列存为行存的副本,主节点在处理事务时写入日志,并异步式地向其他节点发送最新日志,通过分布式协议进行事务处理。其中,有部分节点会被选为列存节点,负责加速复杂查询,此类系统面向OLTP和OLAP的扩展性都很高,代表:TiDB。
2)狭义的HTAP数据库:指采用行列混存或行列转化技术来同时支持事务能力和分析功能的数据库
- 行存为主,内存列存为辅:针对有需要的表会同时存在一份行存储和列存储,在列存储上做分析操作,在行存储上进行更新,定期同步到列存储里,可灵活指定需要采用行存与列存的表。主要难点为哪些数据转为列存、如何用行存和列存回答查询,代表:Oracle;
- 主机行存、备机内存列存:备机通过日志复制转为内存的列存提供分析能力。代表系统为MySQL HeatWave,分析型查询由系统查询引擎基于代价估计后决定是否下推到内存列引擎中执行,常被访问的热数据将会留在内存中,不常使用的冷数据将会被压缩后持久化到外存中;
- 多副本行列共存,通过多副本进行存储,主采用行存,副本采用列存:代表性系统为TiDB,行存数据存储在TiKV中,列存数据存储在TiFlash中,行存和列存松耦合,通过异步复制Raft log的方式将更新从行存节点同步到列存节点,列存节点不参与Raft协议的日志提交和leader选举等分布式事务,具有较高负载隔离性和扩展性,数据分析新鲜度偏低;
- 列存为主,行存为辅:增量数据通过delta表定期转为列存,主列存主要处理OLAP类分析查询,增量行存负责OLTP类事务操作,并直接将更新数据定期合并到主列存中。此类系统因为以列存为主,所以OLAP的性能很高,且增量行存直接与列存连接,数据分析的新鲜度也很高。但缺点也很明显,就是OLTP处理性能中等,扩展性也不高,负载隔离性很低,代表系统为SAP HANA,主列存通过压缩、向量执行和OLAP多维分析等技术进行查询加速,同时利用CPU多级缓存机制优化事务处理。
随着数据技术的不断创新,未来 HTAP 数据库会进一步加强 AP 和 TP之间的连接和融合,在数据库内部实现 AP 和 TP 之间的内置流(Streaming)处理能力。通过将 ETL 工作内置于数据库当中,让 HTAP 数据库同时具备 AP、TP 和流(Streaming)能力。用户可以按需创建各类表,运用流处理能力将表连接,从而获得简单、便捷的数据处理能力。另数据库与大数据技术边界不断模糊,呈现融合趋势,比如面向传统企业和中小企业的:湖仓一体;
相关资源:HTAP的关键技术有哪些?
5.2、列存储库:(代表Greenplum)
上面提到的HTAP,其中列存技术的发展是实现 HTAP 的基石;面向列存的数据,最早可以追溯到 1970 年,随着转置文件(transposed files)的出现,在面向时间的数据库(Time oriented Database)中使用转置文件进行医疗数据记录。Cantor 被称为是最早的一个与现代列存数据库相似的系统。
我们常见的传统数据库多以行存(Row-based)模型为主,它的数据物理上以行,页,段等方式进行分级管理的,表中的一行数据由 N 个数据属性构成,N 条数据构成一个页面,多个页面又构成了一个段,最后如此将众多的记录通过DBMS高效管理起来。对应行存方式组织数据,当在以分析型业务为主的系统中,分析所涉及的数据量通常非常多,将会有大量的记录会参与到分析计算中。而这些大量的记录需要从磁盘中读取到我们数据库的缓存中,由于数据是以行的方式组织,而我们的分析计算只需要特定的几个属性,但是需要把全部记录从需要从磁盘读取到缓存中,造成了不必要内存和IO资源的浪费;对此,列存储提出了DSM 模型,该模型中表的数据是按属性(列)的方式进行组织的,数据按属性形成一个新的子关系组织在一起,并独立于其他属性,这类数据在磁盘上存储时,我们可以对其进行压缩处理,从而节省存储,IO,内存等资源,另外,DSM 模型还属于 CPU Cache 友好型。