【大数据存储与管理】云数据库:02 云数据库产品

【作者主页】Francek Chen

【专栏介绍】⌈ ⌈ ⌈大数据技术原理与应用 ⌋ ⌋ ⌋专栏系统介绍大数据的相关知识,分为大数据基础篇、大数据存储与管理篇、大数据处理与分析篇、大数据应用篇。内容包含大数据概述、大数据处理架构Hadoop、分布式文件系统HDFS、分布式数据库HBase、NoSQL数据库、云数据库、MapReduce、Hadoop再探讨、数据仓库Hive、Spark、流计算、Flink、图计算、数据可视化,以及大数据在互联网领域、生物医学领域的应用和大数据的其他应用。

【GitCode】专栏资源保存在我的GitCode仓库:https://gitcode.com/Morse_Chen/BigData_principle_application

文章目录


本文首先概述当前市场上的主流云数据库厂商,然后分别介绍 Amazon、Google、Microsoft 等代表性公司的云数据库产品。

一、云数据库厂商概述

云数据库厂商主要分为三类。

① 传统的数据库厂商,如 Teradata、Oracle、IBM DB2 和 Microsoft SQL Server 等。

② 涉足数据库市场的云数据库厂商,如 Amazon、Google、Yahoo!、阿里、百度、腾讯等。

③ 新兴厂商,如 Vertica、LongJump 和 EnterpriseDB 等。

市场上常见的云数据库产品见表1。
表1 市场上常见的云数据库产品

企业 产品
Amazon DynamoDB、SimpleDB、RDS
Google Google Cloud SQL
Microsoft Microsoft SQL Azure
Oracle Oracle Cloud
Yahoo! PNUTS
Vertica Analytic Database for the Cloud
EnterpriseDB Postgres Plus in the Cloud
阿里 阿里云 RDS
百度 百度云数据库
腾讯 腾讯云数据库

二、Amazon 的云数据库产品

Amazon 是云数据库市场的先行者。Amazon 除了提供著名的 S3 存储服务和 EC2 计算服务以外,还提供基于云的数据库服务 SimpleDB 和 DynamoDB。

SimpleDB 是 Amazon 公司开发的一个可供查询的分布式数据存储系统,是 Amazon 网页服务(Amazon Web Service,AWS)上的第一个 NoSQL 数据库服务,集合了 Amazon 的大量 AWS 基础设施。SimpleDB,顾名思义,其目的是作为一个简单的数据库来使用,它的存储元素(属性和值)是由一个 id 字段来确定行的位置。这种结构可以满足用户基本的读、写和查询功能。SimpleDB 提供易用的 API 来快速地存储和访问数据。但是,SimpleDB 不是一个关系数据库,传统的关系数据库采用的是行存储,而 SimpleDB 采用的是"键值"存储,它主要是服务于那些不需要关系数据库的 Web 开发者。但是,SimpleDB 存在一些明显缺陷,如存在单表限制、性能不稳定、只能支持最终一致性等。

DynamoDB 吸收了 SimpleDB 以及其他 NoSQL 数据库设计思想的精华,旨在为要求更高的应用设计,这些应用要求可扩展的数据存储以及更高级的数据管理功能。DynamoDB 采用"键值"存储,其所存储的数据是非结构化数据,不识别任何结构化数据,需要用户自己完成对值的解析。Dynamo 系统中的键(key)不是以字符串的方式进行存储的,而是采用 md5_key(通过 MD5 算法转换后得到)的方式进行存储的,因此它只能根据 key 去访问,不支持查询。DynamoDB 使用固态盘,实现恒定、低延迟的读写时间,旨在扩展大容量的同时维持数据库的一致性,虽然这种性能伴随着更为严格的查询模型。

Amazon 关系数据库服务(Relational Database Service,RDS)是 Amazon 开发的一种 Web 服务,它可以让用户在云环境中建立、操作关系数据库(可以支持 MySQL 和 Oracle 等数据库)。用户只需要关注应用和业务层面的内容,而不需要在烦琐的数据库管理工作上耗费过多的时间。

此外,Amazon 和其他数据库厂商开展了很好的合作,Amazon EC2 应用托管服务已经可以部署很多种数据库产品,包括 SQL Server、Oracle DataBase、MySQL 和 IBM DB2 等主流数据库平台,以及其他一些数据库产品,比如 EnerpriseDB。EC2 是一种可扩展的托管环境,开发者可以在 EC2 环境中开发并托管自己的数据库应用。

三、Google 的云数据库产品

Google Cloud SQL 是谷歌推出的基于 MySQL 的云数据库,使用 Cloud SQL 的好处显而易见,所有的事务都在云中,并由谷歌管理,用户不需要配置或者排查错误,仅依靠它来开展工作即可。由于数据在谷歌多个数据中心中复制,因此它永远是可用的。谷歌还将提供导入或导出服务,方便用户将数据带进或带出云。谷歌使用用户非常熟悉的 MySQL,带有 JDBC 支持(适用于基于 Java 的 App Engine 应用)和 DB-API 支持(适用于基于 Python 的 App Engine 应用)的传统 MySQL 数据库环境,因此多数应用程序不需过多调试即可运行,数据格式对于大多数开发者和管理员来说也是非常熟悉的。Google Cloud SQL 还有一个好处就是与 Google App Engine 集成。

