图结构大数据局部扩散更新算法制造技术

技术编号:13286247 阅读:43 留言:0更新日期:2016-07-09 02:22
本发明专利技术公开一种图结构大数据局部扩散更新算法,通过将图结构大数据分解描述为图结构大数据实体和实体间联系;采用分布式数据库HBase表存储大数据实体标识和实体间联系;借助队列缓冲相邻实体,通过更新深度控制更新循环,以欲更新开始实体为中心更新相邻实体属性。本发明专利技术与基于深度优先搜索和广度优先搜索的局部更新算法相比,有更快速度快,占用空间小,支持有向图和无向图大数据的局部数据更新,容易增加和删除维护实体间联系。

【技术实现步骤摘要】

本专利技术涉及一种数据处理方法,尤其涉及一种图结构大数据局部扩散更新算法
技术介绍
在本专利中,图结构指数据结构中的图,具有多个前驱节点(父节点)和多个后继节点(子节点),或者节点的联系是任意。节点由数据域构成,存储节点数据、前驱节点和后继节点指针(地址)。在基于图结构应用(如信息推送、广告投放、市场营销等领域)中,需要经常更新节点数据,数据更新在图结构数据非常重要。更新节点数据,就需要遍历图到欲更新节点。遍历到欲更新节点是数据局部更新的关键技术,遍历图的方法有深度优先搜索方法和广度优先搜索方法。相应地,图的局部更新可以采用基于深度优先搜索方法和广度优先搜索方法。深度优先搜索方法技术要点:从图中某个顶点出发,访问该顶点,依次从该顶点的未被访问的相邻顶点出发深度优先遍历图,直到图中所有和该顶点相通的顶点都被访问到;若图中尚有顶点未被访问,则选取图中一个未曾被访问顶点作为起点,重复上述过程,直至图中所有顶点都被访问为止。广度优先搜索方法技术要点:从图中某个顶点出发,访问该顶点,依次从该顶点的未被访问的相邻顶点出发广度优先遍历图,直到图中所有和该顶点相通的顶点都被访问到;若图中尚有顶点未被访问,则选取图中一个未曾被访问顶点作为起点,重复上述过程,直至图中所有顶点都被访问为止。数据局部更新采用广度优先搜索方法或深度优先搜索方法达到欲更新节点(图中的顶点),不管是广度优先搜索方法还是深度优先搜索方法,都要使用递归算法,将返回函数地址压入堆栈中。在大数据局部数据更新应用(如信息推送、广告投放、市场营销等领域)中,很可能导致堆栈溢出,或者甚至根本不可能完成局部数据更新。
技术实现思路
本专利技术旨在提供一种图结构大数据局部扩散更新算法,通过将图结构大数据分解描述为大数据实体和实体间联系;采用分布式数据库HBase表存储实体标识和实体间联系;借助队列缓冲相邻实体,通过更新深度控制更新循环,以欲更新开始实体为中心更新相邻实体属性,以完成数据更新。本专利技术所述的局部为以欲更新开始实体为中心更新深度范围的所有实体。为实现上述目的,本专利技术采用的技术方案如下:本专利技术公开的图结构大数据局部扩散更新算法,包括以下步骤:步骤1.分解图结构大数据:将图结构大数据分解为大数据实体和实体间联系;步骤2.存储数据:通过应用分布式数据库HBase表存储大数据实体和实体间联系;步骤3.初始化参数:包括欲更新开始实体标识、欲更新数据及在更新列族中的列成员、更新深度和队列;设置当前更新深度为0,队列为空;步骤4.根据欲更新开始实体标识,搜索欲更新开始实体,将欲更新开始实体插入队列中;当前更新深度达到步骤3初始化的更新深度且队列为空时结束更新;步骤5.更新队首实体对应的HBase表中更新列族的列成员;当队首实体未访问过的相邻实体深度大于更新深度时转到步骤7;步骤6.向队列中添加队首实体的未访问过的相邻实体;步骤7.记录队首实体已被访问和队首实体的当前更新深度,删除队首实体元素;如果同一层相邻实体没有更新完,有以下两种处理方法,两种处理方法任选其一:第一种,判断当前更新深度大于步骤3初始化的更新深度且队列为空是否成立,成立结束更新,否则转到步骤5;第二种,转到步骤5;步骤8.当前更新深度加1;当当前更新深度大于步骤3初始化的更新深度且队列为空时结束更新,不成立则转到步骤5。进一步的,所述步骤1中采用实体属性反映实体间联系,运用实体标识区分不同大数据实体。进一步的,所述步骤1中将全局内能区分每个大数据实体的标识定义为实体标识,所述实体标识与大数据实体一一对应。进一步的,所述实体属性包括联系属性和更新属性,将欲更新的数据或数据域定义为更新属性,将实体间联系定义为联系属性,即用更新属性反映欲更新的数据或数据域,用联系属性反映实体间联系。进一步的,所述实体属性还包括其它属性,其它属性为联系属性、实体标识、更新属性以外的属性。此处的定义使转换关系或数据结构更为简洁,同时使更新属性和联系属性跟HBase表的列成员一致,属于过渡性术语。进一步的,所述步骤2中,所述实体标识转化为记录的行关键字;所述联系属性、更新属性和其它属性分别转化为HBase表的联系列族、更新列族和其它列族;所述欲更新数据或域存储在更新列族的相应列成员中。本专利技术公开的图结构大数据局部扩散更新算法具有以下特征:第一,采用分布式数据库HBase(HBigdataEntity表)存储图结构大数据实体和大数据实体间联系,理论上HBase数据库存储容量无限大,支持海量的图结构大数据的存储。第二,局部更新中的局部最大范围为给定图的子图,不同子图属于不同局部。局部更新的时间消耗主要在于图的遍历,遍历到欲更新开始实体局部内更新局部范围内所有实体。本专利技术的算法时间复杂度为O(N),N为以欲更新开始实体构成的子图实体(顶点)数量。如果在计算时间复杂度时将局部扩展到整个图而不是子图,这种情况不属于本专利技术范畴(是所有实体更新而不是局部更新)内。采用基于深度优先搜索和广度优先搜索算法的局部更新算法时间复杂度为O(N2),即更新局部为距离开始遍历顶点最远子图。本专利技术比基于深度优先搜索算法和广度优先搜索的局部更新算法更快。第三,基于深度优先搜索和广度优先搜索算法的局部更新算法,因为深度优先搜索或者广度优先搜索算法采用堆栈保存返回地址,在大数据环境下可能无法完成,存在风险。本专利技术是采用队列缓存实体标识等信息,队列最大长度为同层更新深度相邻实体最大数据量。本算法的空间复杂度也远小于基于深度优先搜索或者广度优先搜索算法的局部更新算法,并且可应用于大数据的局部更新。第四,本专利技术支持有向图和无向图局部数据更新。对于无向图,在HBigdataEntity表联系列族中分配列成员存储实体的相应相邻实体即可。对于有向图,在HBigdataEntity表联系列族中分配列成员存储实体弧头和弧尾两类列成员,弧头列成员存储指向该实体的联系;弧尾列成员存储指出的实体联系。由于HBase表具有很好的列成员扩展性,很容易动态插入和删除大数据实体间联系。第五,由于数据结构中的线性结构和树结构是图结构的特列,所以本发明也可以应用于大数据实体间联系为线性结构和树结构的领域的局部数据更新。与现有技术相比,本专利技术具有以下益效果:1.将图结构大数据转换为大数据实体和实体间联系,实体联系属性表达实体本文档来自技高网
...

