大数据存储技术
上QQ阅读APP看书,第一时间看更新

| 1.2 大数据存储的基本形式 |

大数据存储的基本特点是存储的数据量巨大。因此通过一台机器对数据进行存储往往是无法实现的,这是因为单台机器能够存储的数据容量都是有限的。在这样的条件下,大数据存储需要通过分布式存储的方式完成。与传统的数据存储一样,大数据存储也有不同的体现方式。与单机的存储一样,大数据存储的基本形式也可以被分为文件系统的存储、键值对的存储,以及数据库的存储,分别是对单机上对应存储形式的扩展。在大数据存储中,最为广泛使用且存储容量最大的存储方式是分布式文件系统,这是对单机文件系统的扩展。对于单机的存储,除了文件系统的存储形式,还有其他存储形式,如在计算机系统中经常使用的键值对的存储,对这个存储模式进行扩展,可以获得相应的分布式存储的方式,即分布式的键值对存储。此外,还有一个重要的存储形式——数据库的存储,可以将有格式的信息放入数据库中,这是一种非常易用的存储形式。当前大部分的应用需要数据库的支持。数据库的存储形式使建立应用程序变得非常方便。下面对各种大数据存储形式进行简要的介绍。

(1)分布式文件系统

首先是分布式文件系统。搜索引擎抓取的数据会被保存在分布式文件系统中。分布式文件系统是大数据系统中一个非常重要的组成模块,其地位就像单机的文件系统在整个单机系统中处于非常重要的位置一样。分布式文件系统将单机的文件系统进行扩展,甚至可以扩展到数千台机器或者全球统一的分布式文件系统。分布式文件系统之所以重要,是因为随着大数据的发展,大量的非结构化数据需要处理,而非结构化数据没有统一的形态,不能通过结构化(如结构化数据库)的方式来表达,通过文件进行存储是必需的。从这一点来看,分布式文件系统的应用非常广泛。

在具体的展现形式方面,分布式文件系统也需要构建一个目录树结构,用户访问时首先需要通过目录树进行文件数据的定位。此外,分布式文件系统跟单机文件系统一样,也需要提供文件的访问方式,包括打开文件、读取文件、写入文件和关闭文件等。

(2)分布式键值对的存储

除了分布式文件系统,大数据存储还有其他形式,包括分布式键值对的存储、分布式数据库的存储。数据库首先需要定义存储数据的格式,在进行存储的时候往往需要使用一些主键找到对应的值,因此数据库的方式能够表达较为复杂的结构信息。而键值对的存储虽然简单,但是在计算机系统技术方面占有非常重要的地位。这是因为键值对的结构虽然简单,但是可以支持非常复杂的应用形式。简单的结构也能够保证总体的存储体系结构可以扩展到非常大的规模。键值对在单机中已经有非常广泛的应用,很多数据库的底层实际上使用的是键值对的存储。因此,非常有必要将键值对的存储扩展到分布式的环境,以支持大数据的存储以及计算应用。实际上,在很多应用中键值对的存储模式已经足够丰富,也非常方便程序员使用。在实际的生产实践中也发现键值对的存储是很容易被扩展到分布式环境的。这就使得分布式键值对的存储成为大数据存储的一种基本形式。分布式的键值对存储同样也可以作为分布式数据库存储的底层。

(3)分布式数据库

当然,最为广泛的数据存储形式还是数据库的存储。关系数据库的建立和发展为计算机应用打下了良好的基础,这是因为很多应用程序员并不希望了解底层的细节,而是希望使用数据模型模板来保存数据记录。在很多情况下,他们往往会按照关系数据库的要求把数据保存到关系数据库中,关系数据库具有对数据进行建模的抽象能力,可以为应用程序带来良好的支持。关系数据库的关系模型有一定的复杂度。但是这个关系模型本身可以提供一些必要的应用程序的支持。这会大大简化应用程序员的工作,应用程序员可以更加关注于应用的本身。关系模型可以用来建立很多实际数据的抽象模型,适用于很多实际的应用场景,如很多表格类的应用可以在政府、机构、学校、图书馆等场景下使用。这一点是非常明显的,因为像Excel这样的应用程序在实际中就被广泛使用。很多互联网应用的后台就将数据保存在数据库中,前端通过应用程序访问数据库的形式,将最终的信息展现在网页上。可以说,数据库是绝大多数广泛使用的应用程序的后台支撑。从数据库的应用支持本身来说,非常有必要将数据库扩展到分布式的环境中,现在已构造出可以保存大量应用数据的分布式数据库。除了能够保存大量数据,也需要在这上面支撑关系运算,从而可以通过多台机器甚至上千台机器协同工作,提高应用程序的性能,支持更多的用户。

以上3种就是大数据存储的基本形式,可以看到,这些基本形式与现有单机的数据存储基本形式是类似的,这实际上取决于应用本身的特点。但是大数据的存储具有非常高的要求。简单地将单机的存储扩展到分布式环境,或者扩展到一个非常大的并行计算规模是不够的。在进行系统扩展时,需要解决一系列的关键技术问题。下面列举和分析大数据存储的各种关键技术。这里讨论的关键技术也构成了本书的主要内容。