首页> 中国专利> 海量图数据上的路径模式查询系统

海量图数据上的路径模式查询系统

摘要

本发明提供的海量图数据上的路径模式查询系统,包括:用于将图数据存储在分布式集群上,并为其他模块提供数据读取功能的数据存储服务模块;用于将更新的日志合并到数据文件中的数据更新服务模块;,用于在计算过程中,协调服务负责机器间状态的同步的协调服务模块;用于对内管理各个成员机器,并进行查询的预处理、查询任务的分发,查询结果的收集的查询管理服务模块;用于实际执行查询的服务的并行计算服务模块。本发明提供的海量图数据上的路径模式查询系统,极大地方便了用户查询海量图数据,且很大程度上提高海量图数据的查询执行计划。

著录项

  • 公开/公告号CN103279543A

    专利类型发明专利

  • 公开/公告日2013-09-04

    原文格式PDF

  • 申请/专利权人 清华大学;

    申请/专利号CN201310222168.2

  • 发明设计人 王朝坤;白易元;

    申请日2013-06-05

  • 分类号G06F17/30(20060101);

  • 代理机构11335 北京汇信合知识产权代理有限公司;

  • 代理人夏静洁

  • 地址 100084 北京市海淀区清华园一号

  • 入库时间 2024-02-19 20:08:03

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-05-17

    授权

    授权

  • 2013-10-09

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20130605

    实质审查的生效

  • 2013-09-04

    公开

    公开

说明书

技术领域

本发明涉及海量图数据查询技术领域,尤其是涉及一种海量图数据上 的路径模式查询系统。

背景技术

现代社会中,图的应用越来越广泛,数据的管理技术已被广泛应用于各 个领域。其中互联网、社交网络、生物信息学等领域,对海量图数据的高效 管理有着很高的需求。如何有效的管理和应用这些大图数据成为当前本领域 技术人员所面临的极大挑战。

当今随着信息技术的发展和社交网络的兴起,图数据管理技术已成为数 据管理领域的研究热点之一。图数据集上的高效查询处理技术,尤其是海量 规模图数据上的查询处理,成为解决社交网络分析等大数据时代典型应用的 重要基础。

许多高效的图查询算法都直接或间接地依赖于两个节点之间特定模式 路径的高效计算,例如,GraphGrep子图查询处理算法需要检索所有的长度 不大于L的路径;化合物分类算法需要统计带有特定标签的路径;社交网络 分析算法中,需要找出边的颜色符合给定正则表达式的路径。这类问题统称 为路径模式查询处理,或路径模式匹配,是图数据管理和挖掘中的一项基本 操作。

正则表达式在文本模式匹配领域有很广泛的应用,其强大的表达能力使 之同样适用于定义图的路径模式。它能够在纯文本表达式中表达各种约束和 成员的重复模式。因此,本文使用正则表达式定义路径模式,称为图的正则 路径模式。

现有一些图查询语言虽然支持正则路径查询,但是都存在一定不足。例 如,GraphQL只支持有限的正则表达式。SPARQL只支持语义网络数据,难 以直接扩展到通用的图数据中。近些年也出现了一些原生图数据库管理系 统,如Neo4j、Apache Giraph,但它们仍然存在一些问题:Neo4j是一个具 有强一致性的数据库系统,在大型的分布式环境中性能较差;Giraph不支持 高级查询语言,并非一个成熟完整的图数据管理系统。

因此,当下需要迫切解决的一个技术问题就是:如何能够提出一种有 效的措施,已解决现有技术中存在的问题。

发明内容

本发明所要解决的技术问题是提供一种海量图数据上的路径模式查询 系统,极大地方便了用户查询海量图数据,且很大程度上提高海量图数据的 查询执行计划。

为了解决上述问题,本发明公开了一种海量图数据上的路径模式查询 系统,包括数据存储服务模块、数据更新服务模块、协调服务模块、查询管 理服务模块和并行计算服务模块,其中,所述数据存储服务模块,用于将图 数据存储在分布式集群上,并为其他模块提供数据读取功能;所述数据更新 服务模块,将更新的日志合并到数据文件中;所述协调服务模块,用于在计 算过程中,协调服务负责机器间状态的同步;所述查询管理服务模块,用于 对内管理各个成员机器,并进行查询的预处理、查询任务的分发,查询结 果的收集;所述并行计算服务模块,用于实际执行查询的服务。