四、Microsoft 的云数据库产品

2008 年 3 月,Microsoft(微软)公司通过 SDS(SQL Data Service)提供 SQL Server 的关系数据库功能,这使得微软公司成为云数据库市场上的第一个大型数据库厂商。此后,微软公司对 SDS 功能进行了扩充,并且重新命名为 SQL Azure。微软公司的 Azure 平台提供了一个 Web 服务集合,可以允许用户通过网络在云中创建、查询和使用 SQL Server 数据库,云中的 SQL Server 服务器的位置对于用户而言是透明的。对于云计算而言,这是一个重要的里程碑。SQL Azure 具有以下特性。

① 属于关系数据库。支持使用 Transact-SQL 来管理、创建和操作云数据库。

② 支持存储过程。它的数据类型、存储过程和传统的 SQL Server 具有很大的相似性,因此应用可以在本地进行开发,然后部署到云平台上。

③ 支持大量数据类型。包含了几乎所有典型的 SQL Server 的数据类型。

④ 支持云中的事务。支持局部事务,但是不支持分布式事务。

SQL Azure 的体系架构中包含了一个虚拟机簇,可以根据工作负载的变化,动态增加或减少虚拟机的数量,如图1所示。每台 SQL Server 虚拟机(Virtual Machine,VM)都安装了 SQL Server 数据库管理系统,并以关系模型存储数据。通常,一个数据库会被分散存储到 3~5 台 SQL Server VM 中。每台 SQL Server VM 同时安装了 SQL Azure Fabric 和 SQL Azure 管理服务,后者负责数据库的数据复写工作,以保障 SQL Azure 的基本高可用性要求。不同 SQL Server VM 内的 SQL Azure Fabric 和管理服务之间会彼此交换监控信息,以保证整体服务的可监控性。


图1 市场上常见的云数据库产品

五、其他云数据库产品

Yahoo! PNUTS 是一个为网页应用开发的大规模并行、地理分布式的数据库系统,它是 Yahoo! 云计算平台重要的一部分。Vertica Systems 在 2008 年发布了云数据库。MongoDB 公司的 MongoDB、AppJet 公司的 AppJet 数据库也都提供了相应的云数据库版本。IBM 投资的 EnerpriseDB 也提供了一个运行在 Amazon EC2 上的云数据库。LongJump 是一个与 Salesforce 竞争的新公司,它推出了基于开源数据库 PostgreSQL 的云数据库产品。Intuit QuickBase 也提供了自己的云数据库系列。麻省理工学院研制的 Relational Cloud 可以自动区分负载的类型,并把类型近似的负载分配到同一个数据节点上,而且 Relational Cloud 采用了基于图的数据分区策略,对于复杂的事务型负载也具有很好的可扩展性。此外,它还支持在加密的数据上运行 SQL 查询。阿里云 RDS 是阿里云提供的关系数据库服务,将直接运行于物理服务器上的数据库实例租给用户。百度云数据库可以支持分布式的关系数据库服务(基于 MySQL)、分布式非关系数据库服务(基于 MongoDB)、键值型非关系数据库服务(基于 Redis)。

小结

本文概述了当前云数据库市场的三类厂商:传统数据库厂商(如Oracle、Microsoft)、云服务商(如Amazon、Google、阿里、腾讯)以及新兴厂商(如Vertica、EnterpriseDB)。Amazon 作为先行者,提供了 SimpleDB、DynamoDB(NoSQL)和 RDS(关系数据库)等产品,覆盖不同应用场景。Google Cloud SQL 基于 MySQL,与 App Engine 深度集成,简化运维。Microsoft SQL Azure 在原有 SQL Server 基础上构建,支持事务与存储过程,具备弹性扩展能力。其他厂商如 Yahoo! 的 PNUTS、阿里云 RDS、百度云数据库(支持MySQL、MongoDB、Redis)等也各具特色。整体来看,云数据库正朝着高可用、弹性扩展、多数据模型支持等方向发展。

欢迎 点赞👍 | 收藏⭐ | 评论✍ | 关注🤗

相关推荐
Volunteer Technology1 小时前
HDFS源码(一)
大数据·hadoop·hdfs
ChoSeitaku1 小时前
13.MySQL使用C语言链接及图形化界面
数据库·mysql
倔强的石头1061 小时前
【Linux 指南】文件系统系列(二):核心抽象层 —— 块 、分区 、inode 从原理到实操
linux·服务器·数据库
m0_591364731 小时前
CSS 背景图滑动切换:纯 CSS 实现右进左出轮播效果
jvm·数据库·python
2401_824222691 小时前
Python测试代码如何实现自解释_使用pytest描述性命名规范
jvm·数据库·python
woxihuan1234561 小时前
MySQL 中高效存储与查询时间数据的最佳实践
jvm·数据库·python
2301_809204701 小时前
如何用 structuredClone 原生函数实现复杂对象深拷贝
jvm·数据库·python
2601_957780841 小时前
AI智能体时代:为什么HTML正在取代Markdown成为新一代输出标准
大数据·前端·人工智能·gpt·html·claude
QYR_111 小时前
2026年MT 插芯市场洞察:CAGR 7.9%,2032 年全球规模将达 4.6 亿美元
网络·数据库·人工智能