1.2.5 新兴数据管理阶段
21世纪以来,随着网络及计算机技术的发展,各行各业走上了信息化的道路并积累了海量的数据。随着Web 2.0、物联网和云计算的兴起,微博、社交网络、电子商务、生物工程等领域的不断发展,各领域的数据呈现爆炸式的增长和积累,并超越了相应数据仓库和数据处理资源的发展,传统的关系数据库显得力不从心。如何采用新的技术和方法实现PB级至ZB级海量数据的存储和分析是当前面临的巨大挑战,这种背景下,NoSQL数据库和云数据库系统等新型的数据库管理技术逐渐成为主流。
(1)NoSQL数据库
NoSQL是指非关系型的、分布式的、不严格遵循ACID原则的一类分布式数据库管理系统。NoSQL有两种解释:一种是Non-Relational,即非关系数据库;另一种是Not Only SQL,即数据管理技术不仅是SQL,也就是说NoSQL为数据管理提供了一种补充方案。目前第二种解释更为流行。NoSQL数据库改变了关系数据库中以元组和关系为单位的数据建模方法,开始支持数据对象的多样性和复杂性。
相对于关系数据库,NoSQL数据库的主要优势体现在以下几个方面:
①易于数据的分散存储与管理。NoSQL数据库通过放弃部分复杂处理能力的方式,支持将数据分散存放在不同的服务器上,解决了关系数据库在进行大量数据写入操作时的瓶颈。
②数据的频繁操作代价低,数据的简单处理效率高。NoSQL数据库通过采用缓存技术较好地支持同一个数据的频繁处理,提高了数据简单处理的效率。
③适用于数据模型不断变化的应用场景。NoSQL数据库遵循“先有数据,后有结构”的设计模式,具有较强的应变能力。
需要注意的是,提出NoSQL技术的目的并不是替代关系数据库技术,而是对其提供一种补充方案。NoSQL数据库只应用在特定领域上,基本上不进行复杂的处理,但它恰恰弥补了之前所列举的关系数据库的不足。因此,二者之间不存在对立或者替代关系,而是互补关系。如果需要处理关系数据库擅长的问题,那么仍然首选关系数据库技术;如果需要处理关系数据库不擅长的问题,那么不再仅仅依赖于关系数据库技术,可以考虑更加适合的数据库技术,如NoSQL技术。
当前,主流的NoSQL数据库主要有4种,分别为BigTable、Cassandra、Redis、MongoDB,它们在设计理念、数据模型、分布式等方面存在着较大的区别(表1-3)。
表1-3 当前主流的NoSQL数据库
(2)云数据库
从技术上看,大数据与云计算的关系就像一枚硬币的正反面一样密不可分。大数据必然无法用单台计算机进行处理,必须采用云计算的分布式计算架构进行处理。所以云计算解决了大数据的运算工具问题,而对于大数据的存储,需要相应的云存储工具,云数据库可以作为一个云存储系统使用。
云数据库是指被优化或者部署到一个虚拟计算机环境中的数据库,具有按需付费、按需扩展、高可用性以及存储整合等优势。根据数据库类型一般分为关系型数据库和非关系型数据库(NoSQL数据库)。
将一个现有的数据库优化到云环境的好处如下:
轻松部署:用户能够在RDS(Relational Database Service)控制台轻松完成数据库的申请和创建,RDS实例在几分钟内就可以准备就绪并投入使用。用户通过RDS提供的功能完善的控制台,对所有实例进行统一管理。
高可靠:云数据库具有故障自动单点切换、数据库自动备份等功能,保证实例高可用和数据安全;至少提供7天数据备份,可恢复或回滚至7天内任意备份点。
低成本:RDS支付的费用远低于自建数据库所需的成本,用户可以根据自己的需求选择不同套餐,使用很低的价格得到一整套专业的数据库支持服务。当前主流的云数据库见表1-4。
表1-4 主流的云数据库