常见数据库分类、架构及其使用场景等概述

0    277    6

Tags:

👉 本文共约16063个字,系统预计阅读时间或需61分钟。

数据库分类

数据库架构分类

数据库的划分经过多年的演进,大概有三种架构。

第一种是单体数据库(Shared-Everything),所谓单体数据库就像之前我们经常提到的Oracle、PostgreSQL、MySQL这种单机的数据库,单个实例能够提供独立的服务,主备机通过流复制来做HA,这是传统的架构。

第二种是共享存储架构(Shared-Storage),多个数据库实例同时访问一份存储,数据是存储在专门的存储设备中,这里的存储设备一般是指磁盘阵列或者类似于这样专用的存储设备,现在我们能看得到的包括Oracle RAC、SybaseIQ都是这样的架构。

第三种是无共享(Shared-Nothing),也就是我们常说的MPP。每个DN节点存储一个数据分片,在DN节点之上会有另外一层节点,这层节点在不同的数据库中有不同的名字,但是它的作用其实是一样的,都是接收业务请求,然后分发,同时对业务请求进行返回。TeraData、GreenPlum、TBase、TDSQL、TiDB、Hadoop都是属于这种架构。

随着云业务形态的诞生,这两年在传统的数据库架构基础上,产生一种比较流行的新架构--云原生架构,日志即数据库。

img

它会把数据库的业务逻辑沉到底层的存储节点里面去,存储节点和上面的计算节点是进行逻辑上的分离,其实也就是物理上的分离,另外一种叫法是计算与存储分离。在下层的存储集群之间,通过一致性协议来保证多个副本之间的一致性,统一对上层的数据节点提供一个可靠的存储服务。这里补充说明下:数据库节点就是把数据库的业务逻辑,包括SQL解析及SQL的执行都做到上层去。类似的产品现在也比较多,基本上几个大的云厂商都有自己的产品。主要有两个技术优点,1、可以做到存储计算分离,存储和计算可以做到单独扩容,2、它可以实现存储的超卖,这在云上这是一个比较有价值的能力。

分布式架构

https://cloud.tencent.com/developer/article/1847790

分布式数据库有两大流派,NEWSQL和POSTGRESQL-XC ,NEWSQL 的分布式主流的理论来源自 GOOGLE 的分布式数据库spanner,以及相关理论的白皮书,而另一派的分布式数据库来自于POSTGRESQL-XC, 今天我们看看到底POSTGRESQL-XC 这个流派的方式是什么,有什么特点,当下那些分布式数据库采用了POSTGRESQL-XC。

POSTGRESQL-XC 的研究自2002年开始,主要是日本的NTT公司进行相关的研究,踏实基于水平可伸缩的数据库系统share nothing无架构的方式. 最早POSTGRESQL-XC 最早的名字叫RiTaDB, 后来改名为POSTGRESQL-XC, 支持全局事务,表分区,复制以及查询计划在各个节点并行执行的shared nothing 架构.

在数据库架构中有一种独特的结构被称为星型结构,在很多的数据库仓库和OLTP的数据库结构中都可以发现其中的身影,星型的结构一般存在较少的大表和一些普通的表,或者数据量较少的表. 例如,产品目录表可能是普通表,而销售的订单表是BIG TABLE.

POSTGRES -XC 的结构主要解决的是大表的问题,将大表通过关键主键的方式来将一张大表分布在不同的数据存储节点, 主要对于写压力的释放还是通过将数据分散在不同的sharding 分片中来进行的.

NewSQL 特性

NewSQL⼀词最早由451 Group的分析师Matthew Aslett在研究论⽂中提出。NewSQL是一类现代关系型的DBMS,旨在为NoSQL的OLTP读写负载提供相同的可扩展性能,同时仍然提供事务的ACID保证。简单来讲,NewSQL就是在传统关系型数据库上集成了NoSQL强大的可扩展性。传统的SQL架构设计基因中是没有分布式的,而NewSQL生于云时代,天生就是分布式架构。NewSQL的优点在于兼具NoSQL对海量数据的存储管理能力和传统关系数据库的ACID、SQL等特性,但其也有局限性,即不具有SQL系统的通用性,对传统SQL系统的丰富工具仅仅提供部分访问。⽬前较为知名的NewSQL数据库有Google Spanner、Amazon Aurora、CockroachDB。

  • NoSQL 数据库不支持 ACID 特性, 在很多场合下,ACID 特性使系统在中断的情况下也能够保证在线事务的准确执行;
  • 大多数 NoSQL 数据库提供的功能比较简单,这就需要用户在应用层添加更多的功能;
  • NoSQL 数据库没有统一的查询语言,不支持 SQL 查询,这也在一定程度上增加了开发者的负担。

为了解决上述难题,NewSQL 数据库应运而生。NewSQL 数据库不仅具有 NoSQL 数据库对海量数据的存储管理能力,同时还保留了传统数据库支持的 ACID 和 SQL 特性。

NewSQL 是一类新的关系型数据库, 是各种新的可扩展和高性能的数据库的简称。

https://zhuanlan.zhihu.com/p/95650799

newSQL 提供了与 noSQL 相同的可扩展性,而且仍基于关系模型,还保留了极其成熟的 SQL 作为查询语言,保证了ACID事务特性。

