挑战未来:下一代企业级应用数据库系统

本文涉及的产品
云原生数据库 PolarDB 分布式版,标准版 2核8GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
简介: 随着数据量以及数据类型的不断增多,业务需求逐渐从“大数据”转向“快数据”。数据库系统领域充满机遇,也布满挑战,越来越多的企业开始思考下一代数据库技术。在2019年杭州云栖大会开发者峰会上,阿里巴巴副总裁、阿里云智能数据库产品事业部总经理、高级研究员李飞飞就为大家分享了阿里云对于下一代企业级应用数据库系统的实践。

摘要:随着数据量以及数据类型的不断增多,业务需求逐渐从“大数据”转向“快数据”。数据库系统领域充满机遇,也布满挑战,越来越多的企业开始思考下一代数据库技术。在2019年杭州云栖大会开发者峰会上,阿里巴巴副总裁、阿里云智能数据库产品事业部总经理、高级研究员李飞飞就为大家分享了阿里云对于下一代企业级应用数据库系统的实践。

数据库:云上应用关键一环

正如AWS总裁所说的“The real battle will be in databases”,数据库已经成为上云的关键一环,连接IaaS层与智能化应用最为关键的步骤就是数据库。

image.png

数据库发展-业务视角

从业务视角来看,数据库的发展有这样几类,最传统的关系型事务处理数据库叫OLTP,对于事务型数据库而言,最关键的问题是保证结构化数据的读写一致性,主要挑战是高并发的问题,即在海量数据下如何正确处理海量事务等。另外还有分析型数据库,也就是所谓的传统数仓,它所解决的问题是面对大量数据如何进行实时的交互式分析。在2008年和2009年,谷歌的三驾马车——GFS、MapReduce和BigTable诞生之后,就衍生出了NoSQL数据库,因为传统关系型数据库由于具有强一致性,因此在大数据情况下对于扩展能力还存在很大的限制,NoSQL数据库则牺牲了一定的一致性,换取了扩展的能力。除此之外,数据库还包括数据管理、备份以及传输等相关生态工具。以上这些就形成了数据库四个不同的业务视角。

image.png

阿里云数据库-中国云数据库领导者

阿里云在云原生数据库方面做了很多工作,其中最核心的产品当属POLARDB和AnalyticDB。目前,阿里云数据库在亚太市场排名第一、全球排名第三,并且用户和开发者的数目已经超过了10万。

image.png

数据库系统演进

数据库系统的演进最早从结构化数据库开始,逐渐衍生出了关系型数据库,核心技术是SQL和OLTP。后来数据越来越多,由于读写冲突的原因,需要将数据从OLTP数据库里面转移到数据仓库里面。在建仓的过程中,可能还会把非结构化数据转化为结构化数据,并存储到数仓里,这样一来就可以在数仓对结构化数据和非结构化数据进行交互式分析,这部分的核心技术是ETL和OLAP。数据库技术发展到今天,数据类型越来越多,出现了更多新的数据类型,如图、时序以及文档等,也需要有新的数据库系统,因此现在除了RDS、NoSQL之外还有了NewSQL,将传统关系型数据库的能力和NoSQL的能力完美地结合起来,这就是所谓的NewSQL数据库。除此之外,数据库领域也非常关注Multi-Mode和HTAP。

image.png

Multi-Model多模数据库系统

数据库可以分为北向和南向,南向是数据库的存储层,在南向,数据结构和类型可能是多种多样的,比如结构化数据、图数据、时序数据、向量数据以及文档数据等;而在北向,则希望能够在查询层提供一个标准的统一查询接口,比如SQL。南向存储形式多样,而北向查询接口统一就构成了标准的数据湖服务。除此之外,还可以在南向仅提供一种标准的数据存储形式,而北向则提供多种多样的查询接口,让用户可以按照图、文档等方式进行查询。

image.png

数据库智能化+自动化管控平台

对于开发者而言,数据库系统变化的一个重要趋势是越来越智能化,包括Oracle在内的各大数据库厂商都在强调数据库智能化。数据库的智能化可以分为两个主要方面,一方面是内核的智能化,比如对于数据进行查询以及冷热分离,可以借助人工智能和机器学习的方法进行优化。另外一方面是数据库运维管控平台的智能化,使得数据库系统可以像自动驾驶汽车一样管理数据库实例。

