掌桥专利:专业的专利平台
掌桥专利
首页

一种基于社区模型的图数据库的数据生成方法及装置

文献发布时间:2024-04-18 19:58:21


一种基于社区模型的图数据库的数据生成方法及装置

技术领域

本申请涉及图数据库技术领域,尤其是一种基于社区模型的图数据库的数据生成方法及装置。

背景技术

随着大数据和人工智能的飞速发展,目前兴起了很多可靠的、分布式的、可线性扩展的图数据库系统和图计算系统,图数据库系统和图计算系统广泛应用在实时推荐、金融风控、知识图谱、AI等领域,助力企业发掘数据背后的关联。而确认图数据库和图计算功能的准确性和性能的可靠性,需要使用一定的大规模数据集进行基准测试,而目前大多使用Twitter数据集、LDBC数据集、LiveJournal数据集等进行测试,但这些公开数据集可能没有垂直领域的独特的特性,无法体现在某一特定领域内的性能特性。所以针对图数据库系统和图计算系统生成一套具有业务领域特性的大规模数据集有一定的验证性意义。

发明内容

本申请的目的在于克服现有技术中公开数据集没有垂直领域的独特的特性,无法体现在某一特定领域内的性能特性的问题,提供一种基于社区模型的图数据库的数据生成方法及装置。

第一方面,提供了一种基于社区模型的图数据库的数据生成方法,包括:

根据点数据量要求,随机生成不重复的符合数据量要求的点数据;

通过对社区模型进行特征分析来获取社区特征;

根据社区模型和社区特征生成社区数据;

从所述社区数据中抽取边数据。

进一步的,根据点数据量要求,随机生成不重复的符合数据量要求的点数据,包括:

根据每种类别点数据量要求和并发度要求,确定每个并发线程中需要负责生成的数据量;

对每个点生成对应的属性数据,并对每条属性数据按照一定的基础数值按顺序递增,生成点的id值。

进一步的,通过对社区模型进行特征分析来获取社区特征,包括:

对给定的真实社区模型进行特征分析,统计社区内各类节点的数量和各类边的数量。

进一步的,根据社区模型和社区特征生成社区数据,包括:

遍历社区模型数据,将社区模型中的各类节点分别提取到Set集合,并针对不同类别的Set集合中的每一个点从随机生成的点数据中不放回的抽取一个点id形成一个Map映射集合,其中,Map映射集合中的键为社区模型中的点id,Map映射集合中的值为模拟生成的点id;

再次遍历社区模型数据,对每种类别的点进行模拟点数据的替换。

进一步的,从所述社区数据中抽取边数据,包括:

从已经生成的社区数据中根据业务抽取对应列数的数据去重后即得到对应类别的边数据。

进一步对,还包括:统计抽取的边数据量,并判断抽取的边数据量是否为各社区类别中各类边数量与各类社区数量的乘积之和;

响应于判断结果为是,则所述抽取的边数据量为准确的;

响应于判断结果为否,则所述抽取的边数据量为不准确的。

第二方面,提供了一种基于社区模型的图数据库的数据生成装置,包括:

第一生成模块,用于根据点数据量要求,随机生成不重复的符合数据量要求的点数据;

分析模块,用于通过对社区模型进行特征分析来获取社区特征;

第二生成模块,用于根据社区模型和社区特征生成社区数据;

抽取模块,用于从所述社区数据中抽取边数据。

进一步的,还包括校验模块,用于统计抽取的边数据量,并判断抽取的边数据量是否为各社区类别中各类边数量与各类社区数量的乘积之和;

响应于判断结果为是,则所述抽取的边数据量为准确的;

响应于判断结果为否,则所述抽取的边数据量为不准确的。

第三方面,提供了一种计算机可读存储介质,所述计算机可读介质存储用于设备执行的程序代码,该程序代码包括用于执行如第一方面中的任意一种实现方式中方法的步骤。

第四方面,提供了一种电子设备,所述电子设备包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第一方面中的任意一种实现方式中的方法。

本申请具有如下有益效果:本申请可以保证生成的图数据具有一定的社区真实性,符合一定的业务领域特性,在做功能和性能测试时可以针对该领域做验证,基于业务领域实际社区模型进行图数据生成,可以模拟真实性数据用于验证图数据库的查询能力和图计算的算法能力,并且在生成社区模型时,采用基础数值和节点映射的方式直接进行社区数据重生成,最大程度的保证数据社区特征的完备性。

