合 常见数据库分类、架构及其使用场景等概述
Tags: 数据库大数据国产数据库NewSQLMPP分类OLAP列存储HTAPSMPOLTP技术选型行存储NoSQL使用场景分布式架构
数据库分类
数据库架构分类
数据库的划分经过多年的演进,大概有三种架构。
第一种是单体数据库(Shared-Everything),所谓单体数据库就像之前我们经常提到的Oracle、PostgreSQL、MySQL这种单机的数据库,单个实例能够提供独立的服务,主备机通过流复制来做HA,这是传统的架构。
第二种是共享存储架构(Shared-Storage),多个数据库实例同时访问一份存储,数据是存储在专门的存储设备中,这里的存储设备一般是指磁盘阵列或者类似于这样专用的存储设备,现在我们能看得到的包括Oracle RAC、SybaseIQ都是这样的架构。
第三种是无共享(Shared-Nothing),也就是我们常说的MPP。每个DN节点存储一个数据分片,在DN节点之上会有另外一层节点,这层节点在不同的数据库中有不同的名字,但是它的作用其实是一样的,都是接收业务请求,然后分发,同时对业务请求进行返回。TeraData、GreenPlum、TBase、TDSQL、TiDB、Hadoop都是属于这种架构。
随着云业务形态的诞生,这两年在传统的数据库架构基础上,产生一种比较流行的新架构--云原生架构,日志即数据库。
它会把数据库的业务逻辑沉到底层的存储节点里面去,存储节点和上面的计算节点是进行逻辑上的分离,其实也就是物理上的分离,另外一种叫法是计算与存储分离。在下层的存储集群之间,通过一致性协议来保证多个副本之间的一致性,统一对上层的数据节点提供一个可靠的存储服务。这里补充说明下:数据库节点就是把数据库的业务逻辑,包括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 生于云时代,天生就是分布式架构。