就创建、交流、访问内容、共享信息和购买产品而论,快速扩展的新一代基于 Internet 的服务(比如电子邮件、博客、社交媒体、搜索和电子商务)实际上重新定义了 Web 用户的行为和趋势。由于这些系统的数量的不断增多,IT 专业人士正见证着所生成数据和所消耗数据的规模的扩大,不断增长的伸缩性需求和新功能需求为传统关系型数据库管理系统 (RDBMS) 带来了新的挑战。
我们先来了解一下低成本高性能 NoSQL 数据库软件。NoSQL 数据库软件的主要特性包括:
能够水平扩展数据。
支持较弱的一致性模型( 原子性、一致性、隔离性和持久性属性之一,确保数据库事务得到可靠处理)。
能够使用灵活模式和数据模型。
支持简单的低级查询接口。
本文将探讨数据库系统的最新进展,以支持 Web 规模数据管理。本文概述了各个 NoSQL 系统备用方案的主要代表(HBase、MongoDB 和 SimpleDB)的特性和功能,以及它们对不同种类 Web 应用程序的支持情况。
云数据库设计基础
云计算如何改变人们与数据的交互方式?
所有人都可以轻松地处理数据事务
Web 技术的最新进展使得所有用户都可以轻松地提供和使用所有格式的内容。例如:
构建一个个人网站(比如,Google Sites)。
创建一个博客(使用 WordPress、Blogger 和 LiveJournal).
在网络社区进行交互(使用 Facebook、Twitter、LinkedIn 等等)。
这些渠道已成为商品和工具,使更多的人能够更多元化地轻松创建、使用和传输更多数据,比如,采用博客、微博、社交网络交互、视频、音频和照片的形式,数据可以是结构化的,也可是非结构化的。
应用程序变成了分布式的、可伸缩的服务
很明显,系统和工具制造商的下一个目标是以分布式的、可扩展的、可广泛访问的 Web 服务的形式帮助实现每个应用程序。(例如,请查看 Facebook、Flickr、YouTube、Zoho 和 LinkedIn 上的这些服务)。
满足这一标准的应用程序是数据密集型的、高度交互的应用程序。例如,在撰写本文时,Facebook 宣称每个月有 8 亿活跃用户(现在可能有 1 亿)。每个用户的朋友圈大约有 130 个人。此外,约有 9 亿个注册用户交互对象,比如页面、组、活动或社区主页面。
其他规模较小的社交网络,比如 LinkedIn,主要针对专业人士,注册用户也达到了 2 亿。Twitter 宣称每月有 1 亿注册用户。假设存在这样一种情况:终极目标是使那些想要实现这个高级伸缩性和可用性的人能够轻松地实现其目标,那么如何以最少工作和资源来实现是一个挑战。
云模型简化服务部署
云计算技术是一种相对较新的模型,可托管软件应用程序(尽管云是如此完整,以至于到目前为止,很难从将它从整个数据事务系统的其余部分中分割出来)。云模型简化了耗时的硬件准备、硬件购买和软件部署过程,彻底改变了计算资源、服务商业化以及交付客户的模式。特别是,它将这类基础架构的位置转移到网上,减少了硬件和软件资源管理的相关成本。
这意味着云使得期望计算成为实用工具的长久以来的梦想得以实现,规模经济理论有助于实现有效地降低计算基础架构成本的梦想。
云计算具有许多软件应用程序部署优势,比如按使用量付费成本模型、缩短了上市时间,以及(几乎)无限资源和无限可伸缩性方面的洞察。
新发行版模型意味着更多的新数据和数据类型
实际上,云计算模型的优势为新应用程序部署开辟了新的途径,从经济学角度讲,这些应用程序在传统企业基础架构设置中不具有可行性。因此,云成为了一个日益流行的可在各个领域(比如零售、金融、新闻和社交网络)托管软件应用程序的平台。应用程序数量的增加导致所生成数据和所消耗数据的规模的扩大。这就是促使这些应用程序的云托管数据库系统成为应用程序软件栈中的关键组件的原因。
云模型导致了云数据库模型的出现
有很多系统和方法都可以用来应对在云计算环境中托管数据所带来的挑战。事实上,有三个主要技术常用于在云平台上部署软件应用程序的数据库层:
虚拟化数据库服务器
数据库即服务平台
NoSQL 存储系统