本申请涉及图数据存储,具体涉及一种基于janusgraph的图数据存储方法、装置、设备及存储介质。
背景技术:
1、大规模分布式图列式数据库是为处理大规模图数据集而设计的系统,目前市面上主流的大规模分布式图列式数据库有janusgraph、tigergraph等。janusgraph的分布式架构和支持属性图模型的特性,使其适用于各种应用领域。比如,社交网络分析,网络安全分析,智能交通系统等。虽然,janusgraph 在处理复杂关系和大规模图数据的场景中表现出色。
2、然而,在处理超大数据集的时候也面临一些挑战,特别是在涉及到频繁的写入操作的时候。janusgraph的设计需要将数据在列式数据库中存储一份,在搜索引擎中也存储一份。这种设计在带来高效查询性能的同时,也会导致数据冗余,因为相同的数据在列式数据库和搜索引擎中都有一份。而且在写入时,需要确保数据在列式数据库和搜索引擎中的一致性,会增加写入的复杂性和写入性能开销。因此,在需要做大规模数据集的janusgraph图数据库写入操作的时候,会存在写入性能低的问题。
技术实现思路
1、本申请提供一种基于janusgraph的图数据存储方法、装置、设备及存储介质,可以解决现有技术中存在的janusgraph数据写入性能低的技术问题。
2、第一方面,本申请实施例提供一种基于janusgraph的图数据存储方法,所述基于janusgraph的图数据存储方法包括:
3、抽取源数据并将源数据转换为必要图数据和全量图数据,其中,必要图数据包含图数据模型在业务场景下的必要属性信息,全量图数据包含图数据模型的全量属性信息;
4、通过janusgraph将必要图数据写入列式数据库,其中,列式数据库的数据结构根据图数据模型的必要属性定义;
5、通过janusgraph将全量图数据写入搜索引擎,其中,搜索引擎的数据结构根据图数据模型的全量属性定义。
6、进一步地,一实施例中,在所述抽取源数据并将源数据转换为必要图数据和全量图数据的步骤之前还包括:
7、基于用户操作定义图数据模型,生成图数据模型的元数据,其中,图数据模型对业务场景下的必要属性进行标识;
8、通过janusgraph根据图数据模型的元数据对列式数据库和搜索引擎的数据结构进行定义,其中,janusgraph针对每个属性均会操作搜索引擎,针对有标识的必要属性还会操作列式数据库。
9、进一步地,一实施例中,所述将源数据转换为必要图数据和全量图数据的步骤包括:
10、根据图数据模型的元数据将源数据转换为格式化数据,其中,格式化数据包含图数据模型的全量属性信息以及属性标识信息;
11、解析格式化数据,得到必要图数据和全量图数据,其中,针对每个属性均会将属性信息加入全量图数据,针对有标识的必要属性还会将属性信息加入必要图数据。
12、进一步地,一实施例中,在所述抽取源数据并将源数据转换为必要图数据和全量图数据的步骤之前还包括:
13、根据源数据库的连接信息连接源数据库。
14、进一步地,一实施例中,所述将源数据转换为必要图数据和全量图数据的步骤包括:
15、根据列式数据库的元数据将源数据转换为必要图数据;
16、根据搜索引擎的元数据将源数据转换为全量图数据。
17、进一步地,一实施例中,在所述抽取源数据并将源数据转换为必要图数据和全量图数据的步骤之前还包括:
18、根据源数据库的连接信息连接源数据库;
19、获取列式数据库的元数据和搜索引擎的元数据。
20、进一步地,一实施例中,列式数据库为hbase和cassandra中的一种,搜索引擎为elasticsearch、solr和lucene中的一种。
21、第二方面,本申请实施例还提供一种基于janusgraph的图数据存储装置,所述基于janusgraph的图数据存储装置包括:
22、数据准备模块,用于抽取源数据并将源数据转换为必要图数据和全量图数据,其中,必要图数据包含图数据模型在业务场景下的必要属性信息,全量图数据包含图数据模型的全量属性信息;
23、第一写入模块,用于通过janusgraph将必要图数据写入列式数据库,其中,列式数据库的数据结构根据图数据模型的必要属性定义;
24、第二写入模块,用于通过janusgraph将全量图数据写入搜索引擎,其中,搜索引擎的数据结构根据图数据模型的全量属性定义。
25、第三方面,本申请实施例还提供一种基于janusgraph的图数据存储设备,所述基于janusgraph的图数据存储设备包括处理器、存储器、以及存储在所述存储器上并可被所述处理器执行的基于janusgraph的图数据存储程序,其中所述基于janusgraph的图数据存储程序被所述处理器执行时,实现上述基于janusgraph的图数据存储方法的步骤。
26、第四方面,本申请实施例还提供一种存储介质,所述存储介质上存储有基于janusgraph的图数据存储程序,其中所述基于janusgraph的图数据存储程序被处理器执行时,实现上述基于janusgraph的图数据存储方法的步骤。
27、本申请中,根据业务场景的使用需求在图数据模型中区分必要属性和非必要属性,根据图数据模型的必要属性定义列式数据库的数据结构,根据图数据模型的全量属性定义搜索引擎的数据结构,将抽取的源数据转化为必要图数据和全量图数据后,通过janusgraph将必要图数据写入列式数据库,将全量图数据写入搜索引擎。通过本申请,在不影响业务正常运作的前提下,减少了数据冗余,并且降低了janusgraph的写入的复杂性和写入性能开销,从而提高janusgraph的数据写入性能。
1.一种基于janusgraph的图数据存储方法,其特征在于,所述基于janusgraph的图数据存储方法包括:
2.如权利要求1所述的基于janusgraph的图数据存储方法,其特征在于,在所述抽取源数据并将源数据转换为必要图数据和全量图数据的步骤之前还包括:
3.如权利要求2所述的基于janusgraph的图数据存储方法,其特征在于,所述将源数据转换为必要图数据和全量图数据的步骤包括:
4.如权利要求3所述的基于janusgraph的图数据存储方法,其特征在于,在所述抽取源数据并将源数据转换为必要图数据和全量图数据的步骤之前还包括:
5.如权利要求1所述的基于janusgraph的图数据存储方法,其特征在于,所述将源数据转换为必要图数据和全量图数据的步骤包括:
6.如权利要求5所述的基于janusgraph的图数据存储方法,其特征在于,在所述抽取源数据并将源数据转换为必要图数据和全量图数据的步骤之前还包括:
7.如权利要求1至6中任一项所述的基于janusgraph的图数据存储方法,其特征在于,列式数据库为hbase和cassandra中的一种,搜索引擎为elasticsearch、solr和lucene中的一种。
8.一种基于janusgraph的图数据存储装置,其特征在于,所述基于janusgraph的图数据存储装置包括:
9.一种基于janusgraph的图数据存储设备,其特征在于,所述基于janusgraph的图数据存储设备包括处理器、存储器、以及存储在所述存储器上并可被所述处理器执行的基于janusgraph的图数据存储程序,其中所述基于janusgraph的图数据存储程序被所述处理器执行时,实现如权利要求1至7中任一项所述的基于janusgraph的图数据存储方法的步骤。
10.一种存储介质,其特征在于,所述存储介质上存储有基于janusgraph的图数据存储程序,其中所述基于janusgraph的图数据存储程序被处理器执行时,实现如权利要求1至7中任一项所述的基于janusgraph的图数据存储方法的步骤。