logo

2024 云原生数据库发展现状和趋势

作者:笔耕不辍2024.04.19 11:42浏览量:7100

简介:数据库是最常用的基础软件之一,它能提供计算和存储能力。存储是数据的基本功能,计算能力则体现在数据库能完成用户的复杂分析和计算请求,以及进行查询优化、事务处理、索引维护等内部计算。

一、云原生数据库是什么

云计算的出现促进了企业信息技术的进步。云计算供应商把大量的计算、存储和通信资源汇聚在一个“池”中,允许企业或个人用户根据需求购买这些资源,从而能快速、低成本地建立信息系统。当系统负载发生变化时,可以根据需要增减计算资源。对于供应商来说,能统一管理所有用户使用的大量资源,实现规模效应,降低边际成本。对于云计算用户来说,获取资源快捷、便捷,按需使用的成本更低。从全社会的角度看,整体资源的使用效率得到提高,更环保。

数据库是最常用的基础软件之一,它能提供计算和存储能力。存储是数据的基本功能,计算能力则体现在数据库能完成用户的复杂分析和计算请求,以及进行查询优化、事务处理、索引维护等内部计算。

单机数据库部署在普通主机上,其存储和计算能力受硬件限制,难以扩展。分布式数据库可以通过增加机器来扩展容量和计算能力,但依然受到机器资源的限制。如果简单地将它们迁移到云上,将普通主机换成云主机,可能会出现一些问题,如网络瓶颈、写放大问题等;并且不能充分发挥云计算的优势,如资源弹性管理、按需使用,也无法灵活使用各种云存储产品。

如果分布式数据库如果未经改造,简单的迁移到云上;尽管分布式数据库有很好的扩展性,但不能算是“云原生”。首先,它弹性扩展的单位是“机器”,而不是更细粒度的“计算和存储资源”。其次,它在设计时并未考虑云平台的特性,没有进行相应的优化,以达到最优性能和成本。

“云原生数据库”的核心是设计一种更符合“资源弹性管理”理念的数据库架构,充分利用云平台的池化资源,适应云平台的基础设施。并且,经过多次迭代更新,产品已在云上发展成熟,云原生数据库的技术也普惠到了更多的场景和部署环境,包括私有云场景,为企业提供数据安全可控的解决方案。

二、发展历史及国内现状

云数据库的进化轨迹始于 2010 年代初,这个时期正值云计算技术的兴起,大量企业开始尝试将传统数据库搬迁至云端。近些年来,随着云基础设施的迅猛发展,云数据库也得到了飞速的拓展,并且因其按需扩展和按需付费等卓越特性,受到了中小企业和互联网客户的广泛欢迎。然而,云数据库并非专为云场景或云环境设计和构建的,它仅仅利用了云的资源。因此,它存在一些固有的问题,如存储空间浪费、计算资源浪费、恢复时间目标大以及数据延迟、系统性能受限、网络带宽消耗大等,这些问题阻碍了业务的进一步发展。

Amazon 首先意识到上述问题,推出的云数据库 Aurora 就是为云计算时代而专门定制的一款关系型数据库。从此数据库又进入了一个崭新的阶段,云原生数据库。各大公有云厂商基于这一路线紧随其后,在优先保证上云兼容性的前提下,基于存算分离架构对传统数据库进行改造:通过把大量的日志操作放到后台异步处理,实现存储独立扩展,解决了 MySQL 数据库单库的数据量不能太大的痛点。并且云原生数据库提供了又兼容又能扩展的能力,在存储层面实现了扩展的同时,又保留了计算层面的不变和兼容,从而基本实现了完全的兼容性。像典型产品就有阿里云的 Polardb,百度智能云的 GaiaDB 和腾讯云的 TDSQL-C。可以完美兼容传统的使用习惯,对交易类场景可以提供很低延迟的写事务能力。同时读扩展性与存储扩展性由于借助了分布式存储池化能力,也得到了极大增强。

而分布式数据库为了解决扩展性问题,是另外一种演进路线,则优先将系统的扩展性放在首位,通过规模来解决各类业务对写扩展能力的要求,像 OceanBase 和 TiDB 就是两个比较典型的产品。它们的典型特征就是将事物系统和锁系统角色拆分为单独的模块负责,计算层通过与这些模块交互实现了多个节点都可接受写请求,然后由统一的新事务+锁中心节点来进行仲裁。这样对于写负载本身需要较多计算资源的场景下会有很好的提升,但是由于事务和锁都需要跨网络进行交互,所以事务延迟是相对比较高的,在锁负载较重的负载下会成为一定的瓶颈。

图片.jpg

