什么数据库可以撑起

白癜风医院哪家最好 http://pf.39.net/bdfyy/bjzkbdfyy/150815/4679454.html
本文作者:李跃森

大家好,我是李跃森,目前负责腾讯云TBase数据库研发的相关工作。今天跟大家分享的内容主要分为两大章节:第一章,数据库技术的基本概念和基本架构;第二章,TBase产品的典型案例,以及在国产化上我们所做的具体工作。

数据库产品分类

首先,我们来看一下数据库的分类。数据库分类有多种方式,接下来会介绍三种分类。

一、按照数据库的业务场景划分

一般我们在谈论数据库的时候,首先会问数据库是OLAP还是OLTP?

OLAP,即在线分析型处理,这一块其实是按照业务特点来划分的。OLAP的第一个特点是数据量比较大,一般会要求PB级或者更大的数据量,数据量大了以后,对存储的成本会比较敏感,对数据压缩也会有一定的要求,OLAP业务系统的并发量不会特别的高。另外,OLAP场景下查询一般都会比较复杂,每个查询需要消耗大量的资源,会要求多个用户之间的查询要减少相互之间的影响,进行资源隔离。类似产品还是比较多的,比如:TeraData、SybaseIQ、GreenPlum、HPVetica、Gauss、VectorWise、AWSRedshift,以及现在比较流行的ClickHouse等。

OLTP,即在线事务型处理。在线事务处理数据量相对较小,普遍时延要求较高,要求达到毫秒级。在吞吐量这一块,普遍要求能够达到百万级以上的TPS。OLTP业务系统都是我们核心的业务系统,包括银行、保险、电信这样的实时在线的业务,业务特点决定对容灾能力有一些突出的要求,一般来讲要求99.99%以上的可靠性。传统上来讲,我们一般讲数据库都是指:Oracle、IBMDB2、Informix、MySQL,以及PostgreSQL这样的一些数据库。

这两年还兴起一个数据库概念叫做HTAP,即混合事务处理和在线分析型数据库。基本的思路是能够在单集群内部同时处理OLAP和OLTP两类业务,而且OLAP和OLTP业务之间有良好的资源隔离。典型产品这两年宣传的比较多的如TiDB,包括TBase设计之初也是这么考虑的。

二、按照时间划分

现在我们一般会讲OldSQL,这个所谓的OldSQL是指传统的SQL数据库。此类数据库的典型特点:它是一个完整的关系模型,具备完整的事务能力。像Oracle、IBMDB2、MySQL、PostgreSQL这些是传统的数据库。

在年前后,NoSQL数据库在互联网中大量兴起,泛指一些非关系型数据库,主要特点是没有完整的事务支持,而且没有模式的概念,普遍采用无共享架构,根据业务进行分区。另外在复制这一块,使用异步复制,保持最终的一致性。典型产品包括Redis、HBase、MongoDB等。

最近这两年,结合上面的OldSQL和NoSQL的概念,又提出了一个NewSQL的概念,NewSQL其实是结合了OldSQL和NoSQL的概念,它既具备了NoSQL的便利性,又能够支持传统数据库数据库架构,但是NewSQL在关系模型的完整性上存在一些问题。

三、按照架构

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

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

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

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

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

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

这里给大家重点介绍一下PostgreSQL数据库,如果是在十年以前提到PostgreSQL,大家可能都会一脸懵。经过这几年国内PostgreSQL社区的推广,PostgreSQL的认可度已经高了很多。

它是由图灵奖得主石破天主导的一个项目,以BSD风格协议开源。PostgreSQL的好处是源代码可以随意的修改和发布,甚至可以用来盈利。PostgreSQL在网站上声称是最先进的开源数据库,经过这么多年的发展,PostgreSQL的整个功能上距离商业数据库Oracle确实越来越近,作为开源产品也具备了一些Oracle不具备的灵活性和扩展能力。最近几年社区发布版本的速度是越来越快,技术思路逐渐向商业数据库靠近,相信后面会有越来越多的业务跑在PostgreSQL上。

很多人都问MySQL和PostgreSQL两个之间有什么区别。这边简单列举了一下它们的区别。

接下来跟大家分享下TBase的整体情况,先从TBase的简史说起。

TBase是基于PostgreSQL研发的一个分布式数据库,最早可以追溯到9年。当时是拿PostgreSQL来作为我们内部数仓的补充,支撑小数据量的分析。年开发了TBase第一个版本,内部开始使用。年TBase在


转载请注明:http://www.xcqg58.com/zyyd/zyyd/26842122.html

  • 上一篇文章:
  •   
  • 下一篇文章: 没有了