图数据库系统多源数据导入方法和装置与流程

文档序号:33122426发布日期:2023-02-01 04:11阅读:29来源:国知局
图数据库系统多源数据导入方法和装置与流程

1.本技术涉及计算机技术领域,特别是涉及图数据库系统多源数据导入方法和装置。


背景技术:

2.随着大数据和人工智能的飞速发展,超大规模网络图在金融、风控、安防、推荐等领域有着广阔的应用空间和良好的发展前景,这激发了图网络数据的快速崛起。在图数据库的各个领域应用中,进行图应用的第一步便是对图进行大规模数据灌入,而在实际业务中进行图数据灌入时,数据来源多种多样。在相关技术中,大规模多源数据无法同时导入图数据库,如何进行大规模多源数据的快速同时导入图数据库,是在应用图数据库时需要重点解决的一项问题。
3.目前针对相关技术中大规模多源数据无法同时导入图数据库的问题,尚未提出有效的解决方案。


技术实现要素:

4.本技术实施例提供了一种图数据库系统多源数据导入方法和装置,以至少解决相关技术中大规模多源数据无法同时导入图数据库的问题。
5.第一方面,本技术实施例提供了一种图数据库系统多源数据导入方法,所述方法包括:根据预设的配置文件,读取多源数据,其中,所述配置文件针对各个点或边配置项,均配置对应数据来源以及源数据系统信息;根据预设的配置文件,转换所述多源数据,其中,所述配置文件针对各个源数据的字段,均配置所述字段与图数据库schema属性信息的映射关系;写入转换后的数据至图数据库,并针对导入失败的数据进行重导入。
6.在其中一些实施例中,所述读取多源数据过程包括:根据所述配置文件,验证待读取的多源数据的列数、列名是否正确,并根据图数据库中点边属性的映射关系,验证数据的列数、数据类型是否正确;若验证通过,则读取所述多源数据,并根据配置信息对数据进行列剪裁。
7.在其中一些实施例中,对所述待读取的多源数据进行验证之前,所述读取多源数据过程还包括:在数据源为数据库或数据仓的情况下,确定对应数据库的驱动信息,以进行所述数据库的连接校验和数据库内数据读取;在数据源为流式数据源系统的情况下,确定对应系统的配置信息,以建立与所述流式数据源系统的连接,并按照数据处理周期定期微批处理数据记录。
8.在其中一些实施例中,所述配置文件还包括图数据库的服务地址,所述转换多源数据过程包括:
根据所述服务地址,确定所述图数据库的schema属性信息;根据所述源数据的字段与图数据库schema属性信息的映射关系,确定所述源数据的字段在所述图数据库中对应的目标数据类型;确定所述字段的数据类型是否符合所述目标数据类型;若是,对所述数据进行编码,以构造成所述图数据库可支持的点和边的数据结构。
9.在其中一些实施例中,所述写入转换后的数据至图数据库,过程包括:根据配置文件中预设的分区数量,对转换后的数据进行分区,不同分区独立写入数据,并均衡分布式图数据库系统各服务节点的负载,其中:在均衡负载的过程中,在建立多连接时采用轮询策略,根据服务状态表去路由可用的图数据库服务,并在建立会话时采用随机策略,对图数据库系统的服务进行混合,将请求分散到图数据库的不同服务节点。
10.在其中一些实施例中,在各分区写入数据之前,在批量导入多源数据的情况下,所述写入转换后的数据至图数据库的过程还包括:存入点或边数据至缓存区,在缓冲区内数据量达到配置文件中预设的批量值的情况下,针对缓存区内的数据统一生成图数据库系统的插入语句。
11.在其中一些实施例中,所述写入转换后的数据至图数据库之后,所述方法包括:根据数据库资源配置进行导入参数调优测试,以提高导入性能;其中,所述数据库资源配置包括:向服务端一次请求发送的数据量、源数据的分区数,以及导入任务分配的执行器数量或者执行器内核数。
12.第二方面,本技术实施例提供了一种图数据库系统多源数据导入装置,所述装置包括:读取模块,用于根据预设的配置文件,读取多源数据,其中,所述配置文件针对各个点或边配置项,均配置对应数据来源以及源数据系统信息;转换模块,用于根据预设的配置文件,转换所述多源数据,其中,所述配置文件针对各个源数据的字段,均配置所述字段与图数据库schema属性信息的映射关系;写入模块,用于写入转换后的数据至图数据库,并针对导入失败的数据进行重导入。
13.第三方面,本技术实施例提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述图数据库系统多源数据导入方法。
14.第四方面,本技术实施例提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述图数据库系统多源数据导入方法。
15.相比于相关技术,本技术实施例提供的图数据库系统多源数据导入方法,通过根据预设的配置文件,读取多源数据,其中,该配置文件针对各个点或边配置项,均配置对应数据来源以及源数据系统信息;根据预设的配置文件,转换该多源数据,其中,该配置文件针对各个源数据的字段,均配置该字段与图数据库schema属性信息的映射关系;写入转换后的数据至图数据库,并针对导入失败的数据进行重导入,从而支持多种不同数据源的数据同时导入图数据库,解决了相关技术中大规模多源数据无法同时导入图数据库的问题,提高了多源数据导入图数据库的导入效率。
附图说明
16.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:图1是根据本技术实施例的图数据库系统多源数据导入方法的应用环境示意图;图2是根据本技术实施例的图数据库系统多源数据导入方法的流程图;图3是根据本技术实施例的多源数据导入图数据库的整体流程示意图;图4是根据本技术实施例的图数据库系统多源数据导入装置的结构框图;图5是根据本技术实施例的电子设备的内部结构示意图。
具体实施方式
17.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。基于本技术提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本技术公开的内容相关的本领域的普通技术人员而言,在本技术揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本技术公开的内容不充分。
18.在本技术中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本技术的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本技术所描述的实施例在不冲突的情况下,可以与其它实施例相结合。
19.除非另作定义,本技术所涉及的技术术语或者科学术语应当为本技术所属技术领域内具有一般技能的人士所理解的通常意义。本技术所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本技术所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本技术所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本技术所涉及的“多个”是指大于或者等于两个。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“a和/或b”可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。本技术所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。
20.本技术提供的图数据库系统多源数据导入方法,可以应用于如图1所示的应用环境中,图1是根据本技术实施例的图数据库系统多源数据导入方法的应用环境示意图,如图1所示,终端102与服务器104通过网络进行通信。用户通过终端102预先对配置文件进行配置,在该配置文件中,针对各个点或边配置项,均配置对应数据来源以及源数据系统信息,并且针对各个源数据的字段,均配置该字段与图数据库schema属性信息的映射关系,从而通过命令提交进行数据导入,用户只需填写配置文件,无需编码。需要说明的是,图数据库
的schema,是指图数据库中存储的元数据信息,包括图中的点类型和边类型,以及各类型所维护的属性名字、属性数据类型、默认值、属性设置等信息。服务器104根据预设的配置文件,在获取到用户的数据导入命令的情况下,读取多源数据,并根据预设的配置文件,转换该多源数据,最后写入转换后的数据至图数据库,并针对导入失败的数据进行重导入。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
21.本实施例提供了一种图数据库系统多源数据导入方法,图2是根据本技术实施例的图数据库系统多源数据导入方法的流程图,如图2所示,该流程包括如下步骤:步骤s201,根据预设的配置文件,读取多源数据,其中,该配置文件针对各个点或边配置项,均配置对应数据来源以及源数据系统信息;例如,用户将不同数据源的数据导入图数据库系统时,根据用户预先设定好的配置文件进行数据读取并验证数据的列数、列名是否正确,并根据设置的图数据库中点边属性的映射关系进行列数、数据类型的校验;校验通过则读取数据,根据配置信息对数据进行列剪裁;在同一运行时刻,允许读取多种不同来源的数据,需要用户预先在配置文件中配置多个点或边配置项,每个点边配置项中配置对应的数据来源及源数据系统的文件地址、server地址、端口号,以及其他特殊配置;步骤s202,根据预设的配置文件,转换该多源数据,其中,该配置文件针对各个源数据的字段,均配置该字段与图数据库schema属性信息的映射关系;例如,根据配置文件中配置的图数据库服务地址向图数据库服务发起请求,查询用户所配置的图库schema,包括图库点id的数据类型、点边的属性集合、点边属性的数据类型等;同时基于配置文件中源数据系统中的数据字段和图数据库中的属性字段进行映射,得到源数据系统中数据字段与图数据库系统中的目标数据类型的映射表,即源数据字段到目标数据类型的映射;根据图数据库schema对点id或者边id的格式要求进行数据过滤,当id或者rank数据的数据格式不符合目标schema的设定(例如,数据类型不合符要求或者数据为空)时,根据当前数据源是否为流式数据源进行日志打印或者终止当前导入任务,不允许非法数据进入图数据库;对符合条件的数据进行编码,构造成图数据可支持的点和边的数据结构;步骤s203,写入转换后的数据至图数据库,并针对导入失败的数据进行重导入。
22.通过上述步骤s201至步骤s203,相对于相关技术中大规模多源数据无法同时导入图数据库的问题,本技术实施例通过根据预设的配置文件,读取多源数据,其中,该配置文件针对各个点或边配置项,均配置对应数据来源以及源数据系统信息;根据预设的配置文件,转换该多源数据,其中,该配置文件针对各个源数据的字段,均配置该字段与图数据库schema属性信息的映射关系;写入转换后的数据至图数据库,并针对导入失败的数据进行重导入,从而支持多种不同数据源的数据同时导入图数据库,解决了相关技术中大规模多源数据无法同时导入图数据库的问题,提高了多源数据导入图数据库的导入效率。
23.图3是根据本技术实施例的多源数据导入图数据库的整体流程示意图,如图3所示,允许在一个导入任务中同时配置多种不同的数据源进行图数据库数据导入,导入的数据可以是多源异构的,数据源类型包括文件数据源、数据库数据源、数仓数据源、流式数据源等,从而打通各大存储系统与图数据库的数据传输通道。读取文件数据源时,允许文件位
于本地磁盘,也允许文件位于远程分布式文件系统。其中,读取数据库数据源或数仓数据源时,需要指定相应数据库的驱动信息(driver),进行数据库连接校验和数据读取,针对数据库进行数据读取时,可指定可执行的查询语句进行定制化数据获取;读取流式数据源时,需指定流式数据源的主题、流式数据的offset、是否可重复读取、数据处理周期等配置,读取流式数据与其他数据源有所不同,根据配置与流式数据源系统建立连接通道,等待流式数据的传入,根据数据处理周期定期微批处理流式数据的记录。
24.可以理解,点数据包括点id、点属性,边数据包括源点id、目标点id、边rank、边属性,因此对数据进行编码的过程可以如下:根据图库的id类型、源数据与目标数据类型的映射表进行数据转换,将id数据、属性数据转化为图数据库可支持的数据类型和数据格式,例如,地址位置类型的转换,将point类型数据利用图数据库中的point()函数进行数据转换;例如,时间类型的转换,将datetime类型的数据利用图数据库中的datetime()函数进行转换;再例如,将string类型的数据中的特殊字符安进行转义等,转换完成后源数据被构造为一个个的点或边对象;在此过程中,若数据不符合格式要求,则根据用户配置可选择终止导入任务或直接丢弃该条数据记录;从而用户无需关心数据源中的数据schema信息,只需配置源数据字段和图数据库schema 属性名的映射,在dataprocessor中会自动基于目标schema进行数据格式的转换。
25.可选的,为了增大数据转换和写入的并发度,提高导入性能,在其中一些实施例中,可以采用分布式方式进行数据写入。将转换后的数据进行分区,不同分区独立进行数据写入,此时分区的数量是由配置文件进行指定;分区内部进行数据写入前的准备,包括获取数据库连接、选择待导入数据库,在不同分区内部为均衡分布式图数据库系统各服务节点的负载,实现了进程内负载均衡,将均衡逻辑集成在导入工具内部。采用随机策略,在建立会话(session)时对图数据库系统的服务进行混合(shuffle),将插入请求分散到图数据库的不同服务节点。在分布式图数据库数据导入过程中,通过多层分布式的数据处理和请求发送来增大整体导入的并发度,提升数据写入的性能。同时在导入工具内部通过定时任务进行服务状态维护分布式图数据库服务的可用性,在建立多连接时采用轮询的策略,根据服务状态表去路由可用的图数据库服务,以此均衡图数据库服务的连接负载,保证服务的高可用。从而,通过分布式数据处理、轮询建立服务连接、随机分发数据写入请求,增大了数据导入的并发,提高了整体导入性能。
26.进一步的,在其中一些实施例中,允许用户对源数据进行批量导入,根据配置文件中配置的批量数据的量对点边数据进行积压。将点或边数据塞入buffer桶,当桶内点边对象数量达到批量值,则统一转换为图数据库系统所支持的插入语句并将插入语句发送给图数据库系统。
27.由于写入过程中可能会出现写入失败的数据,可以单独对写入失败的数据文件进行重导入,或者在数据写入过程中将写入失败的数据缓存下来,在某一点/ 边导入任务完成后统一记录,导入任务全部完成后拉取失败的数据进行统一的导入重试。重试后仍执行失败的数据再次被缓存并写入配置文件所配置的路径中。另外,数据导入时,可根据实际图数据库的资源配置对工具进行参数调优,允许用户无编码进行导入调优。通过调整工具向服务端一次请求发送的数据量、导入工具对源数据的分区数、导入任务所分配的工作执行器数量、导入任务分配的执行器内核数等进行调优测试,达到最优导入性能。
28.需要说明的是,在上述流程中或者附图的流程图中示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
29.本实施例还提供了一种图数据库系统多源数据导入装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
30.图4是根据本技术实施例的图数据库系统多源数据导入装置的结构框图,如图4所示,该装置包括读取模块41、转换模块42和写入模块43:该读取模块41用于根据预设的配置文件,读取多源数据,其中,所述配置文件针对各个点或边配置项,均配置对应数据来源以及源数据系统信息;该转换模块42用于根据预设的配置文件,转换所述多源数据,其中,所述配置文件针对各个源数据的字段,均配置所述字段与图数据库schema属性信息的映射关系;该写入模块43用于写入转换后的数据至图数据库,并针对导入失败的数据进行重导入。
31.需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。
32.本实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
33.另外,结合上述实施例中的图数据库系统多源数据导入方法,本技术实施例可提供一种存储介质来实现。该存储介质上存储有计算机程序;该计算机程序被处理器执行时实现上述实施例中的任意一种图数据库系统多源数据导入方法。
34.在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种图数据库系统多源数据导入方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
35.在一个实施例中,图5是根据本技术实施例的电子设备的内部结构示意图,如图5所示,提供了一种电子设备,该电子设备可以是服务器,其内部结构图可以如图5所示。该电子设备包括通过内部总线连接的处理器、网络接口、内存储器和非易失性存储器,其中,该非易失性存储器存储有操作系统、计算机程序和数据库。处理器用于提供计算和控制能力,网络接口用于与外部的终端通过网络连接通信,内存储器用于为操作系统和计算机程序的运行提供环境,计算机程序被处理器执行时以实现一种图数据库系统多源数据导入方法,
数据库用于存储数据。
36.本领域技术人员可以理解,图5中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的电子设备的限定,具体的电子设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
37.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink) dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
38.本领域的技术人员应该明白,以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
39.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1