云原生数据库由国外传入国内。如今,以阿里云的 PolarDB、百度智能云的 GaiaDB、腾讯云的TDSQL-C 等为首的主要厂商,都在投入大量资源进行研发。短短三年的时间,市场已经形成了相对成熟的云原生数据库应用模式,并且已经在不同的场景中得到应用。可以看出,虽然国产云原生数据库的起步相对于国外稍晚,但其在国内的发展速度极快,影响力已经逐渐超过了国外的云原生数据库。

阿里云在 2024 年 1 月 17 日隆重召开 PolarDB 开发者大会,分享了阿里云 PolarDB 未来发展的四大趋势:深化服务化、多主多写、容灾、全球化等的云原生化、支持标准的 API、IAC、CI/CD 等工具的平台化、实现不同数据处理场景的一体化、与AI深度结合的智能化。

百度于 2023 年 12 月 20 日的智算大会上正式发布自研云原生数据库 GaiaDB 4.0,帮助解决企业复杂查询难题。GaiaDB 4.0 增强了并行查询能力,突破单机计算瓶颈,实现跨机多核并行查询,在混合负载和实时分析业务场景中性能提升超过 10 倍。针对不同的工作负载,GaiaDB4.0 推出列存索引和列存引擎,提升不同规模数据的查询速度,其中列存引擎最大可支持 PB 级数据的复杂分析,并且与事务处理业务严格复杂隔离。

总而言之,在互联网和云计算快速发展的时代背景下,各行各业对于数据库的需求在不断增加和变化,随着这些新的需求越来越广泛地被提出,用户意识到采用传统单一的数据库来应对各类场景的时代已经过去,各厂商提供云原生数据库需要从多方位实现资源规格的灵活控制、应用的多模、更优的弹性扩展能力、更好的成本控制方式等。

三、云原生数据库典型场景和核心优势

云原生数据库适用于多种应用场景,包括电商、金融、物流、社交媒体等。在这些场景中,云原生数据库能够提供性能强大、高可用性和可扩展性的数据服务,以满足各种业务需求。

承接高弹性流量

与大多数传统业务的稳定性和容易预测的资源需求相反,互联网业务可能会随时面临流量激增,这是传统线下部署方式难以处理的。云原生数据库凭借其出色的可扩展性,能根据业务负载灵活调整资源,实现实时扩缩容,用户无需担忧流量激增导致的存储资源不足。通过 Serverless 技术,云原生数据库可以实现最大程度的弹性扩展并按需付费。

云原生数据库(阿里云的 PolarDB 、百度智能云的 GaiaDB、腾讯云的 TDSQL-C)都支持分钟级弹性扩容,能迅速应对如双11等大流量场景,相比传统本地业务模式,云原生其强大的扩缩容能力更具优势。

保障高可用性

数据库采取多种方法确保业务的高可用性。云原生数据库基于计算存储分离架构,解决了主备切换的延迟问题,提升了性能并确保了系统和业务的连续性。它不仅具有分布式数据库的高可用性,还能依赖云基础设施在单个可用区或整个地域宕机时,及时迁移和自动修复数据。通过自动全量增量备份和快速恢复,以及利用云存储的高可用性、异地容灾和快照能力,实现了更快、更可靠的备份恢复。

特别的,阿里云的 PolarDB 集群版和百度的 GaiaDB,分别通过全球数据库 GDN 功能和热活集群组三副本一致性存储,进一步增强了跨地域灾备和数据可靠性。

满足高时效性

在当前高并发、多变的业务环境中,对数据库的时效性要求愈加严格。云原生数据库在运维方面,能在几分钟内完成安装,远快于传统数据库,且其版本升级的时效性也更高。在面对大规模业务负载时,如报表查询的高峰期,传统数据库需要大量硬件资源和预留服务器来保证查询效率,这不仅成本高,扩容速度也慢。而云原生数据库能快速扩容,满足业务高峰需求,有效支持业务快速变化。在性能上,云原生数据库采用计算存储分离架构(如发展历史中介绍),借助日志即数据、算子下推和并行计算技术,充分利用存储资源的计算能力,有效提升大型表扫描等网络数据流量大的业务场景的性能。

阿里云 PolarDB 支持秒级增加、修改和删除字段,可以大幅提升 SaaS 海量表维护的效率,大幅降低客户侧运维工作量。百度文库业务通过使用云原生数据库解决了传统数据库主从延迟高,导致数据同步形式在异常情况下会出现延迟,影响付费及文档服务体验的问题。

应对混合型(AP+TP)业务