进一步地,所述查询管理服务模块对外是一个集中式的查询接口,用于 提供查询接口、数据更新接口以及会话管理的功能。

进一步地,所述数据存储服务模块使用HDFS分布式文件系统完成图数 据的存储。

进一步地,所述数据更新服务模块是基于MapReduce构建将更新的日 志合并到数据文件中的。

综上,本方案能够高效并行执行G-Path查询,与大多数现有图数据管 理系统兼容,极大地方便了用户查询海量图数据,且很大程度上提高海量图 数据的查询执行计划。

附图说明

图1是本发明的海量图数据上的路径模式查询系统的结构示意图;

图2是本发明具体实施方式中所述的错误!未找到引用源。中所示的 查询自动机的例子示意图;

图3是本发明具体实施方式中所述的数据集的一个模型图示意。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,下面结合附 图与实例对本发明作进一步详细说明。但所举实例不作为对本发明的限 定。

针对以上问题,本文设计并实现了图数据上的一种正则路径查询语言— —G-Path,支持传统正则表达式中的各类运算符,例如基本的克莱尼(Kleene) 代数运算,和常见的PCRE(Perl-Compatible Regular Expression,目前最常 见的正则表达式语法)中的部分语法。基于整体同步并行(BSP)模型,我 们实现了一个分布式算法来处理G-Path查询,并提出了若干优化策略来提 高性能。由于整体同步并行模型在图数据处理领域有广泛的应用,G-Path也 可以很容易移植到各种现有图数据管理与处理平台上(例如Google Prege], Apache Giraph)。同时,基于G-Path,本文开发了一个社交网络搜索应用。 该应用可以接受用户搜索关键词,并在交互式用户界面上显示查询结果。它 的数据集包含各种不同类型的顶点和边,可以显示G-Path查询的灵活性。

本方案提出了G-Path,一个海量图数据上的路径模式查询系统。该系统 基于Hadoop分布式框架和整体同步并行计算模型,可以在无预处理或索引 的情况下,进行通用的路径模式查询。同时,为了演示该系统,我们还开发 了一个图数据搜索应用,支持在DBLP数据集中搜索各类实体和关系。得益 于G-Path的灵活性,该应用支持多种不同种类的查询。例如,某些用户需 要搜索某人发表的文章,而另一些用户需要查找作者的合作关系。该应用使 用一个图形界面交互式的接受用户输入查询和展示查询结果。

参见图1,本发明所述的一种海量图数据上的路径模式查询系统,包括 数据存储服务模块101、数据更新服务模块102、协调服务模块103、查询管 理服务模块104和并行计算服务模块105,其中,所述数据存储服务模块, 用于将图数据存储在分布式集群上,并为其他模块提供数据读取功能;所述 数据更新服务模块,将更新的日志合并到数据文件中;所述协调服务模块, 用于在计算过程中,协调服务负责机器间状态的同步;所述查询管理服务模 块,用于对内管理各个成员机器,并进行查询的预处理、查询任务的分发, 查询结果的收集;所述并行计算服务模块,用于实际执行查询的服务。

优选的,所述查询管理服务模块对外是一个集中式的查询接口,用于提 供查询接口、数据更新接口以及会话管理的功能。

优选的,所述数据存储服务模块使用HDFS分布式文件系统完成图数据 的存储。

优选的,所述数据更新服务模块是基于MapReduce构建将更新的日志 合并到数据文件中的。

按照本发明所述的方案其主要贡献包括:

首先,提出了一个通用的路径模式查询语言,称为G-Path,具有简单、 通用的特点。

此次,提出了一个基于BSP模型的G-Path查询处理算法,可高效并行 执行G-Path查询,并与大多数现有图数据管理系统兼容。

再次,开发了一个基于G-Path的社交网络搜索应用,能在社交网络数 据集上根据关键字或路径模式进行搜索。该应用使用交互式图形用户界面接 受输入并展示搜索结果。

以下对本方案做细化介绍,2G-Path查询语言与查询系统

本节首先简要介绍G-Path查询语言的定义,接下来介绍该语言的查询 处理系统。该查询处理系统支持在图数据集上搜索给定的G-Path路径模式。 它由两个重要部分组成:(1)编译,将文本查询转换成一个执行计划并进一 步优化该计划。在G-Path查询系统中,执行计划用一个有限状态自动机表 示,称之为查询自动机。(2)执行,使用整体同步并行模型对查询自动机进 行并行执行。

