[发明专利]一种基于图遍历的SPARQL查询优化方法有效
申请号: | 201710343003.9 | 申请日: | 2017-05-16 |
公开(公告)号: | CN107291807B | 公开(公告)日: | 2020-10-16 |
发明(设计)人: | 李亮;沈志宏;周园春;黎建辉;朱小杰;刘东江;李跃鹏 | 申请(专利权)人: | 中国科学院计算机网络信息中心 |
主分类号: | G06F16/2453 | 分类号: | G06F16/2453;G06F16/245 |
代理公司: | 北京君尚知识产权代理有限公司 11200 | 代理人: | 司立彬 |
地址: | 100190 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 遍历 sparql 查询 优化 方法 | ||
本发明公开了一种基于图遍历的SPARQL查询优化方法。本方法为:1)使用属性图表示RDF数据中三元组,然后利用Bigtable模型存储RDF数据,得到RDF数据对应的Bigtable数据;2)将SPARQL查询转化对RDF属性图的遍历;3)根据步骤2)获得的遍历序列,遍历Bigtable数据中满足条件的所有节点,完成SPARQL查询。本发明一方面消除了传统SPARQL查询对Hash等数据结构的依赖,减少了中间数据的产生,避免了大规模RDF数据的连接计算;另一方面,能有效利用基于Bigtable的大数据处理技术存储和管理RDF海量关联知识网络数据,加速RDF关联数据的查询和分析。
技术领域
本发明涉及一种基于图遍历的SPARQL查询执行方法,具体涉及一种面向大数据关联的存储和查询的方法及系统。
背景技术
图数据挖掘和分析是大数据的新领域,通过建立关联万维网资源、微生物菌种资源、以及科研资源等的关联关系,支持基于数据关联的信息挖掘和科学发现。资源描述框架(Resource Description Framework,简称RDF)是用于表达关于万维网(World Wide Web)资源的信息的语言,能够表达任何可在互联网上被标识的事物的信息,如页面标题、作者和修改时间以及不同数据之间的关联关系。RDF规范提供了描述资源的基础性词汇表,定义了各领域应用如WDCM(Mircen World Data Centre for Microorganisms)微生物描述资源词汇表时必须遵循的规则。SPARQL(SPARQL Protocol and RDF Query Language)是为RDF开发的一种查询语言和数据获取协议,由W3C国际标准组织推荐的RDF数据模型定义,用于查询任何能用RDF表示的信息资源。SPARQL协议和RDF查询语言(SPARQL)于2008年1月15日正式成为一项W3C推荐标准。
由于RDF使用了结构化的XML数据,检索和查询能够理解元数据的精确含义,搜索变得更为智能和准确,有效避免了检索经常返回无关数据的情况。RDF文件包含若干资源描述,每个资源描述由若干语句构成,每个语句由资源、属性类型、属性值构成三元组,表示资源具有一个属性。资源对应于自然语言中的主语,属性类型对应于谓语,属性值对应于宾语,多个RDF资源文件构成完整的资源描述和关联图。随着关联网络的数据规模越来越大,其表达和处理的数据类型越来越多,对RDF数据存储和SPARQL查询的实时性构成挑战。因此,采用可扩展的新型大数据架构提升RDF数据的存储和管理效率,提高SPARQL查询速度和分析能力非常重要。基于大图数据处理技术如Bigtable的图数据存储和管理框架,由于其出色的大规模数据处理能力,成为知识图谱网络的新发展方向。
目前,RDF数据主要采用关系数据库表或KV数据仓库存储和管理RDF三元组,通过自连接的方式实现RDF三元组的主语、谓语和宾语的子图匹配和SPARQL查询,通过Hash或Index支持本地数据的快速查询和检索,其典型实现如Virtuoso RDF图数据库。其分布式版本主要采用联邦方式,将RDF数据查询和分布式计算框架融合到一个统一的框架中,具体为:将SPARQL查询解析并分发到各个节点,每个节点运行子图匹配计算然后汇总每个节点的匹配结果。该架构简单且易于实现,支持RDF数据的分布式查询和快速返回,简化了面向较大大规模知识关联网络的设计和开发。
然而,基于联邦和子图匹配的分布式查询方式,每次查询均需要将SPARQL查询分解为子图匹配分发到多个结点,运行子图匹配并返回结果,容易导致大量的节点通信和中间数据。当数据规模超大时,系统面临如下问题:
1)高开销的自连接操作。针对分布式系统,数据表的连接操作导致系统结点间大量的数据通信。当数据量大和机器结点较多时,自连接开销大,查询延迟明显增加,不利于系统的横向扩展。
2)大量的中间数据。SPARQL查询分解后被分发到多个节点分别运行,每个节点相当于一个查询引擎,其运行产生大量的中间数据,增加了系统的内存消耗,减少了系统并行处理的SPARQL个数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院计算机网络信息中心,未经中国科学院计算机网络信息中心许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710343003.9/2.html,转载请声明来源钻瓜专利网。