简单来讲,newSQL 就是在传统关系型数据库上集成了 noSQL 强大的可扩展性。

传统的SQL架构设计基因中是没有分布式的,而 newSQL 生于云时代,天生就是分布式架构。

noSQL 的主要特性:

  • SQL 支持,支持复杂查询和大数据分析。
  • 支持 ACID 事务,支持隔离级别。
  • 弹性伸缩,扩容缩容对于业务层完全透明。
  • 高可用,自动容灾。

img

MPP架构

什么是MPP?

MPP (Massively Parallel Processing),即大规模并行处理或海量并行处理。简单来说,MPP是将任务并行的分散到多个服务器和节点上,在每个节点上计算完成后,将各自部分的结果汇总在一起得到最终的结果(与Hadoop相似)。

MPP架构特征

  • 任务并行执行;
  • 数据分布式存储(本地化);
  • 分布式计算;
  • 私有资源;
  • 横向扩展;
  • Shared Nothing架构。

什么是MPP数据库?

MPP数据库是一款 Shared Nothing架构的分布式并行结构化数据库集群,具备高性能、高可用、高扩展特性,可以为超大规模数据管理提供高性价比的通用计算平台,并广泛地用于支撑各类数据仓库系统、BI 系统和决策支持系统

MPP数据库的使用场景?

MPP数据库有对SQL的完整兼容和一些事务的处理能力,对于用户来说,在实际的使用场景中,如果数据扩展需求不是特别大,需要的处理节点不多,数据都是结构化的数据,习惯使用传统的RDBMS的很多特性的场景,可以考虑MPP,例如Greenplum/Gbase等。

主流 MPP 架构数据库介绍

系统架构之SMP、NUMA和MPP

主流的系统架构主要有三类:对称多处理结构(SMP),非一致存储访问结构(NUMA)和海量并行处理架构(MPP)。其对应的特点与不足分别如下:

  • SMP:

较为典型的包括Oracle、MySQL等

特点:

存储,包括CPU、内存和IO都是共享的。在一台机器就能支撑起整个网站的Web时代,SMP架构是非常流行的,足以支撑前端业务。

不足:

扩展能力有限。随着业务的扩大,数据量的增长,在业务场景上就有了很大的限制。

  • NUMA

特点:

拥有多个CPU模块,每个模块由多个CPU组成,有独立的本地内存;节点之间通过互联模块进行连接和信息交互,较好解决SMP系统的扩展问题。

不足:

互联模块访问效率和本地内存访问不在一个效率层级,系统性能无法随着CPU数线性增加。

  • MPP

这个是我们今天要讲解的重点,也是Greenplum的架构。

特点:

MPP是采用SMP组成的多个服务器,多个服务器共同完成任务。在硬件使用上可以发挥SMP架构的优势,多节点并行处理时,内存、CPU、网络、IO、磁盘均不共享,即Share-Nothing架构,每个节点只访问本地内存和存储,节点信息交互和节点本身是并行处理的。所有数据节点角色一样,可以提升并行计算能力。

不足:

MPP架构也存在一些不足,如果多台服务器在进行并行处理时,如果有一台服务器出现部分性能下降,会影响到整个MPP集群的性能,即木桶的短板效应。MPP架构集群规模不能过大,不能像Hadoop那样,几千个集群同时运行某个查询逻辑。此外,并发度不能过高。MPP架构正常情况下都是进行两阶段事务提交的,需要有一个事务汇总和底层事务查询的过程,如果并发过高,资源损耗会过大,会影响到整体系统的响应。

不同的系统架构有其擅长的应用场景,很难说某个架构更好,在其擅长的应用场景下,都可以发挥其优势。

多模数据库

多模数据库(Multi-Model Database)是指同一个数据库支持多个存储引擎,可以同时满足应用程序对于结构化、半结构化、非结构化数据的统一管理需求。通常来说,结构化数据特指表单类型的数据存储结构,典型应用包括银行核心交易等传统业务;而半结构化数据则在用户画像、物联网设备日志采集、应用点击流分析等场景中得到大规模使用;非结构化数据对应着海量的图片、视频、和文档处理等业务,在金融科技的发展下增长迅速。多模式数据管理能力,使得数据库能够进行跨部门、跨业务的数据统一存储与管理,实现多业务数据融合,支撑多样化的应用服务。在架构上,多模 Multi-model也是针对云数据库需求的,使得数据库使用一套数据管理体系可以支撑多种数据类型,因此支持多种业务模式,大大降低使用和运维的成本。

国产数据库

https://mp.weixin.qq.com/s/0fsEBzMbLxEd14e26TzjXA

图片

OLAP、OLTP、HTAP

https://www.dbaup.com/oltpolaphehtapdequbie.html

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信dbaup66,谢谢!
AiDBA后续精彩内容已被站长无情隐藏,请输入验证码解锁本文!
验证码:
获取验证码: 请先关注本站微信公众号,然后回复“验证码”,获取验证码。在微信里搜索“AiDBA”或者“dbaup6”或者微信扫描右侧二维码都可以关注本站微信公众号。

标签:

Avatar photo

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复