2.1G-Path查询语言

G-Path查询语言可用于定义正则路径模式。它有语法简单、通用性强等 特点。该语言只有两种基本字符:“.”(点号),“-”(减号)。路径中的一个 点号代表一个顶点,而一个减号表示一条有向边。例如,“.-.”表示一条有 两个顶点的路径,其中有一条从第一个顶点指向第二个顶点的出边。

G-Path语言支持常见的正则表达式运算符。如:(1)或操作符“|”可以 任意匹配其左部或右部;(2)量词“*”,“+”和“?”分别代表“零次或多次”, “一次或多次”,“零次或一次”;(3)组操作符“()”,它将括号中的部分看 作一个整体来匹配其他操作符。

由于G-Path是属性图上的查询语言,我们额外定义了属性过滤器“[attr  OP value]”。属性过滤器紧跟一个点号或减号,对这个顶点或边上的属性进 行限定,其中OP可以是如“=”,“!=”,“>”,“>=”,“<”或“<=”这类二 元关系运算符。可以将多个属性过滤器组合,表示逻辑合取关系。例如, “.[year=2013][name=World]”与一个“year”属性为2013、“name”属性为 “World”的节点相匹配。

一个合法的路径序列中顶点和边应该交替出现,且序列的第一个和最后 一个元素应为顶点。我们称之为查询的完整性约束。然而,查询输入有时会 违反此约束,例如,“..”表示两个顶点的连接。对于该查询,很容易推断出 用户想要查询的是“.-.”。为了简化语法,G-Path语言支持省略无属性过滤 器的顶点或边,但不允许同时省略两个相邻的实体。G-Path编译器可以从完 整性约束推断出省略的部分。

2.2查询自动机

一个有效G-Path查询将被编译成一个查询自动机。与正常的确定有限 自动机(DFA)相似,查询自动机包括不同的状态以及状态间的转换,但是 查询自动机与常见的确定有限自动机相比还存在许多差异。

查询自动机中的每个状态对应于路径中的一个节点。每次状态之间的转 换都使得路径长度增加1。查询自动机和DFA的一个明显区别在于,查询自 动机的一个状态中包含顶点和边上的谓词,所以查询自动机相比于正常的 DFA更适合于图数据,而且可以很容易使用基于BSP模型的并行执行器执 行。

一个查询自动机可以表示为一个查询状态表。错误!未找到引用源。 展示了查询“.[id=1]-.”的例子,“顶点匹配”下的“谓词”栏含有到达该 状态的顶点应该符合的谓词(谓词“*”为无限制,即永真谓词),如果符 合了这个谓词,则可以进入“状态转换”部分。状态转换部分有三种类 型,In(Out)转换意味着自动机可以通过满足给定谓词的入边(出边) 到达一个新状态。Accept意味着满足“顶点匹配”之后,已经匹配了完整 路径,可以输出此路径。

表1查询状态表

2.3并行查询处理

G-Path的一大优势在于支持以并行方式执行查询。我们基于整体同 步并行(BSP)模型构建了查询引擎。BSP模型将算法分为迭代进行的超 步(super-step),在每个超步中,每个节点将开启一个逻辑线程,进行特 定的计算,节点之间通过收发消息来通信,当前超步中发送的所有消息 在下一个超步中被统一接收并处理。

在G-Path的查询算法中,每个BSP消息定义为有序对(State,Path), 其中State是目前状态,Path是已匹配的路径片段。

在一个超步中,每个节点收到的每条消息都可以视为一个查询自动 机,其状态为State。沿着该顶点的每条边计算出当前节点的下一个状 态。如果下一个状态是有效的,则会沿着边发送表示下一个状态的消 息。每一个消息都可以视为一个查询自动机,因此新消息的产生就可以 看作自动机执行过程的分支。由于发送消息相对于分支执行更加轻量 化,同样的系统容量就可以容纳更大规模的并行。这是G-Path的一大优 势。图2是执行错误!未找到引用源。中所示的查询自动机的例子。第 一个超步中,顶点1向它的邻居发送状态2的消息。在第二个超步中, 顶点2、3、4分别从顶点1接收到消息。因为状态2的“状态转换”一 栏包括了Accept,所以这些顶点会分别输出一个路径。最终结果集是 [1,2],[1,3],[1,4]。

