购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

第1章
云计算时代的数据库

1.1 数据库的历史和发展

数据库管理系统已经经历了半个多世纪的发展,单机版本的数据库越来越健壮,功能越来越丰富。云计算和分布式技术流行以后,包括数据库在内的传统信息技术(information technology,IT)基础系统开始发生变革。

图1-1根据中国信息通信研究院发布的《数据库发展研究报告(2021年)》中数据库发展历程主要节点图绘制,图中对主流数据库发展的过程进行了详细标注。

图1-1 数据库发展历程

非关系型数据库(not only SQL,NoSQL)在最近十多年也有长足的发展,而且随着人们对数据库系统越来越了解,很多融合性产品被研发出来,比如时序数据库、图数据库、文档数据库、键值数据库等。

数据库作为IT基础设施后台的核心,越来越受到人们的重视。

1.2 云计算带来的挑战

传统的联机事务处理(online transaction processing,OLTP)数据库(如Oracle数据库)仍旧是银行等传统行业的后台支撑,但随着分布式技术的流行,新兴的数据分析行业迎来很多机遇,各种分析型数据库纷纷成熟起来,本书要介绍的Greenplum就是其中之一。Greenplum对PostgreSQL内核做了修改,用大规模并行处理(massively parallel processing,MPP)策略使数据分散到多个节点。

云计算和数据库系统的融合,最开始是在云平台上托管单机或者小规模集群的数据库,这样的融合简化了数据库系统的运维过程,把数据库系统的维护从机房转移到云平台,传统数据库变成了云数据库。随着用户需求(如数据库需要动态获取资源进行计算和分析,按照使用量计费以提高资源使用效率;用多模式多引擎的方式分析数据、基于列存储和行存储进行数据分析、用B树索引进行数据分析等)的增加,云数据库演化成了云原生数据库。数据存储和数据计算在云平台上被解耦,资源被统一分配和调度。

目前,以snowflake为代表的云原生数据库越来越被企业所接受,云原生的概念和行业标准日渐成熟。当然,技术本身也在进步,基于快速UDP 互联网连接(quick UDP internet connection,QUIC)的Http/3、非易失性存储器(non-volatile memory,NVM)存储技术、数据平面开发套件(data plane development kit,DPDK)/存储性能开发套件(storage performance development kit,SPDK)等网络技术给数据库管理系统带来了更多的挑战。

1.3 云原生数据库的主要特点

要了解云原生数据库的特点,就不得不提亚马逊云计算技术。亚马逊在2014年推出Aurora/RDS,然后推出了键值(key value,KV)数据库Amazon DynamoDB、文档数据库Amazon DocumentDB、内存数据库Amazon ElastiCache、图形数据库Amazon Neptune、时间序列数据库Amazon Timestream、宽列数据库Amazon Keyspaces、分类账数据库Amazon Quantum Ledger Database、数据仓库服务Amazon Redshift等很多数据库产品,亚马逊公司按照各类需求把数据库服务迁移到了云平台上。使用这些服务的企业很多,比如Netflix、Snapchat、Zoom、Disney、Slack、Coinbase、Samsung等。这些企业一开始使用的都是自己在机房里搭建的数据库集群,但随着亚马逊云数据库服务的日渐成熟,它们慢慢把后台服务迁移到亚马逊云平台上。Snowflake公司也没有建立自己的云平台,而是使用Amazon Web Services(AWS)、Microsoft Azure、Google Cloud Platform(GCP)的云平台搭建自己的数据分析平台。从这些案例能看出,云原生数据库随着互联网技术的日益发展会越来越流行。云原生数据库的特点如下。

● 性能高。DynamoDB和Aurora能在毫秒级别的时间内做出反应,GCP的Big Query也是以性能著称的。随着基础设施数据传输速度的提升、优化策略的落地,性能指标会越来越高。

● 可靠性高。通常,云平台公司会承诺其服务可靠性达到99.99%或者99.999%等这样的正常运行服务水平。同时,灾备系统的支持也为短时间内恢复服务提供了额外保障。类似的可靠性服务是由云平台公司提供的,客户不用进行额外投入。

● 资源弹性。云平台服务有按需付费的特点,成本控制清晰。比如,来自应用程序的请求变少,数据库的运行实例就会向下缩容,可以节约成本;反之会向上扩容,以保证应用的健壮性。

● 学习成本低。在数据分析领域,为了完成数据分析的所有步骤,数据科学家们可能需要学习Python、R等编程语言,这都会增加学习成本。云平台上整合了数据录入、预处理、数据分析等一系列的功能,数据录入后用结构查询语言(structure query language,SQL)分析数据,能降低学习成本。 HudJDO/XYtVtgvkvTTW/Gz8ArvE0vPB9CbwfnnG6p9o6LEHPEYSYy5vVfaX8im9h

点击中间区域
呼出菜单
上一章
目录
下一章
×