附图说明

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

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请实施例1的基于社区模型的图数据库的数据生成方法的流程图;

图2是本申请实施例2的基于社区模型的图数据库的数据生成装置的结构框图;

图3是本申请实施例4的电子设备的内部结构示意图。

附图标记:

100、第一生成模块;200、分析模块;300、第二生成模块;400、抽取模块;500、校验模块。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

实施例1

本申请实施例1所涉及的一种基于社区模型的图数据库的数据生成方法,包括:根据点数据量要求,随机生成不重复的符合数据量要求的点数据;通过对社区模型进行特征分析来获取社区特征;根据社区模型和社区特征生成社区数据;从所述社区数据中抽取边数据,该方法可以保证生成的图数据具有一定的社区真实性,符合一定的业务领域特性,在做功能和性能测试时可以针对该领域做验证,基于业务领域实际社区模型进行图数据生成,可以模拟真实性数据用于验证图数据库的查询能力和图计算的算法能力,并且在生成社区模型时,采用基础数值和节点映射的方式直接进行社区数据重生成,最大程度的保证数据社区特征的完备性。

具体的,图1示出了申请实施例1中的基于社区模型的图数据库的数据生成方法的流程图,包括:

S100、根据点数据量要求,随机生成不重复的符合数据量要求的点数据;

具体的,首先根据没种类别点数据量要求和并发度要求,确定每个并发线程中需要负责生成的数据量,即通过数据总量除以并发度得到单并发内平均需要生成的数据量,由于数据总量不一定能被并发度整除,所以还需要让最后一个并发生的数据量增加上数据总量除以并发度得到的余数。比如数据总量为10条,并发度为3,则由两个线程负责生成3(10/3)条数据,一个线程负责生成4(10/3+10%3)条数据。对每个点生成对应的属性数据,然后对每条数据按照一定的基础数值(避免所有的点数据id都是从0开始)按顺序递增,生成点的id值。

S200、通过对社区模型进行特征分析来获取社区特征;

具体的,对给定的真实社区模型进行特征分析,统计社区内各类节点的数量,社区内节点数量用来从点数据集中抽取一定数量的点构造社区模型;统计社区内各类边的数量,该指标用来验证最终生成的边数据量的准确性,在步骤S400中所抽取的边数据的总量应该为各社区类别中各类边数量与各类社区数量的乘积之和。

S300、根据社区模型和社区特征生成社区数据;

具体的,读取社区模型数据,将模型中的各类节点分别提取到Set集合,并针对不同类别的Set集合中的每一个点从第一步生成的点数据中不放回的抽取一个点id形成一个Map映射集合。其中Map中的key为社区模型中的点id,value为模拟生成的点id。为了保证数据生成的性能,从点数据集中抽取点id是批量抽取的,而不是一个点一个点获取,首先确定该类别社区模型需要抽取的节点id的范围,比如类别A社区模型中有节点Person10个,一共需要生成5个A社区,生成社区数据时Person节点的基础数值为210,则针对A社区需要抽取的Person节点id范围为210-260(210+10*5)。而对于单个A社区,在构造Map集合中,获取value值的方法为社区编号*社区内该类节点总量 + 节点index,其中节点index在每个社区内都是从0开始的,逐渐递增到社区内节点数量减1。对于上述例子而言,抽取新节点id的方式如下:

**

* @param set 社区中某类节点的id集合

* @param valueMap 要构造的社区中某类节点老的id 与 新生成的节点id的映射

* @param basicNum 节点id 的基础数据值

* @param nodeSizeInComm 在社区内某类节点的数量

* @param communityId 同类别社区编号

*/

def getMapForNewValue(set: mutable.HashSet[String],

valueMap: mutable.HashMap[String, String],

basicNum: Int,

nodeSizeInComm: Int,

communityId: Int) {

var index = 0

for (oldValue<- set) {

valueMap += ((oldValue, (basicNum + (nodeSizeInComm * communityId)+ index).toString))

index += 1

}

}

针对上面提到的基础数值,需要注意的是在生成社区数据程序中会设定一个最初始的基础数值,该数值一定要保证和第一步生成节点数据时设定的基础数值保持一致,这样才能保证社区数据使用的节点是在第一步生成的节点数据范围内的,若基础数值比第一步的值小,则生成社区时会用到一部分不存在的id较小的节点,若基础数值比第一步的值大,则生成社区时会用到一部分不存在的id较大的节点,这两种情况都会超过节点id的实际范围。

