1.5 网络大数据存储与管理体系

网络大数据处理的数据规模从TB级上升到PB、EB级,面临着如何降低数据存储成本、充分利用计算资源、提高系统并发吞吐率、支持分布式的非线性迭代算法优化等众多难题。

1.5.1 分布式数据存储

Google公司提出的GFS、MapReduce、BigTable等技术是分布式数据处理技术的具体实现,是Google搜索引擎系统三大核心技术。此后,Apache软件基金会推出了开放源码Hadoop和HBase系统,实现了MapReduce编程模型、分布式文件系统和分布式列簇数据库。Hadoop系统在Yahoo!、IBM、百度、Facebook等公司得到了大量应用和快速的发展。但作为一个新兴的技术体系,分布式数据处理技术在支持大规模网络信息处理及应用等大数据计算应用方面还存在着很多不足。

行存储(row-store)和列存储(column-store)是两种典型的数据库物理存储策略。行存储方式较为传统,它在磁盘中依次保存每条记录,比较适合事务操作;列存储方式垂直划分关系表,以列为单位存储数据,列存储还具有数据压缩(compression)、延期物化(late materialization)、块循环(block iteration)等特性[42]。由于数据分析任务往往仅使用较少字段,因此列存储方式的效率更高。数据分析任务在大数据应用中更为常见,因此许多系统尽管无法完全实现列存储的所有特性,但也或多或少地借鉴了相关概念,包括BigTable、HBase等[43]。文献[44]提出了行列混合式数据存储结构(RCFile)以解决海量数据快速加载、缩短查询响应时间、磁盘空间高效利用等问题(如图1-2所示)。RCFile融合了行存储和列存储的优点,通过行组划分降低数据加载开销,通过列数据压缩提高存储空间利用率。国际上应用最广泛的两大分布式数据分析系统Hive和Pig均集成了RCFile技术。RCFile已成为分布式离线数据分析系统中数据存储结构的事实标准。

图1-2 RCFile数据存储结构示例[44]

分布式数据存储是网络大数据应用的一个重要环节。但目前的研究工作仍存在一些局限性:①针对海量数据存储和处理所面临的数据总量超大规模、处理速度要求高和数据类型异质多样等难题,尚缺乏支持高可扩展、深度处理的PB级以上分布式数据存储框架;②需要适应数据布局分布的存储结构优化方法,以提高网络大数据存储和处理效率,降低系统建设成本,从而实现高效、高可用的网络大数据分布式存储。

1.5.2 数据高效索引

目前的主流查询索引技术是以Google公司的BigTable为代表的列簇式NoSQL数据库。BigTable提出了一种介于关系模型和Key-Value对模型之间的新数据模型:Ordered Table。Ordered Table模型提供了稀疏的、分布式的、持久存储的、基于主键排序的映射,数据由行、列和时间戳表示。BigTable中表的Scheme非常灵活,可以在运行时修改。Ordered Table模型可以对基于主键的区间查询提供有力的支持,对于涉及多个字段数据的多维区间查询主要采用二级索引技术,但这引起了性能问题。

为避免大量随机读,另一种思路是使用聚簇索引,即同时按照索引顺序存储全部数据。为保证多个查询列均有很好的性能,需要按多个索引列聚簇,但这将导致存储开销成倍增长。此外还面临着统计信息的缺失带来的新的挑战。当关系数据库领域处理多个维度的查询优化时,关键是根据表的统计信息估算子查询的代价,比如通过记录数量、数据分布的直方图等估算结果集大小、需要读取的数据块数量等。

文献[45]提出的互补式聚簇索引(CCIndex),利用多副本为每个索引列各创建一张互为补充的聚簇索引表,使得索引列上的区间查询就是对应聚簇索引表的连续扫描(如图1-3所示),解决了NoSQL数据库的二级索引技术因无法保持连续扫描特性而处理效率低下的问题。同时,结合查询结果集估算方法,以挑选最优查询计划。通过禁用底层存储系统的副本机制以避免引入额外的存储开销,并提供增量式的快速恢复数据机制。目前,CCIndex技术已应用在淘宝的数据魔方中。

图1-3 互补聚簇索引表[45]

1.5.3 数据世系管理

数据世系(data provenance)[46]包含了在不同数据源间的数据演化过程和相同数据源内部数据的演化过程。数据世系一般有两类基本方法:非注解的方法和基于注解的方法。前者采用模式映射方式使用数据处理函数和其相对应的反向函数,在更复杂的例子中可能并不存在集合之间的可逆函数,必须使用注解描述世系。事实上,基于注解的方法的应用范围要远远高于非注解的方法。

数据世系可针对多种数据类型包括关系型数据、XML数据和不确定数据等。自20世纪90年代以来,数据世系的研究取得很大的进展[4748],并且应用到了多个领域之中。面对网络大数据,数据世系管理的研究工作需关注以下几个方面[49]:①传统的数据管理下的数据世系的管理还有很多的工作亟待考虑,其中,考察数据的起源和演化过程将是一个很大的挑战;②在网络环境下不确定性数据广泛存在,并且具有多种多样的表现形式。数据的演化过程同时也伴随着数据不确定性的演化,可以利用数据的世系追踪数据不确定性的来源和演化过程;③如何解决异构世系标准的融合问题。大数据应用将涵盖更多的原本可能相互隔离的数据集合,如何将适用不同标准的数据世系信息整合在一起是一个关键问题。