原标题:干货连载|这才是下一代企业级数据库系统该有的样子!
在上周落幕的2019数据技术嘉年华大会上,阿里巴巴集团副总裁、阿里云智能数据库事业部总负责人李飞飞与大家分享了下一代企业级数据库系统。
数据库:云上应用关键一环
如今,企业上云已是大势所趋。在上云的过程中,数据库则被认为是云上至关重要的一环。云最开始提供的是IaaS,而随着各种智能化应用的兴起,数据库就成为了从IaaS到智能化应用连接的关键。
阿里云数据库 中国云数据库领导者
目前,阿里云是中国以及整个亚太地区排名第一的云数据库服务商,全球范围阿里云排名第三。阿里云核心产品涵盖了OLTP数据库(包括POLARDB等),OLAP下一代实时分析型数据库——AnalyticDB,NoSQL数据库及专用型数据库,数据库生态工具等。
与此同时,阿里巴巴还有达摩院数据库实验室,这个实验室主要负责进行一些数据库领域的前沿探索,比如全链路加密数据库以及智能化数据库的探索。阿里云提供了丰富的云数据库产品,从公有云到专有云,再到今年刚推出的数据库一体机,对于各种形态的数据库产品和系统都能够提供强大的支撑。
那么,面向未来的企业级数据库的技术和产品到底应该长什么样呢?我们一起来看看。
数据库系统演进
数据库系统的演进经历了从最早的关系型数据库OLTP到半结构化,再到分析型数据库OLAP等非结构化的数据库,再发展到如今的多模数据库。
Mutil-Model多模数据库系统
如今,数据库技术面临着很多挑战,其中之一就是Mutil-Model多模数据库系统,这一部分在业界已经有很多类似产品。对于多模而言,可以分为南向、北向,南向多模代表存储多种多样,而希望用统一的查询语言来查询来自于不同数据源的数据,其实也就是数据湖的概念。
另外一种则是北向多模,数据存储一般只有一种模式,比如KV,但是却希望提供多种查询接口,比如像图、文档。以上提到的北向多模和南向多模就是多模两种不同形态。
数据库智能化+自动化管控平台
数据库技术发展到今天,可以将其想象成一个汽车,它具有非常多的参数,它在运行过程中会跑到不同道路上,并且周围还有很多别的不同汽车。
相互之间如何协调,引擎的优势如何体现出来,其实就和自动驾驶汽车非常像,因此称之为“Self-Driving Database Platform”。在这之上,阿里希望做到自感知、自决策、自恢复和自优化,这也是下一代智能化数据库的基本定义。
新硬件: 软硬件一体化设计
未来,下一代的企业级数据库一定要结合软硬件一体化的设计理念,而不能把软件和硬件隔开。一定要将软硬件结合在一起,才能更好地将数据库系统的优势发挥出来。
比如NVM对传统数据库的保护机制会带来很大的冲击和改变,并且也会对内存的使用和管理造成很大的改变。而RDMA则是另外的一个例子,其使得数据库访问远程节点数据的速度非常快,这就成为了存储与计算分离技术的基础。
云原生架构: 弹性x高可用x企业实践x开放生态
今天来看,业界有各种各样的数据库,可以大致分为三类,第一类是单节点数据库。对于单节点数据库而言,计算节点和存储节点是紧耦合在一起的。
传统的单节点MySQL、PG以及商业数据库Oracle、SQL Server等都是基于这样的架构。单节点架构的优点在于开发简单、部署容易,缺点是扩展性和高可用都不好。
而分布式架构将数据进行分片并分别存在不同节点上面,它在底下挂了很多个单节点架构。特点是水平扩展能力特别强,当数据量变大、并发量变高的时候只需要增加节点即可。其劣势是如果要求不改动上层业务逻辑,就必须要有能力去处理分布式事务和分布式查询。
云原生架构的逻辑:云上的资源是“取之不尽,用之不竭”的,只要愿意付费,只要客户有需求,理论上可以无限扩容。而云上最大的需求就是要有非常好的弹性,当需要资源的时候,可以取之不尽,用之不竭;当不需要的时候,则可以把它全部释放掉。
弹性就如同家里的自来水一样,需要用的时候把水龙头打开,不需要的时候就关掉。而传统线下的数据库使用方式更像是一个蓄水池,里面分配的服务器等资源是固定的,当将水位估计好之后,就只需要蓄足够多水就好了。
云数据库能够为用户提供弹性使用方式,通过存储和计算分离,把分布式存储节点通过网络连起来,使得访问远程节点就跟访问本地节点一样快,使得用户无感知。
下一代的企业级数据库:云原生+分布式
下一代的企业级数据库架构应该是将云原生架构和分布式架构结合起来的。底下的每个Shard都是云原生数据库,存储与计算分离,因此每个Shard的弹性都非常好,能力处理的并发量也都非常大。
因此,对于同样的需求而言,所需要的Shard数量就会大大减少。阿里云的POLARDB分布式版数据库就将云原生能力和分布式能力完美地结合起来。
完整的生态体系
阿里云数据库不仅在云上提供服务,还会支撑整个阿里巴巴集团内部经济体的所有活动。2018年双11,在零点刚过的第一秒,阿里的数据库系统峰值增长了大概122倍,瞬间爆发,这就需要数据库具有较高的可扩展性、弹性以及高可用。
开放生态,拥抱开源
阿里巴巴在开源社区也做了大量工作,比如在MySQL社区中所做的工作也得到了社区高度认可,也拿到了社区的各种奖项。此外,在PostgreSQL上替代传统的统计查询方式进行优化,能够支持OLTP和OLAP一起完成混合负载任务。
云原生数据库:POLARDB
接下来重点分享阿里巴巴自研数据库核心技术的理念和突破,也就是如何把前面提到的云原生和分布式架构有机、完美地结合起来。
阿里自研POLARDB数据库,其架构的上层有多个计算节点,计算节点下面有一个分布式共享存储,通过RDMA网络连接。目前,公有云上线的POLARDB版本能够做到16个计算节点,在POLARDB 1.0版本中做到了一写多读,目前不仅是国内,包括东南亚等国家都有很多案例,而且客户通过大量的测试和尝试发现,阿里云POLARDB的性能和稳定性都非常优秀,这就能够看出来阿里云数据库是非常靠谱的。
对于数据库,尤其是OLTP系统而言,客户往往将自己的身家性命压在这里了。所以,POLARDB的架构非常具有竞争力。目前,1个POLARDB实例可以做到100TB的存储容量,单节点可以做到100万QPS。
POLARDB架构细节
具体而言,在共享存储里面实现高可用,把数据分块形成Data Chunk,每个数据分块会备份三份,通过Parallel Raft协议在分布式共享存储里实现高可用,使得用户无需担心数据丢失的问题。
此外,在POLARDB 2.0版本将会实现多写多读以及跨区的高可用。POLARDB前面有一个Smart Proxy,这个Smart Proxy负责负载均衡以及读写分发等工作。
POLARDB并行查询:27倍性能提升
除了在架构方面的优化,POLARDB在数据库内核中也做了大量优化。其中一个是并行查询。众所周知,传统数据库如Oracle、MySQL等都是单线程查询。而今天几乎所有的CPU都是多核的,想要充分发挥这些硬件的能力,就需要数据库的引擎具有很好的并行查询能力。
因此,阿里云数据库团队围绕并行查询做了大量工作,对于数据库的SQL解析器、优化器以及执行引擎全部进行了重写,可以支持多线程并行执行。对于数据库中较为典型的Group By等查询的速度提升非常有利,平均能够达到27倍的性能提升。
把云数据库带回家:POLARDBBox,高性能一体机
今年9月底,POLARDB Box高性能一体机正式发布。在10月已经有10个落地的实际案例,其中两个已经正式签约。POLARDB Box高性能一体机具有以下特点:高度兼容Oracle,完成超过1000多个Oracle兼容项的优化。
一个盒子里面能够支持1000多个Vitual CPU,9TB内存以及120TB闪存。POLARDB Box高性能一体机也具备并行查询优化的能力,同时,也具备非常强大的时空数据查询引擎。
此外,通过阿里云数据库迁移工具ADAM和DTS以及AnalyticDB形成的一整套生态,能够让客户非常简单地把云数据库带回家。
POLARDB Box高性能一体机和传统一体机有什么不同?最核心的部分是POLARDB Box高性能一体机里面的管控平台就是阿里云公共云的管控平台,也就是说POLARDB Box高性能一体机的管控是和公共云打通的。
如果用户还未想好是否上云,那么可在IDC里面先使用一体机方式享受云数据库的性能,后续上云就变成无缝的过程,甚至可以采用混合云方式,一部分数据上云,一部分数据不上云,因为云上和云下的管控是打通的,对于用户而言是无缝管理的体验。
POLARDB-X:分布式版本支持水平扩展
POLARDB-X分布式版能够完美地结合分布式与云原生的能力。比如在阿里巴巴集团的双11场景下一定要做分库分表,此时仅有计算分离、弹性这些还是不够的,一定要做分库分表,否则是无法支撑瞬间122倍流量峰值的。阿里云POLARDB-X在分库分表的基础之上加上了云原生的能力,这样就可以减少跨库查询概率。
智能化OLAP:AnalyticDB实时交互式数据库
除了POLARDB,阿里云在智能化OLAP方面还拥有实时交互智能数据库——AnalyticDB,能够支撑海量数据处理分析、向量分析等。
在数据分析领域存在大量的非结构化数据,而如今每天产生的80%数据都是非结构数据,比如照片、视频等。
那么,如何把非结构化数据在一套系统里面无缝地进行交互式分析呢?阿里云数据库团队就做了向量处理引擎,首先将非结构化数据实现向量化,在高维向量空间中进行处理。AnalyticDB中就实现了向量处理引擎,这样就可以在向量空间中把结构化数据和非结构化数据实现融合处理。
AI for DB-DAS:智能化数据库管控与内核
除了架构上、技术上的突破,除了云原生和分布式之外,下一代企业级数据库的另外两个核心关键词应该是智能化和安全。所谓智能化就是智能化管控云内核,这一部分在阿里巴巴内部已经落地了,阿里巴巴全网的几十万个数据库实例上面都会有Agent,去采取实时的运行状态,进行实时监控和预警。
其中一部分工作是自动调整数据库Buffer的大小,这对于数据库的性能和成本具有非常大的影响。阿里云数据库能够实现在保证全网性能不发生较大变化的情况下,通过自动调整数据库Buffer的大小,平均每天可以节省内存使用成本达15%以上。
云上数据安全
云上数据安全也非常重要。传统数据库安全方法只是保证数据在传输过程中的安全以及加密,但数据真正进入数据库内核进行处理的时候还是要进行解密的,这时就会有数据泄露的风险。
针对这样的问题,阿里云数据库团队就实现了全链路加密数据库。全链路加密数据库使得数据进入数据库内核之后,依然不需要解密,而且数据库加密的密钥是客户提供的,不需要提供给云厂商。全程来讲,云厂商即使作为Root管理员也没有办法看到用户的数据。
数据传输云服务DTS
数据上云的第一步一定是寻找到一条上云高速公路。阿里云数据传输服务DTS,能够将不同源端数据库迁移到目标数据库,这里涉及的核心技术挑战就是如何在复杂的网络以及部署环境下实现不同源端和目标端的用户数据迁移。
拥抱开放生态,携手客户与开发者共成长
下图展示的是整个阿里云数据库的布局情况。阿里云希望拥抱开放生态,携手客户与开发者一同成长。阿里云希望能基于自身的两个核心的自研数据库产品——POLARDB和AnalyticDB以及上述提到的数据传输工具DTS等26款产品和服务,共同打造具有中国特色的数据库生态。
数据库系统不一定要开源,但一定要拥抱一个开放的标准生态,以此来避免从一个封闭系统走向另外一个封闭系统。
原文发布时间:2019-11-20
本文作者:Roin123
本文来自云栖号“阿里云数据库ApsaraDB”,了解相关信息可以关注“阿里云数据库ApsaraDB”