System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及图数据库数据导入,尤其是一种gql图数据库数据导入方法及装置。
技术介绍
1、随着大数据和分布式计算技术的发展,图数据库在处理复杂关系数据方面展现出显著优势。然而,在实际应用中,分布式图数据库的数据导入过程常常面临数据量大、网络不稳定、数据源多样等问题,导致导入任务容易失败,传统的数据导入方法在任务中断后需要重新开始导入,这对于大规模数据集而言不仅浪费了大量的计算资源,还可能导致数据重复导入或丢失,造成稳定性差、性能差、准确性差的问题。因此如何在数据导入过程中实现断点续传,避免重复导入,提升导入效率成为亟待解决的技术问题。
2、公开号为cn113704277a的中国专利公开了一种基于数据库的断点续传方法及相关装置,要借助数据库的存储能力用于记录断点位置,其中断点位置为数据库源表行号或数据库源表数组序号。通过获取待处理数据库事务,读取断点记录,从断点位置标识出对应的处理位置来执行数据库事务,并在每次提交操作时更新断点位置标识,与数据库访问频繁,影响数据库性能。并且该专利是针对事务型数据库,一个导入批次的数据导入是事务的,要么全部导入成功要么全部导入失败,不适用于没有事务能力的gql图数据库。
技术实现思路
1、本申请的目的在于克服现有技术中gql图数据库无法实现断点续传,数据导入gql图数据库的任务中断后需要重新开始导入所导致的数据重复导入、浪费计算资源以及数据易丢失的问题,提供一种gql图数据库数据导入方法及装置。
2、第一方面,提供了一种gql图
3、将数据源按照预设的分区策略进行分区;
4、读取指定路径下的上次导入任务的任务状态信息,以获取分区的数据导入完成状态;
5、将数据导入完成状态为未完成的分区中的数据批量导入gql图数据库;
6、将导入完成的分区的任务状态信息存储至指定路径,所述任务状态信息包括:源数据索引、点边类型、分区id、数据导入完成状态和导入状态数据。
7、在一些可能的实现方式中,还包括:在将分区中的数据批量导入gql图数据库的过程中,将导入失败批次数据拆分成单条数据进行并发重试导入,并记录导入失败的单条数据。
8、在一些可能的实现方式中,对数据源进行识别和分类,根据数据源的特性和数据量进行内存分区。
9、在一些可能的实现方式中,所述导入状态数据包括:源数据记录数、已导入完成的点数据量、已导入完成的边数据量、已导入失败的点数据量、已导入失败的边数据量、已导入且对gql图数据库产生影响的点数据量和已导入且对gql图数据库产生影响的边数据量。
10、在一些可能的实现方式中,将数据导入完成状态为未完成的分区中的数据批量导入gql图数据库,包括:
11、读取导入完成状态为未完成的分区中的数据;
12、将读取的数据转换成批量导入的gql语句;
13、将所述gql语句发送至图数据库服务,由图数据库服务执行gql语句进行数据导入。
14、在一些可能的实现方式中,在数据导入gql图数据库的过程中,向用户展示数据导入开始时上次导入任务已完成的数据量、当前导入任务的导入进度和每秒查询次数。
15、第二方面,提供了一种gql图数据库数据导入装置,包括:
16、分区模块,用于将数据源按照预设的分区策略进行分区;
17、上次断点状态读取模块,用于读取指定路径下的上次导入任务的任务状态信息,以获取分区的数据导入完成状态;
18、断点续传模块,用于将数据导入完成状态为未完成的分区中的数据批量导入gql图数据库;
19、任务状态记录模块,用于将导入完成的分区的任务状态信息存储至指定路径,所述任务状态信息包括:源数据索引、点边类型、分区id、数据导入完成状态和导入状态数据。
20、在一些可能的实现方式中,还包括:拆分重试模块,用于在将分区中的数据批量导入gql图数据库的过程中,将导入失败批次数据拆分成单条数据进行并发重试导入,并记录导入失败的单条数据。
21、第三方面,提供了一种计算机可读存储介质,所述计算机可读介质存储用于设备执行的程序代码,该程序代码包括用于执行如上述第一方面中的任意一种实现方式中方法的步骤。
22、第四方面,提供了一种电子设备,所述电子设备包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如上述第一方面中的任意一种实现方式中的方法。
23、本申请具有如下有益效果:
24、1、本申请通过在内存中对源数据进行分区,并记录各个分区的完成情况和导入进度,实现了gql图数据库数据导入的断点续传功能,避免了导入任务中断所导致的重复导入,显著提高了数据导入的效率和稳定性,特别是在分布式环境下,能够有效应对数据量大、网络不稳定等问题,为gql图数据库的应用提供了强有力的技术支持。
25、2、本申请通过批次数据失败后拆分成单条数据再进行并发重试的方式来处理批量错误,实现了失败数据量的最小化,进一步提高了数据导入的效率。
本文档来自技高网...【技术保护点】
1.一种GQL图数据库数据导入方法,其特征在于,包括:
2.根据权利要求1所述的GQL图数据库数据导入方法,其特征在于,还包括:在将分区中的数据批量导入GQL图数据库的过程中,将导入失败批次数据拆分成单条数据进行并发重试导入,并记录导入失败的单条数据。
3.根据权利要求1所述的GQL图数据库数据导入方法,其特征在于,对数据源进行识别和分类,根据数据源的特性和数据量进行内存分区。
4.根据权利要求1所述的GQL图数据库数据导入方法,其特征在于,所述导入状态数据包括:源数据记录数、已导入完成的点数据量、已导入完成的边数据量、已导入失败的点数据量、已导入失败的边数据量、已导入且对GQL图数据库产生影响的点数据量和已导入且对GQL图数据库产生影响的边数据量。
5.根据权利要求4所述的GQL图数据库数据导入方法,其特征在于,将数据导入完成状态为未完成的分区中的数据批量导入GQL图数据库,包括:
6.根据权利要求1-5中任一项所述的GQL图数据库数据导入方法,其特征在于,在数据导入GQL图数据库的过程中,向用户展示数据导入开始时上次
7.一种GQL图数据库数据导入装置,其特征在于,包括:
8.根据权利要求7所述的GQL图数据库数据导入装置,其特征在于,还包括:拆分重试模块,用于在将分区中的数据批量导入GQL图数据库的过程中,将导入失败批次数据拆分成单条数据进行并发重试导入,并记录导入失败的单条数据。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储用于设备执行的程序代码,该程序代码包括用于执行如权利要求1-6中任一项所述方法的步骤。
10.一种电子设备,其特征在于,所述电子设备包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如权利要求1-6中任一项所述方法。
...【技术特征摘要】
1.一种gql图数据库数据导入方法,其特征在于,包括:
2.根据权利要求1所述的gql图数据库数据导入方法,其特征在于,还包括:在将分区中的数据批量导入gql图数据库的过程中,将导入失败批次数据拆分成单条数据进行并发重试导入,并记录导入失败的单条数据。
3.根据权利要求1所述的gql图数据库数据导入方法,其特征在于,对数据源进行识别和分类,根据数据源的特性和数据量进行内存分区。
4.根据权利要求1所述的gql图数据库数据导入方法,其特征在于,所述导入状态数据包括:源数据记录数、已导入完成的点数据量、已导入完成的边数据量、已导入失败的点数据量、已导入失败的边数据量、已导入且对gql图数据库产生影响的点数据量和已导入且对gql图数据库产生影响的边数据量。
5.根据权利要求4所述的gql图数据库数据导入方法,其特征在于,将数据导入完成状态为未完成的分区中的数据批量导入gql图数据库,包括:
6....
【专利技术属性】
技术研发人员:王昌圆,叶小萌,
申请(专利权)人:杭州悦数科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。