【大数据存储与管理】云数据库: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)等也各具特色。整体来看,云数据库正朝着高可用、弹性扩展、多数据模型支持等方向发展。

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

相关推荐
Old Uncle Tom15 小时前
Harness Engineering 综述
java·开发语言·数据库
疯狂打码的少年15 小时前
Cache的三种映射方式(直接/全相联/组相联)
linux·服务器·数据库·笔记
志栋智能15 小时前
超自动化安全:实现安全运营现代化的关键
大数据·运维·网络·安全·自动化
我是一颗柠檬15 小时前
【MySQL全面教学】MySQL备份与恢复Day14(2026年)
数据库·后端·mysql
渣渣盟15 小时前
MySQL DDL操作全解析:从入门到精通,包含索引视图分区表等全操作解析
大数据·数据库·mysql
unclejet16 小时前
颠覆传统开发!AI根治软件工程技术债务顽疾
大数据·人工智能·软件工程
小小工匠16 小时前
Redis - 基本架构:一个键值数据库到底由什么组成
数据库·redis·架构
赴山海bi16 小时前
如何在不降低销量的情况下降低亚马逊ACOS
大数据
mN9B2uk1716 小时前
为mysql数据库建立索引
数据库·mysql·oracle
SilentSamsara16 小时前
SQLAlchemy 2.x:异步 ORM 与数据库迁移 Alembic 完整指南
开发语言·数据库·python·sql·青少年编程·oracle·fastapi