【技术保护点】
图结构大数据局部扩散更新算法,其特征在于:包括以下步骤:步骤1.分解图结构大数据:将图结构大数据分解描述为大数据实体和实体间联系;步骤2.存储数据:通过应用分布式数据库HBase表存储大数据实体和实体间联系;步骤3.初始化参数:包括欲更新开始实体标识、欲更新数据及在更新列族中的列成员、更新深度和队列;当前更新深度为0,队列为空;步骤4.根据欲更新开始实体标识,搜索欲更新开始实体,将欲更新开始实体插入队列中;当当前更新深度大于步骤3初始化的更新深度且队列为空时结束更新;步骤5.更新队首实体对应的HBase表中更新列族中的列成员;当队首实体未访问过的相邻实体深度大于更新深度时,转到步骤7;步骤6.向队列中添加队首实体的未访问过的相邻实体;步骤7.记录队首实体已被访问和队首实体的当前更新深度,删除队首实体元素;如果同一层相邻实体没有更新完成有以下两种处理方法,两种处理方法。任选其一:第一种,判断当前更新深度大于步骤3初始化的更新深度且队列为空是否成立,成立结束更新,否则转到步骤5;第二种是转到步骤5;步骤8.当前更新深度加1;当当前更新深度大于步骤3初始化的更新深度且队列为空时结束更新,否则转到骤5。...

【技术特征摘要】
1.图结构大数据局部扩散更新算法,其特征在于:包括以下步骤:
步骤1.分解图结构大数据:将图结构大数据分解描述为大数据实体和实
体间联系;
步骤2.存储数据:通过应用分布式数据库HBase表存储大数据实体和实
体间联系;
步骤3.初始化参数:包括欲更新开始实体标识、欲更新数据及在更新列
族中的列成员、更新深度和队列;当前更新深度为0,队列为空;
步骤4.根据欲更新开始实体标识,搜索欲更新开始实体,将欲更新开始
实体插入队列中;
当当前更新深度大于步骤3初始化的更新深度且队列为空时结束更新;
步骤5.更新队首实体对应的HBase表中更新列族中的列成员;
当队首实体未访问过的相邻实体深度大于更新深度时,转到步骤7;
步骤6.向队列中添加队首实体的未访问过的相邻实体;
步骤7.记录队首实体已被访问和队首实体的当前更新深度,删除队首实
体元素;
如果同一层相邻实体没有更新完成有以下两种处理方法,两种处理方法。
任选其一:
第一种,判断当前更新深度大于步骤3初始化的更新深度且队列为空是
否成立,成立结束更新,否则转到步骤5;
第二种是转到步骤5;
步骤8.当前更新深度加1;

【专利技术属性】
技术研发人员:胡自权
申请(专利权)人:四川医科大学
类型:发明
国别省市:四川;51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1