一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据写入方法、装置、电子设备及计算机可读存储介质与流程

2022-04-30 09:35:14 来源:中国专利 TAG:


1.本发明涉及数据库技术领域,特别是涉及一种数据写入方法、装置、电子设备及计算机可读存储介质。


背景技术:

2.随着网络技术的快速发展,可以在多个数据库之间进行数据交互。例如,可以将一个数据库(可以称为源数据库)中的数据写入另一个数据库(可以称为目的数据库)。
3.相关技术中,若该源数据库所属的集群与目的数据库所属的集群之间网络不通,则采用jdbc(java数据库连接,java data base connectivity)的方式,将源数据库中的数据写入目的数据库。
4.然而,若需要写入目的数据库的数据量较大,基于jdbc方式进行数据写入,则会出现写入阻塞的情况,进而,会降低数据写入的效率,也会影响集群的性能。


技术实现要素:

5.本发明实施例的目的在于提供一种数据写入方法、装置、电子设备及计算机可读存储介质,能够提高数据写入的效率,且降低对集群性能的影响。具体技术方案如下:
6.在本发明实施的第一方面,首先提供了一种数据写入方法,所述方法包括:
7.获取源数据库中待写入目的数据库的目标数据的认证信息;其中,所述认证信息用于获取在所述目的数据库中写入所述目标数据的权限;所述源数据库和所述目的数据库各自所属的集群之间网络不通;
8.将所述源数据库中存储的所述目标数据写入预设对象存储节点;
9.根据所述认证信息,将所述预设对象存储节点中存储的所述目标数据写入所述目的数据库。
10.可选的,所述根据所述认证信息,将所述预设对象存储节点中存储的所述目标数据写入所述目的数据库,包括:
11.根据所述认证信息向所述目的数据库对应的第一认证服务发送认证请求,以获取第一认证票据;
12.在所述目的数据库验证所述第一认证票据合法的情况下,将所述预设对象存储节点中存储的所述目标数据写入所述目的数据库。
13.可选的,所述将所述预设对象存储节点中存储的所述目标数据写入所述目的数据库,包括:
14.按照bulkload批量导入的方式,将所述预设对象存储节点中存储的所述目标数据写入所述目的数据库。
15.可选的,所述认证信息还用于获取从所述源数据库中读取所述目标数据的权限;
16.在所述将所述源数据库中存储的所述目标数据写入预设对象存储节点之前,所述方法还包括:
17.在接收到所述目标数据对应的数据写入任务时,根据所述认证信息向所述源数据库对应的第二认证服务发送认证请求,以获取第二认证票据;
18.所述将所述源数据库中存储的所述目标数据写入预设对象存储节点,包括:
19.在所述源数据库验证所述第二认证票据合法的情况下,从所述源数据库中获取所述目标数据,并写入预设对象存储节点。
20.可选的,所述认证信息包括:配置信息、密钥和实体名称;
21.在所述获取源数据库中待写入目的数据库的目标数据的认证信息之后,所述方法还包括:
22.将所述配置信息和密钥,以文件格式存储至分布式文件系统的指定目录;
23.在根据所述认证信息向所述源数据库对应的第二认证服务发送认证请求,以获取第二认证票据之前,所述方法还包括:
24.当需要从所述源数据库获取所述目标数据时,从所述指定目录获取所述配置信息和密钥。
25.可选的,在从所述源数据库中获取所述目标数据,并写入预设对象存储节点之后,所述方法还包括:
26.释放执行所述数据写入任务所占的资源,以及删除所述指定目录下记录的所述配置信息和密钥。
27.在本发明实施的第二方面,提供了一种数据写入方法,所述方法应用于计算节点,包括:
28.接收数据写入任务;其中,所述数据写入任务表示将源数据库中的目标数据写入目的数据库;所述源数据库和所述目的数据库各自所属的集群之间网络不通;
29.从所述源数据库中获取所述目标数据;
30.将所述目标数据写入预设对象存储节点,以使驱动节点根据所述目标数据的认证信息,将所述预设对象存储节点中存储的所述目标数据写入所述目的数据库;所述认证信息用于获取在所述目的数据库中写入所述目标数据的权限。
31.可选的,所述认证信息还用于获取从所述源数据库中读取所述目标数据的权限;所述认证信息包括:配置信息、密钥和实体名称;
32.在从所述源数据库中获取所述目标数据之前,所述方法还包括:
33.根据从分布式文件系统的指定目录获取的所述配置信息和密钥,以及所述驱动节点发送的所述实体名称,向所述源数据库对应的第二认证服务发送认证请求,以获取第二认证票据;其中,所述配置信息和密钥为所述驱动节点以文件格式存储至所述指定目录的;
34.从所述源数据库中获取所述目标数据,包括:
35.在所述源数据库验证所述第二认证票据合法的情况下,从所述源数据库中获取所述目标数据
36.在本发明实施的第三方面,提供了一种数据写入装置,所述装置包括:
37.认证信息获取模块,用于获取源数据库中待写入目的数据库的目标数据的认证信息;其中,所述认证信息用于获取在所述目的数据库中写入所述目标数据的权限;所述源数据库和所述目的数据库各自所属的集群之间网络不通;
38.第一写入模块,用于将所述源数据库中存储的所述目标数据写入预设对象存储节
点;
39.第二写入模块,用于根据所述认证信息,将所述预设对象存储节点中存储的所述目标数据写入所述目的数据库。
40.可选的,所述第二写入模块,具体用于根据所述认证信息向所述目的数据库对应的第一认证服务发送认证请求,以获取第一认证票据;
41.在所述目的数据库验证所述第一认证票据合法的情况下,将所述预设对象存储节点中存储的所述目标数据写入所述目的数据库。
42.可选的,所述第二写入模块,具体用于按照bulkload批量导入的方式,将所述预设对象存储节点中存储的所述目标数据写入所述目的数据库。
43.可选的,所述认证信息还用于获取从所述源数据库中读取所述目标数据的权限;
44.所述第一写入模块,具体用于在接收到所述目标数据对应的数据写入任务时,根据所述认证信息向所述源数据库对应的第二认证服务发送认证请求,以获取第二认证票据;
45.在所述源数据库验证所述第二认证票据合法的情况下,从所述源数据库中获取所述目标数据,并写入预设对象存储节点。
46.可选的,所述认证信息包括:配置信息、密钥和实体名称;
47.所述装置还包括:
48.认证信息存储模块,用于在所述获取源数据库中待写入目的数据库的目标数据的认证信息之后,将所述配置信息和密钥,以文件格式存储至分布式文件系统的指定目录;
49.认证信息获取模块,用于在根据所述认证信息向所述源数据库对应的第二认证服务发送认证请求,以获取第二认证票据之前,当需要从所述源数据库获取所述目标数据时,从所述指定目录获取所述配置信息和密钥。
50.可选的,所述装置还包括:
51.释放模块,用于在从所述源数据库中获取所述目标数据,并写入预设对象存储节点之后,释放执行所述数据写入任务所占的资源,以及删除所述指定目录下记录的所述配置信息和密钥。
52.在本发明实施的第四方面,提供了一种数据写入装置,所述装置应用于计算节点,所述装置包括:
53.数据写入任务接收模块,用于接收数据写入任务;其中,所述数据写入任务表示将源数据库中的目标数据写入目的数据库;所述源数据库和所述目的数据库各自所属的集群之间网络不通;
54.数据获取模块,用于从所述源数据库中获取所述目标数据;
55.数据写入模块,用于将所述目标数据写入预设对象存储节点,以使驱动节点根据所述目标数据的认证信息,将所述预设对象存储节点中存储的所述目标数据写入所述目的数据库;所述认证信息用于获取在所述目的数据库中写入所述目标数据的权限。
56.可选的,所述认证信息还用于获取从所述源数据库中读取所述目标数据的权限;所述认证信息包括:配置信息、密钥和实体名称;
57.所述数据获取模块,具体用于根据从分布式文件系统的指定目录获取的所述配置信息和密钥,以及所述驱动节点发送的所述实体名称,向所述源数据库对应的第二认证服
务发送认证请求,以获取第二认证票据;其中,所述配置信息和密钥为所述驱动节点以文件格式存储至所述指定目录的;
58.在所述源数据库验证所述第二认证票据合法的情况下,从所述源数据库中获取所述目标数据。
59.本发明实施例还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
60.存储器,用于存放计算机程序;
61.处理器,用于执行存储器上所存放的程序时,实现上述任一所述的数据写入方法。
62.本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述的数据写入方法。
63.本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的数据写入方法。
64.本发明实施例有益效果:
65.本发明实施例提供的数据写入方法,获取源数据库中待写入目的数据库的目标数据的认证信息;其中,认证信息用于获取在目的数据库中写入目标数据的权限;源数据库和目的数据库各自所属的集群之间网络不通;将源数据库中存储的目标数据写入预设对象存储节点;根据认证信息,将预设对象存储节点中存储的目标数据写入所述目的数据库。
66.基于上述处理,预设对象存储节点与源数据库以及目的数据库均能够网络互通,进而,在源数据库与目的数据库之间通过对象存储节点实现数据的中转,能够避免基于jdbc方式进行数据写入导致的写入阻塞的情况,也就能够提高数据写入的效率,且降低对集群性能的影响。
67.当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
68.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的实施例。
69.图1为本发明实施例提供的一种数据写入方法的流程图;
70.图2为本发明实施例提供的另一种数据写入方法的流程图;
71.图3为本发明实施例提供的另一种数据写入方法的流程图;
72.图4为本发明实施例提供的另一种数据写入方法的流程图;
73.图5为本发明实施例提供的一种数据写入的原理示意图;
74.图6为本发明实施例提供的一种数据写入方法的流程图;
75.图7为本发明实施例提供的一种数据写入装置的结构图;
76.图8为本发明实施例提供的一种数据写入装置的结构图;
77.图9为本发明实施例提供的一种电子设备的结构图。
具体实施方式
78.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员基于本发明所获得的所有其他实施例,都属于本发明保护的范围。
79.相关技术中,若源数据库所属的集群与目的数据库所属的集群之间网络不通,采用jdbc的方式将源数据库中的数据写入目的数据库,会出现写入阻塞的情况,进而,会降低数据写入的效率,也会影响集群的性能。
80.为了解决上述问题,本发明实施例提供了一种数据写入方法,该方法可以应用于分布式集群中的工作节点,例如,该分布式集群可以为yarn集群。该分布式集群可以包含至少一个工作节点(worker),每一工作节点中可以部署有驱动器(driver)和/或执行器(executor)。
81.驱动器和执行器可以部署在同一个工作节点中,也可以分别部署在不同的工作节点中。驱动器和执行器可以分别以进程的方式运行在工作节点中。其中,驱动器用于对技术人员提交的代码逻辑转化为数据写入任务,并将数据写入任务调度至执行器,执行器用于执行数据写入任务。
82.参见图1,图1为本发明实施例提供的一种数据写入方法的流程图,该方法可以包括以下步骤:
83.s101:获取源数据库中待写入目的数据库的目标数据的认证信息。
84.其中,认证信息用于获取在目的数据库中写入目标数据的权限。源数据库和目的数据库各自所属的集群之间网络不通。
85.s102:将源数据库中存储的目标数据写入预设对象存储节点。
86.s103:根据认证信息,将预设对象存储节点中存储的目标数据写入目的数据库。
87.基于本发明实施例提供的数据写入方法,预设对象存储节点与源数据库以及目的数据库均能够网络互通,进而,在源数据库与目的数据库之间通过对象存储节点实现数据的中转,能够避免基于jdbc方式进行数据写入导致的写入阻塞的情况,也就能够提高数据写入的效率,且降低对集群性能的影响。
88.一种实现方式中,本发明实施例的方法可以由分布式集群中的一个工作节点执行,具体的,该工作节点可以通过其中部署的驱动器和执行器分别执行本发明实施例的方法中不同的步骤。
89.另一种方式中,本发明实施例提供的方法可以由分布式集群中不同的工作节点执行,具体的,可以在多个不同的工作节点中分别部署驱动器和执行器,并分别执行本发明实施例的方法中不同的步骤。
90.针对步骤s101,可以由分布式集群中部署有驱动器的工作节点(可以称为驱动节点)执行,将目标数据从源数据库写入目的数据库的数据写入任务也可以称为spark任务。驱动器可以运行于分布式集群的任一工作节点中,其用于运行spark application(应用)的main()方法。例如,可以在工作节点中构建spark application的运行环境,启动spark context(上下文),也就可以开启驱动器对应的进程。
91.一种实现方式中,分布式集群的节点中还可以部署有用于对需要写入的数据的认
证信息进行管理的组件(可以称为元数据管理系统)),该节点可以称为信息管理节点。驱动节点可以向信息管理节点发送用于获取目标数据的认证信息的http(超文本传输协议,hyper text transfer protocol)请求。例如,该http请求中可以携带有目标数据的数据标识,相应的,信息管理节点则可以向驱动节点返回目标数据的认证信息。
92.一种实现方式中,源数据库可以为hive数据库,或者,也可以为mysql数据库,但并不限于此。目的数据库可以为hbase数据库,该hbase数据库可以部署有phoenix层。
93.在一个实施例中,在步骤s102之前,该方法还可以包括以下步骤:分配执行将目标数据写入目的数据库所需的资源。
94.一种实现方式中,分布式集群还可以包含部署有管理器(cluster manger)的节点(可以称为资源管理节点)。例如,在standalone(脱机)运行模式下,资源管理节点表示spark集群中的主节点(master),用于控制整个spark集群;在yarn运行模式下,该管理器表示资源管理器。
95.一种实现方式中,驱动节点可以向资源管理节点请求分配资源(例如,cpu、内存),也就是执行器执行数据写入任务所需的资源。其中,执行数据写入任务的执行器可以为一个,也可以为多个,例如,执行器的数目可以根据数据写入任务的计算量确定。
96.针对步骤s102,可以由分布式集群中部署执行器的工作节点(可以称为计算节点)执行。计算节点与驱动节点可以同一工作节点,也可以为不同的工作节点。按照数据写入任务,计算节点可以从源数据库获取目标数据,并存储至预设对象存储节点。
97.针对步骤s103,在目标数据被写入预设对象存储节点后,驱动节点则可以将预设对象存储节点中存储的目标数据写入目的数据库。在向目的数据库写入目标数据之前,驱动节点器需要通过认证,即,在基于认证信息通过认证后,驱动节点可以将预设对象存储节点中存储的目标数据写入目的数据库。
98.在一个实施例中,参见图2,在图1的基础上,上述步骤s103可以包括以下步骤:
99.s1031:根据认证信息向目的数据库对应的第一认证服务发送认证请求,以获取第一认证票据。
100.s1032:在目的数据库验证第一认证票据合法的情况下,将预设对象存储节点中存储的目标数据写入目的数据库。
101.一种实现方式中,本发明中的认证可以为kerberos认证,驱动节点可以向第一认证服务发送携带有认证信息的kerberos认证请求。第一认证服务可以为目的数据库所属的集群中用于对驱动节点进行kerberos认证的组件。在驱动节点发送的认证信息通过kerberos认证后,第一认证服务可以基于认证信息,生成第一认证票据(ticket),并向驱动节点发送。
102.例如,第一认证服务在接收到驱动节点发送的认证信息后,基于认证信息生成第一认证票据,并用预设密钥对第一认证票据进行加密,并将加密后的第一认证票据发送给驱动节点;驱动节点使用预设密钥对加密后的第一认证票据进行解密,得到第一认证票据。
103.进而,驱动节点则可以向目的数据库发送携带有第一认证票据的数据写入请求。目的数据库可以验证驱动节点发送的第一认证票据是否合法。若第一认证票据合法,表明驱动节点具有在目的数据库中写入目标数据的权限。
104.在一个实施例中,驱动节点可以按照bulkload批量导入的方式,将预设对象存储
节点中存储的目标数据写入目的数据库。
105.在本发明实施例中,驱动节点可以通过mapreduce job(映射化简任务),实现bulkload批量导入的方式。具体的,通过mapreduce job生成目标数据对应的hfile格式的文件,然后,可以将该hfile格式的文件加载到目的数据库所属的集群中,也就可以实现将目标数据写入目的数据库。基于上述方式,能够降低计算资源和网络资源的占用。
106.在一个实施例中,认证信息还用于获取从源数据库中读取目标数据的权限。
107.也就是说,目标数据可以对应两套认证信息,一套认证信息(可以称为第一认证信息)用于获取在目的数据库中写入目标数据的权限;一套认证信息(可以称为第二认证信息)用于获取从源数据库中读取目标数据的权限。
108.相应的,参见图3,在图1的基础上,上述步骤s102可以包括以下步骤:
109.s1021:在接收到目标数据对应的数据写入任务时,根据认证信息向源数据库对应的第二认证服务发送认证请求,以获取第二认证票据。
110.s1022:在源数据库验证第二认证票据合法的情况下,从源数据库中获取目标数据,并写入预设对象存储节点。
111.一种实现方式中,当计算节点需要从源数据库中读取目标数据时,也需要进行认证。计算节点可以向第二认证服务发送携带有认证信息的kerberos认证请求。第二认证服务可以为源数据库所属的集群中用于对计算节点进行kerberos认证的组件。在计算节点发送的认证信息通过kerberos认证后,第二认证服务可以基于认证信息,生成第二认证票据,并向计算节点发送。
112.进而,计算节点则可以向源数据库发送携带有第二认证票据的数据读取请求。源数据库可以验证计算节点发送的第二认证票据是否合法。若第二认证票据合法,表明计算节点具有从源数据库中读取目标数据的权限。
113.在一个实施例中,认证信息包括:配置信息、密钥和实体名称。
114.例如,kerberos认证的配置信息可以包括krb5.conf配置文件。kerberos认证的密钥可以包括keytab(密钥表)中记录的加密密钥。kerberos认证的实体名称可以包括principal(核心),在kerberos认证中,principal是进行认证的基本实体,也就是kerberos认证中的用户名称。
115.相应的,参见图4,在图3的基础上,在步骤s101之后,该方法还可以包括以下步骤:
116.s104:将配置信息和密钥,以文件格式存储至分布式文件系统的指定目录。
117.相应的,在上述步骤s1021之前,该方法还可以包括:
118.s105:当需要从源数据库获取目标数据时,从指定目录获取配置信息和密钥。
119.在本发明实施例中,计算节点在进行认证之前,可以通过调用相应的api(application programming interface,应用程序接口)获取认证信息。
120.在通过api获取认证信息时,kerberos认证的配置信息和kerberos认证的密钥,可以以文件格式(例如,txt格式)进行调用。因此,驱动节点可以将kerberos认证的配置信息和密钥,分别以文件格式存储在hdfs(hadoop distributed file system,分布式文件系统)中。相应的,计算节点可以从该指定目录分别获取kerberos认证的配置信息和密钥。
121.例如,在分布式文件系统中可以设置有spark application对应的指定目录,驱动节点可以将kerberos认证的配置信息和密钥,分别以文件格式存储至该指定目录下。
122.在通过api获取认证信息时,kerberos认证的实体名称可以以字符串的形式进行调用,因此,驱动节点可以直接向计算节点发送kerberos认证的实体名称。
123.在一个实施例中,第一认证信息中的配置信息包括第一认证服务的地址。驱动节点按照第一认证服务的地址,向第一认证服务发送携带有第一认证信息中的kerberos认证的密钥和实体名称的kerberos认证请求,以获取第一认证票据。
124.第二认证信息中的配置信息包括第二认证服务的地址。计算节点按照第二认证服务的地址,向第二认证服务发送携带有第二认证信息中的kerberos认证的密钥和实体名称的kerberos认证请求,以获取第二认证票据。
125.在一个实施例中,该方法还可以包括以下步骤:
126.在从源数据库中获取目标数据,并写入预设对象存储节点之后,释放执行数据写入任务所占的资源,以及删除指定目录下记录的配置信息和密钥。
127.执行数据写入任务所占的资源,即,计算节点中的执行器所占的资源。
128.在本发明实施例中,在计算节点将源数据库中的目标数据写入预设对象存储节点后,则可以释放计算节点中的执行器所占的资源,实现资源回收,避免资源浪费。
129.另外,还可以删除分布式文件系统的指定目录下记录的数据(包括kerberos认证的配置信息和密钥),以避免脏数据的产生。
130.参见图5,图5为本发明实施例提供的一种数据写入的原理示意图。
131.驱动节点中部署的驱动器(driver)可以获取源数据库(即hive)中待写入目的数据库(即phoenix)的目标数据对应的kerberos认证的配置信息(krb5.conf)、密钥(keytab)和实体名称(principal),并将配置信息和密钥以文件格式存储至分布式文件系统的指定目录(即hdfs://user/tmp),以及向计算节点下发对应的数据写入任务。计算节点中的执行器(executor)可以获取数据写入任务。其中,驱动节点和计算节点可以为分布式集群(即spark)中的同一个工作节点,也可以为不同的工作节点。
132.计算节点可以直接从驱动节点获取实体名称,并从指定目录获取配置信息和密钥。然后,计算节点可以基于获取的认证信息进行kerberos认证,得到第二认证票据。进而,计算节点基于第二认证票据从hive获取目标数据,并写入预设对象存储节点(即cos节点)。
133.驱动节点根据认证信息,在通过目的数据库的kerberos认证的情况下,按照bulkload批量导入的方式,将预设对象存储节点中存储的目标数据写入目的数据库。
134.基于相同的发明构思,本发明实施例还提供了一种数据写入方法,该方法应用于计算节点,参见图6,该方法可以包括以下步骤:
135.s601:接收数据写入任务。
136.其中,数据写入任务表示将源数据库中的目标数据写入目的数据库。源数据库和目的数据库各自所属的集群之间网络不通。
137.s602:从源数据库中获取目标数据。
138.s603:将目标数据写入预设对象存储节点,以使驱动节点根据目标数据的认证信息,将预设对象存储节点中存储的目标数据写入目的数据库。
139.其中,认证信息用于获取在目的数据库中写入目标数据的权限。
140.基于本发明实施例提供的数据写入方法,预设对象存储节点与源数据库以及目的数据库均能够网络互通,进而,在源数据库与目的数据库之间通过对象存储节点实现数据
的中转,能够避免基于jdbc方式进行数据写入导致的写入阻塞的情况,也就能够提高数据写入的效率,且降低对集群性能的影响。
141.计算节点接收的数据写入任务可以为驱动节点下发的,针对步骤s602-s603,可以参考上述实施例中的类似步骤的具体介绍。
142.在一个实施例中,认证信息还用于获取从源数据库中读取目标数据的权限;认证信息包括:配置信息、密钥和实体名称;
143.步骤s602可以包括:
144.步骤一:根据从分布式文件系统的指定目录获取的配置信息和密钥,以及驱动节点发送的实体名称,向源数据库对应的第二认证服务发送认证请求,以获取第二认证票据。
145.其中,配置信息和密钥为驱动节点以文件格式存储至指定目录的。
146.步骤二:在源数据库验证第二认证票据合法的情况下,从源数据库中获取目标数据。
147.基于相同的发明构思,本发明实施例还提供了一种数据写入装置,参见图7,图7为本发明实施例提供的一种数据写入装置的结构图,所述装置包括:
148.认证信息获取模块701,用于获取源数据库中待写入目的数据库的目标数据的认证信息;其中,所述认证信息用于获取在所述目的数据库中写入所述目标数据的权限;所述源数据库和所述目的数据库各自所属的集群之间网络不通;
149.第一写入模块702,用于将所述源数据库中存储的所述目标数据写入预设对象存储节点;
150.第二写入模块703,用于根据所述认证信息,将所述预设对象存储节点中存储的所述目标数据写入所述目的数据库。
151.可选的,所述第二写入模块703,具体用于根据所述认证信息向所述目的数据库对应的第一认证服务发送认证请求,以获取第一认证票据;
152.在所述目的数据库验证所述第一认证票据合法的情况下,将所述预设对象存储节点中存储的所述目标数据写入所述目的数据库。
153.可选的,所述第二写入模块703,具体用于按照bulkload批量导入的方式,将所述预设对象存储节点中存储的所述目标数据写入所述目的数据库。
154.可选的,所述认证信息还用于获取从所述源数据库中读取所述目标数据的权限;
155.所述第一写入模块702,具体用于在接收到所述目标数据对应的数据写入任务时,根据所述认证信息向所述源数据库对应的第二认证服务发送认证请求,以获取第二认证票据;
156.在所述源数据库验证所述第二认证票据合法的情况下,从所述源数据库中获取所述目标数据,并写入预设对象存储节点。
157.可选的,所述认证信息包括:配置信息、密钥和实体名称;
158.所述装置还包括:
159.认证信息存储模块,用于在所述获取源数据库中待写入目的数据库的目标数据的认证信息之后,将所述配置信息和密钥,以文件格式存储至分布式文件系统的指定目录;
160.认证信息获取模块,用于在根据所述认证信息向所述源数据库对应的第二认证服务发送认证请求,以获取第二认证票据之前,当需要从所述源数据库获取所述目标数据时,
从所述指定目录获取所述配置信息和密钥。
161.可选的,所述装置还包括:
162.释放模块,用于在从所述源数据库中获取所述目标数据,并写入预设对象存储节点之后,释放执行所述数据写入任务所占的资源,以及删除所述指定目录下记录的所述配置信息和密钥。
163.基于本发明实施例提供的数据写入装置,对象存储节点与源数据库以及目的数据库均能够网络互通,进而,在源数据库与目的数据库之间通过对象存储节点实现数据的中转,能够避免基于jdbc方式进行数据写入导致的写入阻塞的情况,也就能够提高数据写入的效率,且降低对集群性能的影响。
164.基于相同的发明构思,本发明实施例还提供了一种数据写入装置,应用于计算节点,参见图8,图8为本发明实施例提供的一种数据写入装置的结构图,该装置包括:
165.数据写入任务接收模块801,用于接收数据写入任务;其中,所述数据写入任务表示将源数据库中的目标数据写入目的数据库;所述源数据库和所述目的数据库各自所属的集群之间网络不通;
166.数据获取模块802,用于从所述源数据库中获取所述目标数据;
167.数据写入模块803,用于将所述目标数据写入预设对象存储节点,以使驱动节点根据所述目标数据的认证信息,将所述预设对象存储节点中存储的所述目标数据写入所述目的数据库;所述认证信息用于获取在所述目的数据库中写入所述目标数据的权限。
168.可选的,所述认证信息还用于获取从所述源数据库中读取所述目标数据的权限;所述认证信息包括:配置信息、密钥和实体名称;
169.所述数据获取模块802,具体用于根据从分布式文件系统的指定目录获取的所述配置信息和密钥,以及所述驱动节点发送的所述实体名称,向所述源数据库对应的第二认证服务发送认证请求,以获取第二认证票据;其中,所述配置信息和密钥为所述驱动节点以文件格式存储至所述指定目录的;
170.在所述源数据库验证所述第二认证票据合法的情况下,从所述源数据库中获取所述目标数据。
171.基于本发明实施例提供的数据写入装置,对象存储节点与源数据库以及目的数据库均能够网络互通,进而,在源数据库与目的数据库之间通过对象存储节点实现数据的中转,能够避免基于jdbc方式进行数据写入导致的写入阻塞的情况,也就能够提高数据写入的效率,且降低对集群性能的影响。
172.本发明实施例还提供了一种电子设备,如图9所示,包括处理器901、通信接口902、存储器903和通信总线904,其中,处理器901,通信接口902,存储器903通过通信总线904完成相互间的通信,
173.存储器903,用于存放计算机程序;
174.处理器901,用于执行存储器903上所存放的程序时,实现上述实施例中任一数据写入方法的步骤。
175.上述电子设备提到的通信总线可以是外设部件互连标准(peripheral component interconnect,pci)总线或扩展工业标准结构(extended industry standard architecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便
于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
176.通信接口用于上述电子设备与其他设备之间的通信。
177.存储器可以包括随机存取存储器(random access memory,ram),也可以包括非易失性存储器(non-volatile memory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
178.上述的处理器可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
179.在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一数据写入方法的步骤。
180.在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一数据写入方法。
181.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solid state disk(ssd))等。
182.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
183.本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、计算可读存储介质以及计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
184.以上所述仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发
明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献