一种基于双层索引结构的起源图查询方法

文档序号:9787539阅读:532来源:国知局
一种基于双层索引结构的起源图查询方法
【技术领域】
[0001] 本发明涉及大数据管理领域的起源数据的管理,着重针对数据起源图的查询方案 的设计与实现。本发明根据数据起源图特点给出一种基于双层索引结构的起源图查询方 法。该方法分别从全局和局部两个层次进行设计:一方面通过词典表可以匹配数据与其起 源数据之间的关系提出基于词典表全局索引算法;另一方面根据起源图ID快速定位起源所 存储在云计算服务器节点,提出基于位图局部索引结构,包括6种不同的选择索引和3种 join链接索引,并设计了相应的查询算法。
【背景技术】
[0002] 数据起源是对数据处理的整个历史的信息,包括数据的来源和处理这些数据的所 有后继过程。随着大数据的不断发展,云计算环境下如何高效的查询起源信息变得尤为重 要,如何高效的查询起源信息成为了一个亟待解决的问题。
[0003] 本发明针对云计算环境下数据起源查询问题,引入一种双层索引结构,分别从全 局索引和局部索引两方面进行分析,设计了一种起源图查询方法,并对方法可行的、有效的 进行验证。

【发明内容】

[0004] 发明目的:针对现有技术中存在的问题,本发明提供一种基于双层索引结构的起 源图查询方法。
[0005] 技术方案:一种基于双层索引结构的起源图查询方法,首先,面向起源图查询,提 出一种双层索引结构。其次,设计基于词典表全局索引,表中记录起源数据与数据之间匹配 关系以及起源图ID,即能够关联起源与数据之间的关系,又能够迅速定位到起源所存储云 服务器节点以减少用户查询响应时间;然后,提出基于位图局部索引,依据起源图RDF查询 方式,提出了满足八种Triple Pattern查询的索引和三种join查询方式,并且基于索引设 计了相应的查询算法。
[0006] 面向起源图查询的双层索引结构
[0007]以往的分布式环境下存储起源数据,查询起源仅仅依赖master节点来分配任务进 行查找,通常需要遍历整个集群,消耗大量的时间和资源。而现有分布式环境下起源存储系 统基本都是基于主键来快速查询,缺少高效的索引结构,不能提供多维查询和join等查询。 高效的索引结构能有效的提高查询效率,缩短用户查询时的响应时间。
[0008]为提高查询效率,结合起源图特点,提出了一种双层索引结构。索引结构包括基于 词典表全局索引和基于位图局部索引。全局索引查询起源图所存储的服务器节点,局部索 引对全局索引查询到的服务器节点细化查询,进而查询到所需的起源数据。全局索引分布 在云环境下每一个节点上,当用户请求到达时,只需参照本地服务器的全局索引结构即能 得出所要查询起源图所在节点位置。局部索引是只建立在本地服务器所存储的起源数据的 索引,每一个节点之间的局部索引并没有依赖关系。
[0009] 基于词典表的全局索引及全局查询算法
[0010] 首先给出词典表结构设计,在此基础上,完成基于全局索引的查询流程。
[0011] 1、词典表结构设计
[0012] 根据数据起源特点,从两方面设计词典表HCPTab I e。首先,存储起源图名称和对应 数据项。数据项就是起源所描述的数据,将一次工作流中的所有数据都对应一个起源图,粗 粒度的描述起源与数据之间的关系。其次,存储起源图名称与对应ID。每一次工作流的执行 则会产生一个数据起源图,起源ID则在存储过程中依据Hash(key)映射产生。全局索引中起 源图ID为一致性哈希索引算法的输入项,根据起源ID可以快速计算出起源图所存储服务器 节点。
[0013] 2、基于全局索引的查询流程
[0014]根据HCPTable中查询起源图ID从起源图的根节点开始遍历到叶子节点,根据叶子 节点得出起源图存储服务器。全局索引查询流程如下:
[0015] (1)查找词典表得到起源图ID编号
[0016] (2)根据查询需求来查找满足要求的子节点
[0017] (3)计算输出子节点编号
[0018] 基于位图的局部索引及局部查询算法
[0019] 为了提高查询起源图数据效率,考虑用户查询时的语句多样性,弥补选择索引Is、 Ip、Io在对单个Triple Pattern的查询时的不足,对主语谓语已知的三元组设计索引Isp和 Ips,对谓语宾语已知的三元组设计索引Ipo和Ιορ,对主语宾语已知的三元组设计索引Iso 和Ios,形成完整的局部位图索引结构,包括选择索引Is、Ip、Io、Isp、Ipo、Iso和join索引 Is '、Io '、Iso '。
[0020] 局部索引支持对单个云存储服务器节点上的起源图数据的细化查询。起源图查询 包含两部分:单个Triple Pattern查询和join查询。
[0021 ] (1)单个Triple Pattern查询
[0022] 选择索引18、1?、1〇、1叩、1?〇、18〇对主语、谓语、宾语、主语谓语、谓语宾语、主语宾 语进行单个Triple Pattern的查询。
[0023] (2)join 查询
[0024] 选择索引Is '、Io '、Iso '用于处理主语共享变量、宾语共享变量和主语宾语共享变 量进行join查询。
【附图说明】
[0025] 图1为双层索引结构;
[0026] 图2为基于全局索引的起源查询流程图;
[0027]图3为一致性二叉树分布模型;
[0028] 图4为RDF三元组join种类;
[0029]图5为索引空间占用分析曲线图;
[0030]图6为查询性能分析曲线图。
【具体实施方式】
[0031] 下面结合具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明 而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价 形式的修改均落于本申请所附权利要求所限定的范围。
[0032] 基于双层索引结构的起源图查询方法,首先,面向起源图查询,提出一种双层索引 结构。其次,设计基于词典表全局索引,表中记录起源数据与数据之间匹配关系以及起源图 ID,即能够关联起源与数据之间的关系,又能够迅速定位到起源所存储云服务器节点以减 少用户查询响应时间;然后,提出基于位图局部索引,依据起源图RDF查询方式,提出了满足 八种Triple Pattern查询的索引和三种join查询方式,并且基于索引设计了相应的查询算 法。
[0033]面向起源图查询的双层索引结构
[0034] 以往的分布式环境下存储起源数据,查询起源仅仅依赖master节点来分配任务进 行查找,通常需要遍历整个集群,消耗大量的时间和资源。而现有分布式环境下起源存储系 统基本都是基于主键来快速查询,缺少高效的索引结构,不能提供多维查询和join等查询。 高效的索引结构能有效的提高查询效率,缩短用户查询时的响应时间。
[0035] 索引结构包括基于词典表全局索引和基于位图局部索引。全局索引查询起源图所 存储的服务器节点,局部索引对全局索引查询到的服务器节点细化查询,进而查询到所需 的起源数据。全局索引分布在云环境下每一个节点上,当用户请求到达时,只需参照本地服 务器的全局索引结构即能得出所要查询起源图所在节点位置。局部索引是只建立在本地服 务器所存储的起源数据的索引,每一个节点之间的局部索引并没有依赖关系。设计的双层 索引结构具体如图1所示。
[0036] 基于词典表的全局索引及全局查询算法
[0037] 首先给出词典表结构设计,在此基础上,完成基于全局索引的查询流程。
[0038] 1、词典表结构设计
[0039]根据数据起源特点,从两方面设计词典表HCPTab I e。首先,存储起源图名称和对应 数据项。数据项就是起源所描述的数据,将一次工作流中的所有数据都对应一个起源图,粗 粒度的描述起源与数据之间的关系。其次,存储起源图名称与对应ID。每一次工作流的执行 则会产生一个数据起源图,起源ID则在存储过程中依据Hash(key)映射产生。全局索引中起 源图ID为一
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1