3.1 多源异构数据集成技术
前面提到,教育领域的数据除了来自各个业务系统的关系数据,还有大量的视频、音频、图片、文件等非结构化数据,以及日志、文档等半结构化数据。这些由不同应用生成的信息存储在许多不同的数据源之中,要有效地利用这些信息,需要从多个分布、异构和自治的数据源中集成数据,同时还需要保持数据在不同系统上的完整性和一致性。
举一个查询的例子:找出家庭困难、成绩优秀的学生进行奖学金评定。要实现这个查询,需要对三个系统的内容进行连接:教务系统里面获取成绩;学工系统里面获取学生信息;校园卡系统里面获取消费信息。如果用户不得不自己访问这三个系统,然后在三个系统上分别进行有关信息的查询,再自己手动把这些信息连接起来,才能得到所需的信息,那么这种复杂度必定是不可忍受的。因此,数据集成的目标就是设计出一种合适的数据集成系统,它能够自动为用户完成这些操作,并且在可以接受的时间内返回查询的结果数据。至于这些结果信息是否来自多个自治而且异构的数据库,原来的形式是否各不相同等问题,都由系统来解决。
如何将来自不同数据源的异构数据进行整合,向用户隐藏这些差异,提供一个统一和透明的数据访问接口,是教育大数据领域需要解决的首要问题。
数据集成问题最早提出是在20世纪70年代中期,传统数据集成系统主要采用多数据库系统和联邦数据库系统两种不同的模式进行构建。由美国惠普公司开发的早期多数据库系统Pegasus,实现了对本地和外部自治的数据库的访问。由美国密歇根大学、加拿大滑铁卢大学以及IBM 公司等合作开发的CORDS系统,实现了对多个异构关系数据的集成,并通过查询采样、查询探测、模糊查询等技术实现了查询优化,但是CORDS 项目的最大局限在于仅仅支持关系型数据库。此外,如IBM的Dataloiner以及Sybase的Omni Connect等多数据库系统也相继被研发出来。此时的多源异构数据集成还有很多尚待解决的问题,如模式冲突、查询优化、动态融合等。
1996年,Alon Halevy、Anand Rajaraman、Joann Ordille三人在其合著的论文Querying Heterogeneous Information Sources using Source Descriptions上,提出了一个数据集成项目“Information Mainfold”,这个项目和其他同类的项目极大地促进了数据集成的发展,并导致一系列数据集成商业项目的诞生。
Information Mainfold对数据集成这二十来年发展的主要贡献就是其所提出的对已知的数据源内容的描述方式。一个数据集成系统会给它的用户提供一种模式,用于用户提交他们的查询。其中比较典型的代表就是中介模式,它通过提供一个统一的数据逻辑视图来隐藏底层的数据细节,使用户可以把集成的数据源看作一个统一的整体。数据集成系统必须预先建立好中介模式与数据源模式之间的语义映射(semanic mappings)。Information Mainfold提出了著名的语义映射的构建方法,后来被称为LAV (Local-as-View)。在中介模式下(图3-1),数据集成系统通过中介模式将各个数据源的数据集成起来,而数据仍存储在各个局部数据源中,通过各个数据源的包装器(wrapper)对数据进行转换使之符合中介模式,用户提交的查询可通过查询重写转化为对各数据源的可执行的一系列查询,然后查询引擎再进行查询优化和执行。
图3-1 中介模式
计算机网络技术的发展,如中间件技术、XML 技术、Web Services 技术和本体(Ontology)技术的出现,增加了对半结构化文本数据和Web 数据的处理,出现了不少利用这些技术进行集成的成果。如基于点对点(P2P) 文件共享技术的Piazza系统,基于代理技术(Agent)的Info Sleuth信息集成系统, 基于网络服务(Web Service)技术的Active XML系统,基于本体(Ontology)技术的 Observer 系统,以及基于语义技术的SIRUP 系统等。
如今这些系统的一个基本缺点在于需要很长的建立时间。美国学者 Michael J. Franklin等人提出了数据空间(Data Space)的概念,与传统数据集成技术不同,数据空间是与主体相关的数据以及关系的集合。数据空间中的主体采用“Pay-as-You-go”的数据管理方式:不需要任何的建立时间就能够给用户提供服务。随着时间的推移,用户的需求不断增加,数据空间“增量式”添加服务的内容,改进服务的质量,这个过程也是数据不断被集成的过程。