伴随企业的发展和业务的复杂化,我们经常看到大量不同类型的数据被存储在一起。以交互系统和报表系统为例,前者是 OLTP(在线事务处理)应用场景,后者则是 OLAP(在线分析处理)应用场景。如果这些数据被存储在同一数据库中,数据库就需要在处理事务和分析数据时都表现出高效性。此外,有些用户可能会将多年的历史数据存储在一起,没有进行冷热分离。当查询这些历史数据时,由于访问量增大,可能会占用大量的 CPU 和内存资源,造成系统性能波动,影响在线事务处理业务。

阿里云的 PolarDB 和腾讯云的 TDSQL-C 通过支持列存储和向量化执行引擎,能在OLAP场景下显著提高查询性能。

满足成本的诉求(弹性+智能化)

在传统数据库维护中,运行数据库实例涉及预备硬件和折旧费用,但主机资源常常未被充分利用,造成浪费。如果业务有高低峰,必须始终准备最高资源,使维护成本高昂。相比之下,云原生数据库降低了初始投入,且在业务增长时能够弹性扩展,按需使用资源,避免浪费。阿里云和腾讯云的Serverless集群成本可降低80%。在存储和计算分离架构下,百度网盘迁移至百度云原生数据库GaiaDB,资源利用率提高50%,大幅降低成本。

另外,数据库运维和SQL优化等工作需由DBA完成,多数企业DBA资源有限,增加运维成本。云原生数据库的智能运维结合了AI算力和强大的数据库管控平台,具有高度自动化运维能力,易于管理数据库,缓解DBA压力,节省企业成本。

四、云原生数据库技术最新进展和发展趋势

多级高可用,提供异地灾备能力

数据库作为底层数据存储环节,其可用性与可靠性直接影响系统整体。而线上情况是复杂多变的,机房里时时刻刻都可能有异常情况发生,小到单路电源故障,大到机房级网络异常,无时无刻不在给数据造成可用性隐患。

作为商业数据库,具备多级高可用能力是最核心的必备能力。这样才能抵御不同级别的异常情况,有力保障客户业务的平稳运行。阿里云提供全球数据库网络服务(Global Database Network,简称GDN)是由分布在同一个国家内多个地域的多个PolarDB集群组成的网络。保障不论业务部署在一个或多个地域,都能通过全球数据库网络实现异地容灾。当主集群出现地域级别的故障时,您只需要手动将您的业务切换到从集群。百度智能云的GaiaDB支持多副本、跨可用区、跨地域三级别高可用,创新性地实现了多可用区热活高可用、单个实例支持跨可用区部署。在不增加成本的情况下,每个可用区均可提供在线服务,任何可用区故障都不会打破存储一致性。

图片.jpg

多级HTAP释放潜能

将内存池技术与HTAP结合是未来数据库技术的一个重要趋势。随着云原生数据库的普及和发展,OLTP和OLAP能力的融合已经成为了一个基本要求。在此基础上,结合内存池软硬协同技术,可以进一步实现网络吞吐的大幅度缩减,提高数据库的性能和响应速度。

阿里云的PolarDB目前已经支持内存池技术(内存资源进行统一管理和分配),并且可以有效地提高内存的利用率和系统的整体性能。将内存池技术与HTAP结合,可以利用内存池的高性能和低延迟特性,为HTAP提供更加稳定和高效的支持。

具体来说,通过将内存池技术与HTAP结合,可以实现以下几个方面的优化:

  • 减少网络通信开销:通过内存池技术,可以将数据缓存在本地内存中,减少了对远程存储的访问和网络通信的开销,从而提高了系统的整体性能和响应速度。

  • 提高数据一致性和可靠性:内存池技术可以保证数据的一致性和可靠性,避免了因为网络延迟或数据同步不及时导致的数据不一致问题。

  • 实现资源共享和动态扩展:通过内存池技术,可以实现资源的共享和动态扩展,使得系统可以根据实际需求进行灵活的扩展和收缩,提高了系统的可扩展性和可用性。

而百度智能云的GaiaDB实现了多级HTAP,通过并行查询,内存索引,列存索引进行优化提升性能,具体如下:

  • 并行查询,传统MySQL数据库再单机的并行方面很弱,Gaiadb并行查询再改善单机查询性能的同时,突破单机计算瓶颈,实现跨机多核并行查询,面向混合负载和实时分析业务场景,性能提升十倍以上。

  • 随着数据量越来越大,业务越来越多,列存是比较有效解决复杂查询和分析的办法,Gaiadb针对不同的worklaod推出列存索引和列存引擎。兼容地解决了不同规模的数据的查询加速的诉求。其中列存引擎最大可以支持PB级别的复杂分析,并且和TP的业务是严格复杂隔离的。TP和AP的数据是通过zeroETL来实现透明的数据同步。

  • 为了进一步突破性能的天花板,Gaiadb在内核数据流上进行深度优化,包括共识协议优化:单跳提交,吞吐提升40%,时延降低30%;链路优化:异步批量提交+自适应用户态TCP,时延降低60%;自适应动态回放存储多版本,高负载读IO降低50%;通过这一系列优化让gaiadb整体性能,成功做到整体性能大幅提升60%。

