1、RDBMS(关系型)
在小型和大型的组织机构中,大多数主要的运营信息主要是存储在关系型数据库管理系统(RDBMS)中。知道什么数据集被存储了以及它们被存储在何处,是大数据实施中的关键构件块。PostgreSQL是最广泛使用的开源数据库,其真正的能力在于它的扩展性。用户和数据库管理员可以添加新的功能,而不影响数据库的基本操作和可靠性。
2、非关系型数据库(“不仅仅是SQL”Not Only SQL,NoSQL)
非关系型数据库无须依赖于RDBMS特有的表/键模型。一些最流行的非关系型数据库的风格和开源实现如下:键值数据库;文档数据库;列式数据库;图数据库;空间数据库。下面主要介绍两个常用的数据库:MongoDB和HBase。
2.1、文档数据库
两种文档数据库:一种通常被描述为一个完整的文档样式的内容库(例如,文字文件和完整的网页),另一种是用于存储文档组件的数据库,将其作为静态实体或文档一部分的动态组件来永久存储。文档数据库正在成为大数据所采用的黄金标准。
MongoDB是“hu(mongo)us database”系统的项目名称,它是由包含集合的数据库组成,集合是由文档组成的,每个文档由字段组成。正如关系型数据库中的那样,我们可以索引一个集合,这样会增加数据查找的性能。
MongoDB返回一个叫做光标的东西,它作为一个数据的指针,提供了计数或分类数据的选项,而不需要解压它。MongoDB生来支持BSON,JSON(注:JSON是一种数据交换格式,基于JavaScript编程语言的一个子集,本质上是文本。)文件的二进制实现。
MongoDB也是一个包含以下要素的生态系统:
- 高可用性和复制服务,可以用于跨局域网和广域网缩放。
- 一个网格文件系统(GridFS),通过在多个文件中将对象划分的方式,启用了大对象存储。
- MapReduce支持分析和不同集合/文档的聚合。
- 分片服务,在一个或多个数据中心的服务器集群中,分布一个单一的数据库。服务是由一个分片字段驱动的,用于跨多个实例智能地分发文件。
- 查询服务支持随机查询、分布式查询和全文检索的查询服务。
有效的MongoDB实现包括:大容量的内容管理;社交网络;归档;实时分析。
2.2、列式数据库
关系型数据库是面向行的,因为在表中的每一行数据都被存储在一起。在列式或是面向列的数据库中,数据是跨行存储的,这是列式数据库最重要的底层特征。添加列很容易,而且可以逐行添加,提供了极大的灵活性、多性能和扩展性。
HBase是目前最受欢迎的列式数据库之一,为满足核心数据存储需求,HBase使用Hadoop文件系统和MapReduce引擎。HBase的实现是高度可伸缩的、稀疏的、分布式的、持久性的多维排序图。每个图按行键、列键和时间戳进行索引,图中的每个值都是一个未经解释的字节数组。
当大数据的实现需要随机、实时地读/写数据访问时,HBase是一个很好的解决方案。因此,常被用来存储结果,用于后面的分析处理。