image.png

新硬件:软硬件一体化设计

数据库系统变化的另外一个重要趋势是RDMA、SSD、NVM、GPU/FPGA等新硬件带来的软硬件一体化的设计。无论是内核开发还是应用开发,新硬件的出现和使用都对开发者提出了更高的要求。

image.png

下一代企业级数据库:云原生+分布式

今天的数据库领域存在三种主流架构,即单节点架构、存储和计算分离云原生架构以及经典的分布式架构。阿里云认为下一代的企业级数据库的架构一定需要结合云原生架构和分布式架构的优势。也就是说需要在上层实现Shared Nothing,使得应用可以水平拓展,能够应对双11这样的海量数据和高并发的场景。中间做分库分表,但是传统架构下的分库分表可能对业务有所改造和侵入,也会增加跨Shard以及跨库查询的概率,使得性能会大大下降。因此,阿里云希望在下面一层使用Shared Everything的云原生架构。这样就使得每个Shard的处理能力大大增加,使得跨库查询和Distributed Commit的概率大大降低,系统的复杂度也会大大的降低,同时开发对应用的侵入程度也会降低。

image.png

阿里云数据库技术与产品是完整的生态体系

利用云原生+分布式的这种技术架构就能够支撑双11瞬间120倍的流量峰值增长。通过利用OLTP的POLARDB和OLAP的ADB就可以形成一个从数据产生、事务处理到实时消费、分析的完整闭环。

image.png

阿里云RDS For MySQL/AliSQL

当开发者来到阿里云的数据库平台,所看到的RDS For MySQL其实并不是官方版本的MySQL,而是阿里巴巴自己维护的AliSQL分支。在AliSQL之上,阿里巴巴做了大量企业级应用,比如支持TDE、BYOK等,还实现了线程池,增加了企业级应用开发的功能,也大大简化了开发者使用MySQL生态进行应用开发的复杂度。此外,RDS还支持单节点、双节点以及三节点的部署方式。正因为做出了这些贡献,阿里巴巴获得了MySQL 2018年的社区贡献奖,也是亚太地区唯一获得这个奖项的公司。

image.png

阿里云RDS AliSQL三节点金融级高可用集群

阿里云RDS AliSQL实现了三节点金融级高可用集群,其最大的优势就是高可用,因为它将CAP理论中的三点比较完美地结合起来。其核心思路是三节点中存在一个RDS的Leader以及两个Follower,通过Paxos形成三节点之间的Binlog同步,这样就可以保证数据和应用的高可用。

image.png

阿里云PostgreSQL独有的增强功能

除了MySQL之外,阿里云的PostgreSQL在社区版本上做了大量优化,比如Ganon支持GPU时空遥感引擎,varbitx支持对用户画像数据进行处理,BYOK实现了存储层加密等。在POLARDB for PostgreSQL版本上可以做到16个计算节点的拓展,在AnalyticDB for PostgreSQL上引入了HyperLog预估分析,比传统使用直方图进行预估分析准确得多,并且成本也低很多。因此,对于中小型业务,可以使用标准的社区版的RDS for PostgreSQL;对于混合型复杂业务,可以使用POLARDB for PostgreSQL;对于海量分析型BI以及报表业务,可以使用AnalyticDB for PostgreSQL,这样就形成了PostgreSQL生态的完整闭环。

image.png

POLARDB架构细节

接下来展开分享下一代企业级数据库架构,首先介绍大家比较熟悉的POLARDB。POLARDB的主要架构设计模式是计算与存储分离,使用RDMA做共享存储,在存储层通过Data Chunk和Parallel Raft协议保证数据高可用,这就实现了单一实例的多个主备架构。同时,前面增加一层PolarProxy实现多节点之间的读写分离和负载均衡。在下层实现了PolarFS文件系统,对接底层的PolarStore分布式共享存储。现在,POLARDB发布了MySQL 5.6版本以及MySQL 8.0版本,还有PostgreSQL的版本以及高度兼容Oracle的版本,各种各样的生态都能够在POLARDB数据库上得以完美的体现。

