大数据的有效管理是实现大数据处理的前提和基础。非结构化数据是当今大数据的主体。针对非结构化数据管理平台构造中的数据表示、数据操作与数据处理效率等关键问题,提出并论述了四面体数据模型、非结构化数据查询语言(UQL)及数据分布式存储与并行处理架构,并将上述技术在非结构化数据管理系统(AUDR)中进行了应用。
1.引言
随着互联网与数字化信息获取技术的快速发展,新的数据源不断涌现,各种应用所产生的数据呈指数级增长。根据互联网数据中心监测,全球数据量大约每两年翻一番,预计到2020年,全球的数据量将达到35 ZB,预示着我们已经进入大数据时代。大数据处理可分为三个阶段:数据获取与抽取、数据存储与管理及数据分析与挖掘。其中,数据存储与管理负责把有潜在价值的海量数据进行表示、存储并提供数据关联、检索等操作,为进一步进行数据的深度分析提供必要的支持。同时,人们可以看到,由于微博、社交网等互联网应用以及娱乐、媒体、医疗保健的蓬勃发展,使图像、音频、视频、文本等数据大量涌现。据Gartner Group统计,如今80%的数据为非结构化数据,并且仍保持高速增长态势,非结构化数据已逐渐成为大数据的主体。因此,如何建立有效的非结构化数据管理平台,已成为大数据处理相关研究中的一个核心问题。
非结构化数据包含复杂的内容,并具有不同的结构特点,传统关系数据库无论从描述能力上还是从管理数据的规模上,都无法应对非结构化数据管理的要求。因此,需要专门针对非结构化数据特点,研究建立一种新的管理技术与平台。建立这种面向大数据的非结构化数据管理平台的关键技术包括:(1)统一数据模型,该模型将各种异构非结构化数据进行统一描述,并且能够实现各种模态信息(如语义特征、底层特征等)的集成描述,从而有效地支持大数据的检索与关联分析;(2)分布式存储与并行处理模型与架构,这种架构应具有高度并行化与可扩展性,以保证大数据的处理效率。(3)查询语言与操作。对于非结构化数据的描述,目前有三类:基数据可视化等。查询语言和可视化数据展现,是用于关键字的语义描述;基于底层特征的描述;基于户对大数据进行访问与分析的接口。查询语言应该能够准确表达用户的数据访问意愿,支持灵活丰富的数据操作。
2.数据模型
数据模型是数据管理的核心,关系数据库几年来蓬勃应用与发展的基石,正是E.F.Codd于20世纪70年代初成功提出的关系数据模型与数据理论。数据模型定义了数据描述结构、数据操作方法以及数据完整性约束条件。基于数据模型,可以建立可扩展的数据存储模型,使数据能够以某种结构和方式进行存储与读取;可以建立面向上层应用的灵活多样的数据操作模型,支持用户对数据的高效访问。非结构化数据管理与传统结构化数据管理的目标是相同的,即支持数据的永久保存、快速有效的数据读取操作,从而有效地支持上层应用和用户的数据处理逻辑。因此,在非结构化数据管理中,建立有效的数据模型,仍然是达到数据管理目标的核心和关键。现有的非结构化数据模型主要有关系模型、扩展关系模型、面向对象模型、E-R模型以及分层式数据模型等,这些模型原本存在扩展性与复杂性方面的问题,而在面向大数据时这些问题更加突出,因此无法胜任大数据的管理。
非结构化数据例如文本、图形、图像、音频和视频等,从内容上没有统一的结构,数据是以原生态形式(raw data)保存的,因此计算机无法直接理解和处理。为了对不同类型的非结构化数据进行处理,所采用的基本思路是对这些非结构化数据进行描述,基于描述性信息实现对非结构化数据内容的管理和操作。对于非结构化数据的描述,目前有三类:基于关键字的语义描述;基于底层特征的描述;基于概念的语义描述。因此,一个非结构化数据可以由基本属性、语义特征、底层特征以及原始数据四个部分构成,而且四个部分的数据之间存在各种联系。
基于上述对非结构化数据的分析,本文作者所在的课题组提出了四面体数据模型。四面体模型由一个顶点,四个刻面和刻面之间的交线组成,如图1所示。
图1 四面体模型示意图
四面体模型可以通过一个六元组表示:Tetrahedron = (V,BA,SF,LF,RD,CONJS),其中,V表示四面体的顶点,并且也是BA, SF和LF的交点,它标明了四面体的唯一性;BA是指四面体的基本属性刻面,表示数据的基本属性,这些属性不涉及数据的语义,包括名称、类型、创建者、创建时间等;SF是指四面体的语义特征刻面,表示数据的语义属性,包括作者创作意图、数据主题说明等语义要素;LF是指四面体的底层特征刻面,描述数据的底层特征,例如图像的颜色、纹理、形状等;RD是指四面体的原始数据刻面,表示非结构化数据的原始存储文件;CONJS是指一组衔接不同刻面的连接线。一条连接线表示两个刻面之间存在的联系。图2是一个图像的四面体描述示例。
图2 图像的四面体模型
四面体模型的特点是:语义特征与底层特征进行一体化表达的集成性;图像、文本、视频、音频等多种异构数据表达的统一性;支持语义特征、底层特征动态变化的可扩展性;简单性。基于四面体模型构建的数据管理平台,将能够实现异构数据的统一存储与关联操作,从而更好地支持大数据的深度处理。
大数据的重要价值,体现在人们可以通过对数据的分析得到有用的知识。大数据管理平台在进行数据管理的同时,也需要对这些知识进行管理。因此,非结构化数据模型的进一步发展方向,将是引人本体技术,建立异构数据与多粒度知识一体化描述的数据一知识模型。
3.查询语言
目前,海量非结构化数据应用(如搜索引擎)与用户的接口,往往是通过关键词输入。这种方式简单,但无法全面、准确表达用户的操作意图,也不利于用户完成复杂的数据分析处理。因此,面向大数据的非结构化数据管理平台,需要建立一种查询语言,支持用户的各种查询需求,并使用户能够准确表达查询意图。基于四面体数据模型,我们提供一种非结构化数据查询语言UQL。
UQL支持对非结构化数据的多种查询,并提供数据定义和数据基本统计等功能。UQL的基本功能包括:按基本属性或语义特征的基本数据检索;根据用户输人的数据示例,如一副图像通过底层特征匹配进行检索;结合基本属性、语义特征和底层特征的多模态关联检索;基于数据某个刻面信息检索出相关多种类型数据的多数据关联检索;实现对查询结果的聚类、分类、多维数据分析等智能检索;以及数据定义与数据统计等。上述各种检索可以嵌套复合,构成对数据的综合检索服务。
在四面体模型中,基本属性和语义特征都是用文本进行描述的。由于XML具有良好的扩展性,因此采用XML来描述四面体模型中基本属性刻面与语义特征刻面。XQuery是目前广泛使用的XML数据查询语言。然而,UQL所支持的功能如底层特征查询、智能查询等在XQuery查询语言中都没有提供,所以我们对XQuery查询语言进行扩展,增加相应功能,并略去部分不相关文法,基于XQuery提出非结构化数据查询语言UQLo UQL文法的定义采用扩展巴科斯-瑙尔范式(EBNF)来描述。
UQL定义了执行数据查询、数据定义与数据统计三类操作的语句。其中查询语句Query语句是UQL的主要语句,它的整体结构是对XQuery查询语言中的FLWOR表达式进行改写得到的,其中省略let语句和orderby语句,增加intelligence和filepath语句用来定义智能查询和实例查询。Query语句的描述如下:
QueryClause::=ForClauseWhereClauseReturnClauseIntelligenceClause? FilePathClause?
UQL的数据定义语句DefineClause,通过指定数据类别和语义项的字段信息,实现数据基本属性与语义特征的XML模式的个性化定制。UQL的数据统计语句CountClause,指定统计的数据所属类别以及相应基本属性约束条件,实现按基本属性的数据统计功能。
UQL基于四面体模型,提供语义或底层特征的单项检索、关联检索,多类型数据的关联检索,聚类等智能化操作,能够支持上层应用对非结构化数据的操作。
4.分布式存储与并行处理架构
数据的分布式存储和并行化操作处理。是大数据管理平台的核心技术之一。MapReduce计算模型体现了分治算法的分而治之思想。Map把一个复杂的问题分解成多个子问题,每个子问题都相对简单并可以独立处理;Reduce把各个子问题的处理结果进行合并。MapReduce是适用于大数据存储与并行化处理的简单而有效的一种计算模型。我们基于MapReduce模型,提出了一种非结构化数据分布式存储与并行处理框架,该框架由存储引擎和检索引擎组成,如图3所示。
图3 数据分布式存储与并行处理框架
分布式存储引擎采用MapReduce模型,并基于Hadoop的HBase和HDFS实现。它的主要功能是基于四面体数据模型提取非结构化数据的基本属性、语义特征和底层特征信息,并将这些信息连同原始数据存储在HDFS和HBase中。
存储引擎由Namenode和Datanode构成。Namenode通过Map操作将存储的数据分成若干子块,并将这些子块分配给各个Datanode进行特征提取和数据永久保存的操作;同时Namenode会开启一项任务来追踪处理过程,并在各子块存储完成后执行Reduce操作对结果进行合并。Namenode和Datanode的这种协同工作方式,实现了大量数据的并行与分布式存储。
并行化检索引擎主要负责数据的快速查询,是基于MapReduce模型建立的Master-Slave并行化框架。Master负责管理所有Slave可分解和分配具体检索任务,并对检索结果进行效整合;Slave模块负责对本地数据实行具体的检索任务并将结果返回给Master。通过Master的有效调度,多个Slave可并行化执行检索任务,从而实现检索并行化的处理架构。
由于Master可以实现任务的灵活分发和结果的有效整合,多个Slave可以并行化执行任务且可灵活扩展,因此该引擎具有很好的可扩展性和高效性。
5.结语
大数据的有效管理是实现大数据检索与分析处理的前提和基础。本文对面向大数据的非结构化数据管理平台的关键技术进行了分析,论述了非结构化数据的四面体模型,非结构化数据查询语言UQL,以及基于MapReduce的分布式存储与并行处理框架。上述技术在“核高基”重大专项项目研发的非结构化数据管理系统(AUDR)中得到了成功应用。AUDR目前已在航空工业、车载综合信息服务、医学、科技资源共享等四个重大行业和领域进行了示范应用取得了良好的效果。