图片.jpg

Serverless已成为趋势,智能弹性助力降本增效S

随着云计算技术的进步,Serverless数据库成为发展趋势。然而,仅提供无服务器计算无法满足所有用户需求。未来,Serverless数据库需具备智能弹性能力。

目前,阿里云和腾讯云已支持Serverless集群,提供降低成本和提高效率的解决方案。未来,需要发展智能弹性能力,以满足用户需求,提升系统性能和稳定性。智能弹性指数据库根据历史负载数据,自动计算用户画像,快速预测未来负载曲线,并预先为弹性伸缩准备资源。这使得数据库能迅速响应需求变化,避免负载达到资源上限,减少资源浪费。智能弹性是Serverless数据库未来关键能力之一,能帮助数据库处理大量数据时保持高效性能,确保系统稳定,降低运营成本,提高资源利用率,提升用户体验。

AI助力,构建智能化数据库

自2023年开始的AI时代。底层基础设施变成了GPU和AI能力。应用也变成了AI原生应用,如海外比较火的Jasper、Midjourney,微软的Copilot等。在数据库行业我们看到至少两个方向,一个是AI4DB,其中包括阿里的DAS、百度的DBSC等,主要是利用AI大模型能力和专家经验实现数据库的智能化洞察、评估和优化。有效保证数据库服务的安全、稳定及高效。这意味着数据库将能够自动检测和诊断问题,进行自我调优和运维,同时保证数据的安全性和可靠性。另外一个方向就是DB4AI,目前主要是向量数据库。向量数据库在解决大模型幻觉等方面,有非常不错的效果,是一个有潜力的细分赛道,头部公司估值已经达到10亿美元。

总的来说,未来的云原生数据库将继续与AI内外协作,包括AI帮助云原生数据库提效以及云元生数据库和向量能力的结合,向全场景智能数据库迈进,为各种应用场景提供更加智能、高效和安全的数据管理服务。

云原生数据库变得更加普惠

云原生数据库目前正处于发展的攀升阶段,云厂商正在不断提升产品的性价比、性能以及稳定性。对大部分客户来说,他们更倾向于选择托管类的云数据库,主要因为这些数据库基于成熟的开源数据库构建,如MySQL、Redis等,这些数据库既成熟又普惠。企业认为这些完全可以通过技术进行控制,即便考虑到未来可能从云端迁移到自建IDC,业务也不会与云厂商紧紧捆绑。

在选择云原生数据库时,企业也需要考虑迁移成本、技术可控性、云厂商的绑定以及总体拥有成本(TCO)等问题。目前,大部分的云原生数据库仍然依赖于云厂商自身的技术底座与硬件环境。

未来的云原生数据库应该朝向普惠化发展,一个真正普惠的数据库需要考虑以下几个方面:

开箱即用,低门槛:企业应能快速部署和使用云原生数据库,无需面对过高的技术门槛和成本投入。

跨平台部署:考虑到数据迁移成本较高,企业在选择数据库时会优先考虑数据库的部署位置,如云服务商、自建IDC、地域等。

兼容性:兼容性对数据库来说至关重要,尤其在当今信息化时代。为了方便企业集成和使用,普惠的数据库需要与各类应用和工具兼容。

稳定性:稳定性是用户选择数据库的重要因素,这不仅关乎数据库的可用性,更关乎数据库的性能表现。

当前,云计算已成为企业数字化转型的重要基础设施,公有云成为云计算的主要形式。然而,随着技术的发展和企业对数据安全、合规的考虑,越来越多的企业选择自建云底座。K8S技术作为容器编排领域的先锋,为企业自建云底座提供了强大的技术支撑。

面对未来混合云、边缘云等多云环境的普及,企业对云服务的需求将更为多元化。普惠的云原生数据库不应只局限于公有云环境,而应支持多种云服务形态,满足企业在不同场景下的需求。因此,普惠的云原生数据库需要不断拓展应用场景,以更好地满足企业需求。

总的来说,回顾2023,展望2024,云原生数据库朝着更高可用,更强处理能力,更智能,更普惠的方向发展。

相关文章推荐

发表评论