image.png

此外,阿里云POLARDB还实现了并行查询优化,使得查询的平均性能提升了27倍。大家知道MySQL等数据库的查询优化器或者查询执行器在实际上并没有做并行查询优化。而阿里云POLARDB则实现了线程池,因此可以实现并行化查询。举个简单的例子,一个包含100个Group by的SQL语句,如果做并行查询Group by,执行时间可能是原本串行执行Group by的1%。

阿里云POLARDB分布式版本——POLARDB-X

阿里云POLARDB分布式版本POLARDB-X简单而言就是把DRDS和POLARDB进行集合,形成上层Shared Nothing,下层Shared Everything、共享存储的架构,这种架构在针对海量数据进行开发的场景下具有诸多优势。

智能化OLAP:AnalyticDB实时交互式数据仓库

在生态兼容方面,AnalyticDB MySQL版本兼容MySQL生态,AnalyticDB PostgreSQL版本兼容PostgreSQL生态。AnalyticDB使用行列混存引擎,因此支持高吞吐写入和高并发查询AnalyticDB也采用计算和存储分离的架构,它会把计算资源进行池化实现灵活调度,将计算节点分为写入节点和只读节点,并做智能化的调度,根据实际负载决定读写节点的分配情况。AnalyticDB具有向量化的执行引擎,支持对结构化数据和非结构化数据进行联合分析,对人工智能以及机器学习的很多应用非常有帮助。

image.png

AI for DB-DBAdvisor:智能化数据库管控与内核

阿里云在智能与安全方面提供了DBAdvisor工具。DBAdvisor能够帮助开发者优化数据库管控策略,比如索引策略和分库分表策略等。DBAdvisor能够根据实际业务复杂推荐如何做Sharding。此外,SDDP,Self-Driving Database Platform是DBAdvisor最核心的组件,其能够帮助阿里经济体的数据库每天节省大约27TB的存储空间。

image.png

云上数据安全

云上的数据库安全非常重要,目前阿里云已经拥有标准的数据库安全体系。而在未来,开发者也需要考虑更多的安全因素,比如日志是否不可篡改、数据库内核是否可以全程加密等。在云上数据库安全方面,阿里云在全球首先实现了全加密数据库PostgreSQL版本,能够做到在任何情况下数据都不会泄漏。

image.png

数据传输云服务DTS

想要享受云数据库所带来的开发便利,那么数据从一端传输到另外一端的工具必不可少。阿里云提供了数据传输云服务DTS,它支持多种不同的数据源到异构数据库的实时同步,同时也可以支持一定程度的ETL,这样在数据传输的过程中,还可以到其他系统中进行消费。

image.png

阿里云数据库:数据上云高速公路

综合上述内容,阿里云数据库形成了一个从关系型数据库到分析型数据库,再到NoSQL数据库和工具的完美生态。

image.png

拥抱开放生态,携手客户与开发者共成长

阿里云希望并且欢迎和开发者共同成长,一起为社区做出贡献。AliSQL在开源领域获得了很多荣誉,阿里云DRDS也会在未来几个月内进行开源。阿里云希望和大家携手共建世界一流的分布式数据库系统。

image.png