然后再次遍历社区模型数据,对每种类别的点进行模拟点数据的替换,即从Map集合中找到社区模型数据中老的点数据对应的新的模拟点id,用新的模拟点id值去替换老的点id。

S400、从所述社区数据中抽取边数据。

具体的,从已经生成的社区数据中根据业务抽取对应列数的数据去重后即得到对应类别的边数据;对边数据做统计与步骤S200得到的社区中边数据特征进行校验,以确认生成的边数据量的准确性,具体为:统计抽取的边数据量,并判断抽取的边数据量是否为各社区类别中各类边数量与各类社区数量的乘积之和;响应于判断结果为是,则所述抽取的边数据量为准确的;响应于判断结果为否,则所述抽取的边数据量为不准确的。

该实施例提供了一种针对图数据库系统和图计算系统的基于社区模型的数据导入方式,该技术通过模拟真实社区模型生成针对垂直领域的用于验证图数据库和图计算的大规模图数据。该方法主要包括生成图数据的点数据、生成社区数据、根据社区数据生成边数据。通过该方法可以保证生成的图数据具有一定的社区真实性,符合一定的业务领域特性,在做功能和性能测试时可以针对该领域做验证。

实施例2

如图2所示,本申请实施例2所涉及的一种基于社区模型的图数据库的数据生成装置,包括:

第一生成模块100,用于根据点数据量要求,随机生成不重复的符合数据量要求的点数据;

分析模块200,用于通过对社区模型进行特征分析来获取社区特征;

第二生成模块300,用于根据社区模型和社区特征生成社区数据;

抽取模块400,用于从所述社区数据中抽取边数据。

在进一步的实施例中,还包括校验模块500,用于统计抽取的边数据量,并判断抽取的边数据量是否为各社区类别中各类边数量与各类社区数量的乘积之和;

响应于判断结果为是,则所述抽取的边数据量为准确的;

响应于判断结果为否,则所述抽取的边数据量为不准确的。

需要说明的是,本发明实施例中基于社区模型的图数据库的数据生成装置的其他具体实施方式,可参见上述基于社区模型的图数据库的数据生成方法的具体实施方式,为避免冗余,此处不再赘述。

实施例3

本申请实施例3所涉及的一种计算机可读存储介质,所述计算机可读介质存储用于设备执行的程序代码,该程序代码包括用于执行如本申请实施例1中的任意一种实现方式中方法的步骤;

其中,计算机可读存储介质可以是只读存储器(read only memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(random access memory,RAM);计算机可读存储介质可以存储程序代码,当计算机可读存储介质中存储的程序被处理器执行时,处理器用于执行如本申请实施例1中的任意一种实现方式中方法的步骤。

实施例4

如图3所示,本申请实施例4所涉及的一种电子设备,所述电子设备包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如本申请实施例1中的任意一种实现方式中的方法;

其中,处理器可以采用通用的中央处理器(central processing unit,CPU),微处理器,应用专用集成电路(application specific integrated circuit,ASIC),图形处理器(graphics processing unit,GPU)或者一个或多个集成电路,用于执行相关程序,以实现本申请实施例1中的任意一种实现方式中的方法。

处理器还可以是一种集成电路电子设备,具有信号的处理能力。在实现过程中,本申请实施例1中的任意一种实现方式中方法的各个步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。

上述处理器还可以是通用处理器、数字信号处理器、专用集成电路(ASIC)、现成可编程门阵列(field programmable gatearray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成本申请实施例的数据处理的装置中包括的单元所需执行的功能,或者执行本申请实施例1中的任意一种实现方式中方法。

以上,仅为本申请较佳的具体实施方式;但本申请的保护范围并不局限于此。任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,根据本申请的技术方案及其改进构思加以等同替换或改变,都应涵盖在本申请的保护范围内。

相关技术
  • 一种基于ID缓存技术的图数据库加速装置和方法
  • 基于外存的图数据库结构、图数据存储方法、装置
  • 一种基于NiFi的数据写入图数据库的系统及方法
  • 一种口语测评方法、装置及一种生成口语测评模型的装置
  • 一种基于图数据库生成实验环境的方法、装置及电子设备
  • 一种基于图数据库的网络拓扑图生成方法、装置和系统
技术分类

06120116482991