一种基于MapReduce的图数据删除方法及系统【掌桥专利】

您所在的位置:网站首页 hbase删除数据的几种方式 一种基于MapReduce的图数据删除方法及系统【掌桥专利】

一种基于MapReduce的图数据删除方法及系统【掌桥专利】

2023-03-26 03:28| 来源: 网络整理| 查看: 265

技术领域

本发明涉及大数据技术领域。更具体的说,本发明涉及一种基于MapReduce的图数据删除方法及系统。

背景技术

知识图谱被用于描述事物之间的关联,一种知识图谱的具体描述方式包括定义图谱中的实体(即图中的点)、关系(即图中的边)和实体/关系相关的属性(即属性图),其描述定义离不开对图数据库的使用,目前的普遍做法是将真实的实体关系原始数据导入到图数据库中,再通过图数据库的接口实现知识图谱的构建。

JanusGraph是一个高度可扩展的分布式图数据库,MapReduce是一种基于并行计算来处理大规模数据集的编程模型,HBase是一个分布式的、面向列的开源数据库存储系统。HBase提供了一种方法可以使用MapReduce读取HFile并创建Job,所述方法为:TableMapReduceUtil.initTableSnapshotMapperJob,该方法的输入是SnapshotName、Scan、Mapper等。

当出现一些不需要在知识图谱中展示的实体关系数据(即脏数据)时,就需要对图数据库中的数据进行清理,目前清理方法普遍有两种:利用原始数据调用相应的第三方图数据库接口进行删除;利用基于图数据库计算框架tinkerpop开发的gremlin console进行删除。然而以上两种方法都是单线程的,需要有原始真实数据的存在,且数据先从底层存储返回给图数据库端,再从图数据库返回客户端,存在网络开销,所以都只适用于小批量数据的统计,而且效率不高。

发明内容

本申请实施例提供了一种基于MapReduce删除图数据的方法,以至少解决相关技术中主观因素影响的问题。

本发明提供了一种基于MapReduce的图数据删除方法,所述方法包括以下步骤:

判断步骤:判断点上存储的Label信息与待删除VertexLabel是否相等,确定待删除点;

索引删除步骤:删除所述待删除点的索引;

对端点删除步骤:删除所述待删除点的对端点上的边信息;

点删除步骤:使用HBase delete Rowkey删除所述待删除点。

作为本发明的进一步改进,所述判断步骤具体包括以下步骤:

给定步骤:给定所述待删除VertexLabel;

VertexLabelId获取步骤:通过所述待删除VertexLabel得出该Label存储的索引Rowkey,进而得到待删除VertexLabelId;

第一遍历步骤:依次遍历点的Cell信息;

ID判断步骤:判断点上存储的Label ID与所述待删除VertexLabelId是否相等,查找出相等的点为所述待删除点。

作为本发明的进一步改进,所述索引删除步骤具体包括以下步骤:

第二遍历步骤:依次遍历所述点的Cell信息;

查找步骤:查找存储属性信息的Cell,其key为属性ID,value为属性值;

属性ID判断步骤:判断所述属性ID与属性Key的ID是否相等,若相等则取出所述value的值,即为所述属性Key的属性值;

删除步骤:基于所述属性Key的属性值获取索引的Rowkey,通过Hbase delete删除。

作为本发明的进一步改进,所述对端点删除步骤具体包括以下步骤:

Rowkey获取步骤:根据所述点的Cell信息获取对端点的Rowkey;

Cell确定步骤:确定所述对端点的Rowkey数据中待删除Cell;

边信息删除步骤:得到所述对端点的Rowkey和所述待删除Cell后,结合HBase的ColumnPrefixFilter对边信息进行删除。

作为本发明的进一步改进,所述待删除Cell根据EdgeLabel、边方向和所述待删除点的Vertex ID确定。

作为本发明的进一步改进,所述点删除步骤中对超点进行处理时,设置标志位区分。

作为本发明的进一步改进,还包括边删除步骤,所述边删除步骤具体包括以下步骤:

排序步骤:按边Label排序,然后同一Label按方向排序;

边界确定步骤:由所述边Label得到所述Label ID,根据所述Label ID确定所述边Label在点上的边界;