相关实践学习
AnalyticDB MySQL海量数据秒级分析体验
快速上手AnalyticDB MySQL,玩转SQL开发等功能!本教程介绍如何在AnalyticDB MySQL中,一键加载内置数据集,并基于自动生成的查询脚本,运行复杂查询语句,秒级生成查询结果。
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
相关文章
|
16天前
|
Cloud Native 关系型数据库 分布式数据库
阿里云牵手海亮科技,共建“教育科技数据库创新应用中心”
海亮科技选择引入阿里云PolarDB开源分布式版(PolarDB for Xscale)数据库,不仅能解决海亮科技数据库业务中面临的可靠性、稳定性问题,也为海亮科技业务的高速发展提供了更好的灵活性和可扩展性。
|
19天前
|
存储 C# 关系型数据库
“云端融合:WPF应用无缝对接Azure与AWS——从Blob存储到RDS数据库,全面解析跨平台云服务集成的最佳实践”
【8月更文挑战第31天】本文探讨了如何将Windows Presentation Foundation(WPF)应用与Microsoft Azure和Amazon Web Services(AWS)两大主流云平台无缝集成。通过具体示例代码展示了如何利用Azure Blob Storage存储非结构化数据、Azure Cosmos DB进行分布式数据库操作;同时介绍了如何借助Amazon S3实现大规模数据存储及通过Amazon RDS简化数据库管理。这不仅提升了WPF应用的可扩展性和可用性,还降低了基础设施成本。
42 0
|
19天前
|
数据库 C# 开发者
WPF开发者必读:揭秘ADO.NET与Entity Framework数据库交互秘籍,轻松实现企业级应用!
【8月更文挑战第31天】在现代软件开发中,WPF 与数据库的交互对于构建企业级应用至关重要。本文介绍了如何利用 ADO.NET 和 Entity Framework 在 WPF 应用中访问和操作数据库。ADO.NET 是 .NET Framework 中用于访问各类数据库(如 SQL Server、MySQL 等)的类库;Entity Framework 则是一种 ORM 框架,支持面向对象的数据操作。文章通过示例展示了如何在 WPF 应用中集成这两种技术,提高开发效率。
35 0
|
19天前
|
NoSQL 关系型数据库 MySQL
|
19天前
|
开发者 存储 API
Xamarin 开发者的社区资源概览:从官方文档到GitHub示例,全面探索提升开发技能与解决问题的多元化渠道与实用工具
【8月更文挑战第31天】Xamarin 开发者社区资源概览旨在提升开发效率与解决问题,涵盖官方文档、社区论坛、GitHub 项目等。官方文档详尽,涵盖 Xamarin.Forms 使用、性能优化等;社区论坛供交流心得;GitHub 提供示例代码。此外,第三方博客、视频教程及 Xamarin University 等资源也丰富多样,适合各阶段开发者学习与提升。通过综合利用这些资源,开发者可不断进步,应对技术挑战。
31 0
|
19天前
|
存储 数据管理 数据库
|
19天前
|
Java 前端开发 Spring
技术融合新潮流!Vaadin携手Spring Boot、React、Angular,引领Web开发变革,你准备好了吗?
【8月更文挑战第31天】本文探讨了Vaadin与Spring Boot、React及Angular等主流技术栈的最佳融合实践。Vaadin作为现代Java Web框架,与其他技术栈结合能更好地满足复杂应用需求。文中通过示例代码展示了如何在Spring Boot项目中集成Vaadin,以及如何在Vaadin项目中使用React和Angular组件,充分发挥各技术栈的优势,提升开发效率和用户体验。开发者可根据具体需求选择合适的技术组合。
28 0
|
19天前
|
SQL 关系型数据库 数据处理
|
19天前
|
存储 SQL NoSQL
探索数据存储的多样性:深入比较Entity Framework Core与NoSQL数据库MongoDB的特性与应用
【8月更文挑战第31天】在现代软件开发中,选择合适的数据存储方案对应用性能至关重要。本文通过对比Entity Framework Core(EF Core)和MongoDB,探讨两者的特点及适用场景。EF Core作为.NET生态中的ORM,简化了SQL数据库的交互;MongoDB则是一种灵活的NoSQL文档数据库,适合处理大量非结构化数据。两者在数据模型、查询方式及性能上各有优势,选择时需根据具体应用需求决定。理解这些差异有助于做出更合理的技术选型。
29 0
|
19天前
|
SQL 数据管理 关系型数据库
SQL与云计算:利用云数据库服务实现高效数据管理——探索云端SQL应用、性能优化、安全性与成本效益,为企业数字化转型提供全方位支持
【8月更文挑战第31天】在数字化转型中,企业对高效数据管理的需求日益增长。传统本地数据库存在局限,而云数据库服务凭借自动扩展、高可用性和按需付费等优势,成为现代数据管理的新选择。本文探讨如何利用SQL和云数据库服务(如Amazon RDS、Google Cloud SQL和Azure SQL Database)实现高效的数据管理。通过示例和最佳实践,展示SQL在云端的应用、性能优化、安全性及成本效益,助力企业提升竞争力。
38 0