2.4优化

优化是数据管理系统中一个重要的组成部分。我们开发了多种优化 机制来加速G-Path查询。优化从两个方面进行:编译期优化和运行时优 化。我们将从这两方面介绍一些优化方案。

首先,查询自动机支持沿不同类型(In或Out)边的转换,我们可以 构造出等价的查询自动机。例如对于查询“.-.[id=1]”,我们可以从所有 顶点开始,沿出边找到ID为1的后继顶点;也可以先找到ID等于1的 顶点,然后沿入边找到它的所有前驱顶点。第二种方式显然比第一种方 式消息数更少。我们使用顶点属性的统计信息来选择最优的等价自动 机。这是编译期优化的主要内容。

其次,我们注意到如果一个顶点收到多条State相同的信息,则接下 来的执行步骤几乎相同。如果我们将这些消息能聚合起来,就可以减少 大量的信息传递。基于这一现象,我们提出了树压缩优化,将同样State 的所有消息压缩起来,并将它们的Path结合成树。一个树压缩消息可以 包含许多原始消息,减少了大量的消息传递。这是运行时优化的一个例 子。

3系统演示

本节介绍基于G-Path查询系统建立的社交网络搜索应用。该演示应 用采用DBLP数据集。数据集中的顶点有3种类型:Person,Article和 Journal。边都是无向的,因此可以在两个方向上进行检索。Publish边连 接Person和Article,Contains边连接Journal和Article。如果两个人合著 了共同的文章,则由Co-author边相连。图3是该数据集的一个模型图。 它表示出了不同类型的顶点和顶点之间的不同类型的边。数据集中顶点 和边含有不同类型的优点在于可以表达多种类型的查询。

该数据集包含1,617,172个顶点和6,323,177条边缘,有713,124个不 同的人,902,746篇文章和1302种期刊。Co-author、Contains和Publish 关系的数量分别是3,095,497,902,523和2,325,157。

3.1用户界面

该系统支持直接的G-Path查询,但这对终端用户不够友好。所以该 应用程序还支持像其他搜索引擎一样输入关键词。关键词会被转化为 人、文章或者期刊上的查询。在查询结果中,圆代表人,矩形表示文 章,圆角矩形代表期刊。

3.2典型查询

在这一节中我们将给出我们系统处理的不同类型的典型查询。

实体搜索可以通过在搜索框中输入关键词实现。系统将其转换成 G-Path查询“.[name>>KEYWORD]”(此处与下文中用KEYWORD表示 用户输入的查询关键词),默认情况下系统会从所有人、文章与期刊中 查询含有关键词的实体。如果关键词拥有前缀,表示寻找一个人。中 括号中的关键词(<KEYWORD>)表示寻找一个期刊,引号中的关键词 (“KEYWORD”)表示寻找一篇文章。

协作者搜索旨在找到给定的人的所有协作者。对应的G-Path查询应 为“.[name>>KEYWORD].[type=Person]”。在这个查询中,第一个点 与给定人相匹配,第二个点与他的协作者匹配。

搜索相似期刊是另一种类型的查询。用户不仅可以搜索人与人之间 的关系,也可以搜索期刊之间的关系,这显示了系统的灵活性。如果一 个人在不同的期刊上发表多篇论文,可以推断这些期刊之间也可能有着 相似的兴趣。

在实际操作中,假如有两个不同的期刊分别是“IBM Research  Report”和“IBM Research Report,San Rose,California”。实际上它们是 同一期刊,但因为我们仅使用期刊的全名文本来进行区分,所以这两个 期刊被看作了不同的期刊。它们之间理应有很高的相似度。

该系统还可以搜索相似的人,我们认为一个协作关系是一个强关 系,但如果两个人在同一期刊上发表文章,他们之间可能存在一个弱关 系(即有共同兴趣)。

4总结

本文提出了一个通用的路径查询语言G-Path及其查询处理算法。 G-Path查询语言具有语法简单、功能强大的特点。并行查询处理算法可 以在分布式计算集群高效处理海量图数据。基于整体同步并行模型, G-Path也可方便地集成到现有的图数据管理系统中以改善已有解决方 案。

以上对本发明所提供的海量图数据上的路径模式查询系统及其使用方 法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式 进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核 心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具 体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不 应理解为对本发明的限制。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号