结合删除步骤:确定了边界后,结合HBase的ColumnRangeFilter对边进行删除。

基于相同发明思想,本发明还基于任一项发明创造所揭示的基于MapReduce的图数据删除方法,揭示了一种基于MapReduce的图数据删除系统,

所述基于MapReduce的图数据删除系统包括:

判断模块,判断点上存储的Label信息与待删除VertexLabel是否相等,确定待删除点;

索引删除模块,删除所述待删除点的索引;

对端点删除模块,删除所述待删除点的对端点上的边信息;

点删除模块,使用HBase delete Rowkey删除所述待删除点。

作为本发明的进一步改进,所述判断模块具体包括:

给定单元,给定所述待删除VertexLabel;

VertexLabelId获取单元,通过所述待删除VertexLabel得出该Label存储的索引Rowkey,进而得到待删除VertexLabelId;

第一遍历单元,依次遍历点的Cell信息;

ID判断单元,判断点上存储的Label ID与所述待删除VertexLabelId是否相等,查找出相等的点为所述待删除点。

作为本发明的进一步改进,所述索引删除模块具体包括:

第二遍历单元,依次遍历所述点的Cell信息;

查找单元,查找存储属性信息的Cell,其key为属性ID,value为属性值;

属性ID判断单元,判断所述属性ID与属性Key的ID是否相等,若相等则取出所述value的值,即为所述属性Key的属性值;

删除单元,基于所述属性Key的属性值获取索引的Rowkey,通过Hbase delete删除。

与现有技术相比,本发明的有益效果如下:

1、提出了一种基于MapReduce的图数据删除方法,使用MapReduce的mapper方法对数据进行处理,将HBase表的一行数据作为map函数的输入,这行数据包含若干个Cell,通过遍历这些Cell按步骤进行点和边的删除;

2、使用MapReduce直接读取HFile来操作数据,为HBase表创建一个快照,一方面直接读取HFile可以绕过RegionServer,减少网络开销,另一方面在删除前为表创建快照,可以在数据误删的情况对原始数据进行快速恢复;

3、能够在原始数据缺失的情况下,对图谱数据进行快速高效的删除,充分利用集群资源,同时将对数据的操作层面由图数据库JanusGraph API层面下推到底层存储HBase层面,达到了在没有原始数据的情况下直接操作底层存储数据库HBase来进行数据的删除;

4、在HBase层面,为原始HBase表建立Snapshot,使用MapReduce直接访问HFile,提高数据处理效率。

本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1是本发明实施例提供的一种基于MapReduce的图数据删除方法整体流程图;

图2是本实施例所揭示的点删除整体流程图;

图3是图1所揭示的步骤S1整体流程图;

图4是图1所揭示的步骤S2整体流程图;

图5是图1所揭示的步骤S3整体流程图;

图6是本实施例提供的边删除步骤S5整体流程图;

图7是本实施例提供的一种基于MapReduce的图数据删除系统结构框架图;

图8是根据本发明实施例的计算机设备的框架图。

以上图中:

10、判断模块;20、索引删除模块;30、对端点删除模块;40、点删除模块;50、边删除模块;11、给定单元;12、VertexLabelId获取单元;13、第一遍历单元;14、ID判断单元;21、第二遍历单元;22、查找单元;23、属性ID判断单元;24、删除单元;31、Rowkey获取单元;32、Cell确定单元;33、边信息删除单元;51、排序单元;52、边界确定单元;53、结合删除单元;80、总线;81、处理器;82、存储器;83、通信接口。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。

显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。

在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。

除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不待表针对对象的特定排序。

下面结合附图所示的各实施方式对本发明进行详细说明,但应当说明的是,这些实施方式并非对本发明的限制,本领域普通技术人员根据这些实施方式所作的功能、方法、或者结构上的等效变换或替待,均属于本发明的保护范围之内。

在详细阐述本发明各个实施例之前,对本发明的核心发明思想予以概述,并通过下述若干实施例予以详细阐述。

本发明可基于MapReduce实现图数据删除,在原始数据缺失的情况下,对图谱数据进行快速高效的删除。

实施例一:

参照图1至图6所示,本实例揭示了一种基于MapReduce的图数据删除方法(以下简称“方法”)的具体实施方式。

具体而言,在对HBase进行数据操作时,需要先了解JanusGraph在HBase中的数据存储结构。在JanusGraph中,是点为中心按切边的方式存储数据的,节点的ID作为HBase的Rowkey,节点上的每一个属性和每一条边,作为该Rowkey的一个个独立的Cell,即每一个属性、每一条边都是一个个独立的KCV结构(Key-Column-Value)。JanusGraph将图中的每一个元素定义为RelationType,并为其分配一个id,包括是否存在标志点(VertexExists),点Label点(VertexLabel),以及属性点,边Label点(EdgeLabel)等。JanusGraph为每个点分配一个ID,称为RelationTypeId。JanusGraph还定义了三种方向:PROPERTY_DIR、EDGE_OUT_DIR、EDGE_IN_DIR,分别取值00、10、11。

具体而言,在JanusGraph中不止有用户定义的点,诸如VertexLabel、EdgeLabel、PropertyKey、GraphIndex,还有一些JanusGraph内部创建的点,比如VertexExists(标志点)用来标志用户定义的点是否存在,这些点在HBase中都是以一行Rowkey(HBase中的设计方案)数据存在,如表1是点在HBase中的存储格式:

表1

具体而言,属性和边在HBase点Rowkey中的存储格式如表2所示:

表2

具体而言,表1和表2清晰陈列了JanusGraph各元素在HBase中的存储格式,下面结合HBase中的真实数据做更详细的说明。值为person的Vertex Label在HBase中的数据格式为:

[\x03y\xA5\x10\xA5\xA0rt%perso\xEE column=g:\x00,

timestamp=1597982666030001,value=\x0C`\x95

具体而言,在其中一些实施例中,例如为Key建立Graph Index,其属性值为A023010419830711111,则在HBase中的数据格式为:

\xFE\xBB\xC2\xAD\x03D\x89\xA023010419830711111\column=g:\x00,

timestamp=1597982824874001,value=\x01\x02\xB0

具体而言,例如VertexLabel为person的一个点数据格式如下:

其中第一行和第二行为VertexExists,第三行和第四行是Label信息,其值为Vertex Label ID,第五行和第六行为点的属性信息,第七行为点的边信息。

具体而言,参照图1和图2所示,本实施例所揭示的方法主要包括以下步骤:

步骤S1、判断点上存储的Label信息与待删除VertexLabel是否相等,确定待删除点。

具体而言,在其中一些实施例中,参照图3所示步骤S1具体包括以下步骤:

S11、给定所述待删除VertexLabel;

S12、通过所述待删除VertexLabel得出该Label存储的索引Rowkey,进而得到待删除VertexLabelId;

S13、依次遍历点的Cell信息;

S14、判断点上存储的Label ID与所述待删除VertexLabelId是否相等,查找出相等的点为所述待删除点。

具体而言,在其中一些实施例中,删除点是基于VertexLabel(点Label点)完成的,也就是说删除的是一类点,所以在对从HBase中查询出来的点数据进行遍历删除时,需要先判断点上存储的Label信息与指定的待删除VertexLabel是否相等。

具体而言,如上存储结构所示,在索引中存储了VertexLabel的信息,以VertexLabel值组成Rowkey,其中有一个Cell,value为VertexLabelId,在点的Rowkey数据中,存储Label的Cell其value是VertexLabelId。由以上可以通过给定的待删除点Label的确定值,得出该Label存储的索引Rowkey,进而得到VertexLabelId,通过遍历点的Cell信息,判断点上存储的Label ID与给定的Label ID是否相等,若相等则证明该点属于待删除点,进而继续下面的删除操作。

然后执行步骤S2、删除所述待删除点的索引。

具体而言,在其中一些实施例中,参照图4所示步骤S2具体包括以下步骤:

S21、依次遍历所述点的Cell信息;

S22、查找存储属性信息的Cell,其key为属性ID,value为属性值;

S23、判断所述属性ID与属性Key的ID是否相等,若相等则取出所述value的值,即为所述属性Key的属性值;

S24、基于所述属性Key的属性值获取索引的Rowkey,通过Hbase delete删除。

具体而言,在删除点之前,要先将点上的索引删除,否则会出现图数据主体已被删除但索引未更新的情况,此时根据索引属性还是能查到数据,但是一个空点,没有任何属性,而且无法删掉,也无法导入相同的数据,视为脏数据,所以要先删除索引。

具体而言,数据导入时只在属性Key上建了索引,由以上存储结构阐述,每一个属性都有索引信息,其Rowkey由属性字段组成,该Rowkey只有一个Cell,其value是属性ID,因此由属性Key可以得到其属性ID。在依次遍历点的Cell信息时,如果该Cell存储的是属性信息,则其key为属性ID,value为属性值,若该ID与属性Key的ID相等,则取出这个Cell的value值,即为属性Key的属性值。Key索引的Rowkey是由其属性值组成的,由此得到索引的Rowkey,通过Hbase delete删掉即可。

然后执行步骤S3、删除所述待删除点的对端点上的边信息。

具体而言,在其中一些实施例中,参照图5所示步骤S3具体包括以下步骤:

S31、根据所述点的Cell信息获取对端点的Rowkey;

S32、确定所述对端点的Rowkey数据中待删除Cell;

S33、得到所述对端点的Rowkey和所述待删除Cell后,结合HBase的ColumnPrefixFilter对边信息进行删除。

具体而言,在JanusGraph中是按边作为切割来存储数据的,边的信息存储在点上,一条边的信息会存储在两个点上,因此在删除一条边的其中一个点时,点上的边信息已被删除,那么对端点上的边信息也需要删除。

具体而言,首先需要先根据点的Cell信息获取对端点的Rowkey,如上存储结构阐述,边在点上存储的Cell的key由以下组成:边的Label ID、边的方向、对端点的Vertex ID、边的ID,因此可以通过序列化读取以上key信息,将对端点的Vertex ID获取到,这就可以得到对端点的Rowkey。

具体而言,得到对端点的Rowkey后,还需要确定对端点Rowkey数据中待删除的Cell,根据EdgeLabel、边方向和待删除点的Vertex ID可以确定。假设点V1和点V2之间存在边R,方向为V1指向V2,则边R在点V1上存储的Cellkey为:R_Label+Dir_OUT+V2_ID,在点V2上存储的Cell key为:R_Label+Dir_IN+V1_ID。得到对端边的Rowkey和待删除Cell后,结合HBase的ColumnPrefixFilter对边信息进行删除。

然后执行步骤S4、使用HBase delete Rowkey删除所述待删除点。

具体而言,下面直接使用HBase delete Rowkey删除点即可。其中涉及到对超点的处理,当一个点上的边数量很多时,就称其为超点,这种点在HBase中存储时有可能会跨Region,以两条Rowkey相同的数据输入到MapReduce的map函数中。对于这种点的处理需要通过设置标志位来区分,在遍历点数据时,判断其Rowkey与上一个点的Rowkey是否相等,若不相等则将点删除,否则为同一个点,继续进行上述的删除操作。

具体而言,如图6所示,所述方法还包括S5、边删除步骤,边删除步骤具体包括以下步骤:

S51、按边Label排序,然后同一Label按方向排序;

S52、由所述边Label得到所述Label ID,根据所述Label ID确定所述边Label在点上的边界;

S53、确定了边界后,结合HBase的ColumnRangeFilter对边进行删除。

具体而言,在HBase中,结合边信息在点Rowkey中的存储结构,可知边是按顺序存储的,首先按边Label排序,然后同一Label按方向排序,由存储结构中阐述可知方向为OUT的边在IN之前。所以在删除指定边Label的一类边数据时,只需要由边Label得到Label ID,根据ID确定边Label在点上的边界,再结合HBase的ColumnRangeFilter将数据取出来,依次删除即可。

通过本申请实施例所揭示的一种基于MapReduce的图数据删除方法,使用MapReduce的mapper方法对数据进行处理,将HBase表的一行数据作为map函数的输入,这行数据包含若干个Cell,通过遍历这些Cell按步骤进行点和边的删除;使用MapReduce直接读取HFile来操作数据,为HBase表创建一个快照,一方面直接读取HFile可以绕过RegionServer,减少网络开销,另一方面在删除前为表创建快照,可以在数据误删的情况对原始数据进行快速恢复;能够在原始数据缺失的情况下,对图谱数据进行快速高效的删除,充分利用集群资源,同时将对数据的操作层面由图数据库JanusGraphAPI层面下推到底层存储HBase层面,达到了在没有原始数据的情况下直接操作底层存储数据库HBase来进行数据的删除;在HBase层面,为原始HBase表建立Snapshot,使用MapReduce直接访问HFile,提高数据处理效率。

本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。

实施例二:

结合实施例一所揭示的一种基于MapReduce的图数据删除方法,本实施例揭示了一种基于MapReduce的图数据删除系统(以下简称“系统”)的具体实施示例。

参照图7所示,所述系统包括:

判断模块10,判断点上存储的Label信息与待删除VertexLabel是否相等,确定待删除点;

索引删除模块20,删除所述待删除点的索引;

对端点删除模块30,删除所述待删除点的对端点上的边信息;

点删除模块40,使用HBase delete Rowkey删除所述待删除点。

具体而言,在其中一些实施例中,所述判断模块10具体包括:

给定单元11,给定所述待删除VertexLabel;

VertexLabelId获取单元12,通过所述待删除VertexLabel得出该Label存储的索引Rowkey,进而得到待删除VertexLabelId;

第一遍历单元13,依次遍历点的Cell信息;

ID判断单元14,判断点上存储的Label ID与所述待删除VertexLabelId是否相等,查找出相等的点为所述待删除点。

具体而言,在其中一些实施例中,所述索引删除模块20具体包括:

第二遍历单元21,依次遍历所述点的Cell信息;

查找单元22,查找存储属性信息的Cell,其key为属性ID,value为属性值;

属性ID判断单元23,判断所述属性ID与属性Key的ID是否相等,若相等则取出所述value的值,即为所述属性Key的属性值;

删除单元24,基于所述属性Key的属性值获取索引的Rowkey,通过Hbasedelete删除。

具体而言,在其中一些实施例中,对端点删除模块30具体包括:

Rowkey获取单元31,根据所述点的Cell信息获取对端点的Rowkey;

Cell确定单元32,确定所述对端点的Rowkey数据中待删除Cell;

边信息删除单元33,得到所述对端点的Rowkey和所述待删除Cell后,结合HBase的ColumnPrefixFilter对边信息进行删除。

具体而言,在其中一些实施例中,还包括边删除模块50,所述边删除模块50具体包括:

排序单元51,按边Label排序,然后同一Label按方向排序;

边界确定单元52,由所述边Label得到所述Label ID,根据所述Label ID确定所述边Label在点上的边界;

结合删除单元53,确定了边界后,结合HBase的ColumnRangeFilter对边进行删除。

本实施例所揭示的一种基于MapReduce的图数据删除的系统与实施例一所揭示的一种基于MapReduce的图数据删除方法中其余相同部分的技术方案,请参考实施例一所述,在此不再赘述。

实施例三:

结合图8所示,本实施例揭示了一种计算机设备的一种具体实施方式。计算机设备可以包括处理器81以及存储有计算机程序指令的存储器82。

具体地,上述处理器81可以包括中央处理器(CPU),或者特定集成电路(Application Specific Integrated Circuit,简称为ASIC),或者可以被配置成实施本申请实施例的一个或多个集成电路。

其中,存储器82可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器82可包括硬盘驱动器(Hard Disk Drive,简称为HDD)、软盘驱动器、固态驱动器(SolidState Drive,简称为SSD)、闪存、光盘、磁光盘、磁带或通用串行总线(Universal SerialBus,简称为USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器82可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器82可在数据处理装置的内部或外部。在特定实施例中,存储器82是非易失性(Non-Volatile)存储器。在特定实施例中,存储器82包括只读存储器(Read-Only Memory,简称为ROM)和随机存取存储器(RandomAccess Memory,简称为RAM)。在合适的情况下,该ROM可以是掩模编程的ROM、可编程ROM(Programmable Read-Only Memory,简称为PROM)、可擦除PROM(Erasable ProgrammableRead-Only Memory,简称为EPROM)、电可擦除PROM(Electrically Erasable ProgrammableRead-Only Memory,简称为EEPROM)、电可改写ROM(Electrically Alterable Read-OnlyMemory,简称为EAROM)或闪存(FLASH)或者两个或更多个以上这些的组合。在合适的情况下,该RAM可以是静态随机存取存储器(Static Random-Access Memory,简称为SRAM)或动态随机存取存储器(Dynamic Random Access Memory,简称为DRAM),其中,DRAM可以是快速页模式动态随机存取存储器(Fast Page Mode Dynamic Random Access Memory,简称为FPMDRAM)、扩展数据输出动态随机存取存储器(Extended Date Out Dynamic RandomAccess Memory,简称为EDODRAM)、同步动态随机存取内存(Synchronous Dynamic Random-Access Memory,简称SDRAM)等。

存储器82可以用来存储或者缓存需要处理和/或通信使用的各种数据文件,以及处理器81所执行的可能的计算机程序指令。

处理器81通过读取并执行存储器82中存储的计算机程序指令,以实现上述实施例中的任意一种基于MapReduce的图数据删除方法。

在其中一些实施例中,计算机设备还可包括通信接口83和总线80。其中,如图8所示,处理器81、存储器82、通信接口83通过总线80连接并完成相互间的通信。

通信接口83用于实现本申请实施例中各模块、装置、单元和/或设备之间的通信。通信端口83还可以实现与其他部件例如:外接设备、图像/数据采集设备、数据库、外部存储以及图像/数据处理工作站等之间进行数据通信。

总线80包括硬件、软件或两者,将计算机设备的部件彼此耦接在一起。总线80包括但不限于以下至少之一:数据总线(Data Bus)、地址总线(Address Bus)、控制总线(Control Bus)、扩展总线(Expansion Bus)、局部总线(LocalBus)。举例来说而非限制,总线80可包括图形加速接口(Accelerated Graphics Port,简称为AGP)或其他图形总线、增强工业标准架构(Extended Industry Standard Architecture,简称为EISA)总线、前端总线(Front Side Bus,简称为FSB)、超传输(Hyper Transport,简称为HT)互连、工业标准架构(Industry Standard Architecture,简称为ISA)总线、无线带宽(InfiniBand)互连、低引脚数(Low Pin Count,简称为LPC)总线、存储器总线、微信道架构(Micro ChannelArchitecture,简称为MCA)总线、外围组件互连(Peripheral Component Interconnect,简称为PCI)总线、PCI-Express(PCI-X)总线、串行高级技术附件(Serial AdvancedTechnology Attachment,简称为SATA)总线、视频电子标准协会局部(Video ElectronicsStandards Association Local Bus,简称为VLB)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线80可包括一个或多个总线。尽管本申请实施例描述和示出了特定的总线,但本申请考虑任何合适的总线或互连。

该计算机设备可以基于MapReduce实现图数据删除,从而实现结合图1描述的方法。

另外,结合上述实施例中基于MapReduce的图数据删除方法,本申请实施例可提供一种计算机可读存储介质来实现。该计算机可读存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种基于MapReduce的图数据删除方法。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

综上所述,基于本发明的有益效果在于,提出了一种基于MapReduce的图数据删除方法,使用MapReduce的mapper方法对数据进行处理,将HBase表的一行数据作为map函数的输入,这行数据包含若干个Cell,通过遍历这些Cell按步骤进行点和边的删除;使用MapReduce直接读取HFile来操作数据,为HBase表创建一个快照,一方面直接读取HFile可以绕过RegionServer,减少网络开销,另一方面在删除前为表创建快照,可以在数据误删的情况对原始数据进行快速恢复;能够在原始数据缺失的情况下,对图谱数据进行快速高效的删除,充分利用集群资源,同时将对数据的操作层面由图数据库JanusGraphAPI层面下推到底层存储HBase层面,达到了在没有原始数据的情况下直接操作底层存储数据库HBase来进行数据的删除;在HBase层面,为原始HBase表建立Snapshot,使用MapReduce直接访问HFile,提高数据处理效率。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3