数据处理方法、装置、电子设备和计算机可读存储介质与流程

文档序号:29458913发布日期:2022-03-30 13:53阅读:99来源:国知局
数据处理方法、装置、电子设备和计算机可读存储介质与流程

1.本公开涉及数据处理领域,尤其涉及一种数据处理方法、装置、电子设备和计算机可读存储介质。


背景技术:

2.利用数据同步工具对数据进行实时同步的过程通常分为三个阶段,第一阶段为进行存量数据的初始化装载,获得数据同步的基础点;第二阶段以初始化数据装载建立的同步基础点为基准进行增量数据同步;第三阶段定期对数据同步的源端数据和目标数据进行比对校验,以确认在数据同步过程中没有丢失数据。其中第二阶段和第三阶段会处于长时间并行状态。
3.在第一阶段对存量数据进行初始化装载时,现行技术中对存量数据的读取方法包括:采用基于表rowid进行范围拆分,拆分后的每个范围通过独立的线程与数据库连接,对相应范围内的数据进行读取。或者通过表的值域范围、日志范围等对表数据进行划分形成多个分区,将多个分区的数据分配给多个线程进行读取。
4.上述通过多个线程读取数据的方法虽然可以加快数据读取的速度,但通常数据的装载速度要远小于数据读取的速度,因此在多线程读取数据的基础上对数据进行迁移,效率较低。


技术实现要素:

5.为了解决上述问题,本公开提供了一种数据处理方法、装置、电子设备和计算机可读存储介质,以提高数据的迁移效率。
6.为了实现上述目的,本公开实施例提供技术方案如下:
7.第一方面,本公开实施例提供了一种数据处理方法,包括:
8.获取目标读取线程,基于所述目标读取线程在源端数据库中读取目标数据;
9.对所述目标读取线程在源端数据库中读取的目标数据进行处理,得到多个目标数据包;
10.获取所述多个目标数据包对应的目标写出线程组;
11.基于所述目标写出线程组中的多个目标写出线程,将所述多个目标数据包中的数据写入目标数据库。
12.作为本公开实施例一种可选的实施方式,所述对所述目标读取线程在源端数据库中读取的目标数据进行处理,得到多个目标数据包,包括:
13.基于所述目标读取线程,对所述读取的目标数据以预设规则进行封装,得到多个封装数据包;
14.将所述封装数据包缓存至所述目标读取线程对应的输出队列,得到所述多个目标数据包。
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.根据所述预设规则和所述读取的目标数据的数据量,对所述读取的目标数据进行封装,得到所述多个封装数据包;其中,各封装数据包中的数据量为所述预设规则对应的预设数据量。
43.作为本公开实施例一种可选的实施方式,所述装载模块包括:
44.创建单元,用于获取所述目标写出线程组中各目标写出线程对应的输入队列;
45.分配单元,用于将所述多个目标数据包分配至各目标写出线程对应的输入队列;
46.写入单元,用于基于各目标写出线程,将分配至各目标写出线程对应的输入队列的目标数据包中的数据写入所述目标数据库。
47.作为本公开实施例一种可选的实施方式,所述分配单元具体用于获取动态分配线程,所述动态分配线程用于对所述输出队列中的所述多个目标数据包进行读取;
48.基于所述动态分配线程,将读取的目标数据包分配至各目标写出线程对应的输入队列。
49.作为本公开实施例一种可选的实施方式,所述写入单元具体用于通过各目标写出线程,对分配至所述各目标写出线程对应的输入队列中的目标数据包进行读取;
50.对各目标写出线程从对应的输入队列中读取的目标数据包进行拆包处理,得到各目标写出线程对应的待装载数据;
51.通过各目标写出线程,将各目标写出线程对应的待装载数据写入所述目标数据库。
52.作为本公开实施例一种可选的实施方式,所述分配单元具体用于实时获取各目标写出线程对应的输入队列的输入队列长度;
53.对比获取的各输入队列的输入队列长度,确定所述输入队列长度最短的输入队列;
54.将读取的目标数据包分配至所述输入队列长度最短的输入队列。
55.第三方面,本公开实施例提供了一种电子设备,包括:存储器和处理器,存储器用于存储计算机程序,处理器用于在调用计算机程序时执行第一方面或第一方面任一种可选的实施方式所述的数据处理方法。
56.第四方面,本公开实施例提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现第一方面或第一方面任一种可选的实施方式所述的数据处理方法。
57.本公开实施例提供一种数据处理方法、装置、电子设备和计算机可读存储介质,其中,该方法通过获取的目标读取线程在源端数据库中读取目标数据,对读取的目标数据进行处理,得到多个目标数据包;获取所述多个目标数据包对应的目标写出线程组;基于所述
目标写出线程组中的多个目标写出线程,将所述多个目标数据包中的数据写入目标数据库。在本公开实施例提供的数据处理方法中,使用了一个目标读取线程读取源端数据库中的目标数据,不用考虑目标数据是否包含多张数据表中的数据,也不需要有统一的值域范围或者日期等作为多张数据表的划分基础,因此本公开实施例提供的数据处理方法可以应用于多张数据表中的数据同时迁移的场景。且目标读取线程将目标数据进行处理形成多个目标数据包,可以简化各目标写出线程写入目标数据的过程。此外,实现将目标数据装载至目标数据库的目标写出线程有多个,加快了数据装载的速度。多个目标写出线程的应用使得在目标数据的迁移过程中,将目标数据写入目标数据库的速度和在源端数据库读取目标数据的速度相当。从而,提高了目标数据迁移的效率。
附图说明
58.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
59.为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
60.图1为本公开实施例提供的一种数据处理过程的示意图;
61.图2为本公开一个实施例提供的数据处理方法的步骤流程图;
62.图3为本公开另一个实施例提供的数据处理方法的步骤流程图;
63.图4为本公开又一个实施例提供的数据处理方法的步骤流程图;
64.图5为本公开再一个实施例提供的数据处理方法的步骤流程图;
65.图6为本公开一个实施例中数据处理装置的结构框图;
66.图7为本公开一个实施例中电子设备的内部结构图。
具体实施方式
67.为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
68.在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
69.在本公开实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本公开实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念,此外,在本公开实施例的描述中,除非另有说明,“多个”的含义是指两个或两个以上。
70.图1为本公开实施例提供的一种数据处理过程的场景示意图。图1所示的数据处理过程可应用于对存量数据进行迁移,主要通过三种类型的线程完成对存量数据的迁移,第一种线程为读取线程,包括一个目标读取线程,该目标读取线程可以从图1所示的源端数据
库读取目标数据,并将读取目标数据按照预设规则进行封装,将封装得到的多个数据包放入对应的输出队列中,作为目标数据包;第二种线程为动态分配线程,该动态分配线程可以从图1所示的目标读取线程对应的输出队列中读取目标数据包,并将读取的目标数据包放入多个输入队列中;第三种线程为写出线程,写出线程包括多个目标写出线程,各目标写出线程与输入队列一一对应,可以从对应的输入队列中读取目标数据包,将读取的目标数据包中的数据写入目标数据库。
71.需要说明的是,本公开实施例对目标写出线程的数量和输入队列的数量不做具体限定,在图1所示的场景中,以目标写出线程的数量为4,输入队列的数量为4为例进行说明,目标写出线程a从图1所示的输入队列a中读取目标数据包,目标写出线程b从图1所示的输入队列b中读取目标数据包、目标写出线程c从图1所示的输入队列c中读取目标数据包、目标写出线程d从图1所示的输入队列d中读取目标数据包,然后,四个目标写出线程并行将各自读取的目标数据包中的数据写入图1所示的目标数据库。
72.在该场景中,目标写出线程的数量可以根据目标数据的大小进行调整,目标读取线程可以不断的在源端数据库中读取目标数据,通过调整写出线程的数量,可以达到整体写入速度和读取速度相当,从而使得在源端数据库中读取目标数据的读取速度保持稳定,不会因为单线程写入的速度慢而停止读取目标数据,解决了传统数据迁移方法中,目标数据的读取速度不稳定、迁移效率低的问题。
73.图2为本公开一个实施例提供数据处理方法的步骤流程图,参照图2所示,本公开实施例提供的数据处理方法可以包括:
74.s210、获取目标读取线程,基于所述目标读取线程在源端数据库中读取目标数据。
75.所述目标数据为要进行同步或迁移的数据,源端数据库保存有同步或迁移的目标数据,本公开实施例中不对源端数据库和目标数据库的类型做限定,当所述目标数据是以数据表的形式存储于源端数据库时,所述目标数据可以是一张数据表中的数据,也可以是存在于多张数据表中的数据,所述目标数据的可以是多种不同类型的数据。在获取目标读取线程之前,还包括创建目标读取线程。
76.本公开实施例中的目标读取线程包含一条线程,所述目标读取线程为创建的用于在源端数据库中读取目标数据的线程。用一条目标读取线程读取目标数据,不用考虑目标数据是否包含多张数据表中的数据,也不需要有统一的值域范围或者日期等作为多张数据表的划分基础,因此本公开实施例提供的数据处理方法可以应用于多张数据表中的数据同时迁移的场景。
77.s220、对所述目标读取线程在源端数据库中读取的目标数据进行处理,得到多个目标数据包。
78.可选的,上述步骤s220(对所述目标读取线程在源端数据库中读取的目标数据进行处理,得到多个目标数据包)可通过以下方式来:
79.基于所述目标读取线程,对所述读取的目标数据以预设规则进行封装,得到多个封装数据包;将所述封装数据包缓存至所述目标读取线程对应的输出队列,得到所述多个目标数据包。
80.具体的,本公开实施例提供的一个目标读取线程,分配有一个对应的输出队列,用于缓存该目标读取线程读取的目标数据。目标读取线程对读取的目标数据进行封装,形成
多个封装数据包,将形成的多个封装数据包存储至对应的输出队列,将存储在该输出队列中的封装数据包作为目标写出线程读取的目标数据包,可以提高目标写出线程对数据的读取速度。
81.可选的,所述基于所述目标读取线程,对所述读取的目标数据以预设规则进行封装,得到多个封装数据包,可通过以下方式来实现:
82.获取所述读取的目标数据的数据量;根据所述预设规则和所述读取的目标数据的数据量,对所述读取的目标数据进行封装,得到多个封装数据包;其中,各封装数据包中的数据量为所述预设规则对应的预设数据量。
83.所述预设规则包括:以预设数据量的数据为一个封装数据包的数据大小对目标数据包进行封装,所述预设规则还可以包括:将所述目标数据封装成数量为预设数量的封装数据包。举例进行说明,若目标数据的大小为n,预设规则对应的预设数据量为m,一种情况下,若n的大小为m的大小的整数倍,则封装后形成的封装数据包的数量(预设数量)为n/m,每个封装数据包的数据的大小均为m;另一种情况下,n的大小不为m的大小的整数倍时,若n/m得到的值为d,d为小数,则封装数据包的数量(预设数量)为大于d的最小整数,在该情况下,有一个封装数据包对应的预设数据量为n/m所得的余数,剩余的封装数据包对应的预设数据量为m。当所述目标数据为以数据表的形式保存于源端数据库时,所述预设数据量m可以为m条数据,m条数据包括数据表中的m行数据。
84.s230、获取所述多个目标数据包对应的目标写出线程组。
85.具体的,根据目标数据的大小创建多个目标写出线程,该多个目标写出线程构成所述目标数据包对应的目标写出线程组。
86.s240、基于所述目标写出线程组中的多个目标写出线程,将所述多个目标数据包中的数据写入目标数据库。
87.可选的,所述目标写出线程的数量小于目标数据包的数量。将多个目标数据包中的数据写入目标数据库,即将多个目标数据包中的数据写进目标数据库。多个目标写出线程并行工作,将多个目标数据包中的数据写入目标数据库。本公开实施例中的目标读取线程为一个,目标写出线程为多个,该一对多的模式提高了将目标数据包中的数据写入目标数据库的速度,使得目标读取线程对目标数据的读取可以不间断的进行,解决了传统模式中数据的写入速度慢,读取线程对数据进行读取时需要等待的问题,提高了数据迁移的效率。
88.本公开实施例提供的数据处理方法,通过获取的目标读取线程在源端数据库中读取目标数据,对读取的目标数据进行处理,得到多个目标数据包;获取所述多个目标数据包对应的目标写出线程组;基于所述目标写出线程组中的多个目标写出线程,将所述多个目标数据包中的数据写入目标数据库。在本公开实施例提供的数据处理方法中,使用了一个目标读取线程读取源端数据库中的目标数据,不用考虑目标数据是否包含多张数据表中的数据,也不需要有统一的值域范围或者日期等作为多张数据表的划分基础,因此本公开实施例提供的数据处理方法可以应用于多张数据表中的数据同时迁移的场景。且目标读取线程将目标数据进行处理形成多个目标数据包,可以简化各目标写出线程写入目标数据的过程。此外,实现将目标数据装载至目标数据库的目标写出线程有多个,加快了数据装载的速度。多个目标写出线程的应用使得在目标数据的迁移过程中,将目标数据写入目标数据库
的速度和在源端数据库读取目标数据的速度相当。从而,提高了目标数据迁移的效率。
89.图3为本公开另一个实施例提供的数据处理方法的步骤流程图,结合图2所示,图3中的步骤s310至步骤s330是对步骤s240(基于所述目标写出线程组中的多个目标写出线程,将所述多个目标数据包中的数据写入目标数据库)的一种可实现方式的描述,具体的,所述基于所述目标写出线程组中的多个目标写出线程,将所述多个目标数据包中的数据写入目标数据库,可包括:
90.s310、获取所述目标写出线程组中各目标写出线程对应的输入队列。
91.具体的,每个目标写出线程分配有对应的输入队列,所述输入队列用于缓存目标数据包,各目标写出线程负责将对应的输入队列中的目标数据包中的数据写入目标数据库。
92.s320、将所述多个目标数据包分配至各目标写出线程对应的输入队列。
93.输出队列中的目标数据包被分配至多个输入队列,本公开实施例中有多个输入队列用于缓存从一个输出队列中读取的目标数据包,由于有多个输入队列,因此不会由于某一个输入队列的缓存已满而使得输出队列中的目标数据包不能继续进行分配,提高了将输出队列中的目标数据包分配至输入队列的效率。
94.s330、基于各目标写出线程,将分配至各目标写出线程对应的输入队列的目标数据包中的数据写入所述目标数据库。
95.各目标写出线程从各自对应的输入队列读取缓存的目标数据包,将读取的目标数据包中的数据写入目标数据库,多个目标写出线程同时工作,将各自读取的目标数据包中的数据写入目标数据库,提高了将目标数据写入目标数据库的效率。
96.图4为本公开又一个实施例提供的数据处理方法的步骤流程图,在图3所示步骤的基础上,图4中的步骤s410至步骤s420是对步骤320(将所述多个目标数据包分配至各目标写出线程对应的输入队列)的一种可实现方式的描述,具体的,将所述多个目标数据包分配至各目标写出线程对应的输入队列可包括:
97.s410、获取动态分配线程。
98.其中,所述动态分配线程用于对所述输出队列中的所述多个目标数据包进行读取。本公开实施例中动态分配线程与输出队列相对应。
99.s420、基于所述动态分配线程,将读取的目标数据包分配至各目标写出线程对应的输入队列。
100.可选的,所述基于所述动态分配线程,将读取的目标数据包分配至各目标写出线程对应的输入队列包括:实时获取各目标写出线程对应的输入队列的输入队列长度;对比获取的各输入队列的输入队列长度,确定所述输入队列长度最短的输入队列;将读取的目标数据包分配至所述输入队列长度最短的输入队列。
101.具体的,各目标写出线程对各自输入队列中的目标数据包的数据的写入速度不同,因此在写入的过程中,写入速度快的目标写出线程对应的输入队列中的数据包被读取的速度快,输入队列长度变短,动态分配线程实时获取各目标写出线程对应的输入队列的输入队列长度,将输出队列中的目标数据包分配至输入队列长度最短的输入队列,可以使得各目标写出线程的负载保持相对稳定,实现了根据目标写出线程的负载进行动态分配目标数据包的目的,而不是将目标数据包分配至固定的一个输入队列,提高了操作系统的稳
定性。
102.图5为本公开再一个实施例提供的数据处理方法的步骤流程图,结合图4所示,图4中的步骤s330(基于各目标写出线程,将分配至各目标写出线程对应的输入队列的目标数据包中的数据写入所述目标数据库)的具体实现步骤可包括:
103.s510、通过各目标写出线程,对分配至所述各目标写出线程对应的输入队列中的目标数据包进行读取。
104.具体的,各目标写出线程读取的是对应的输入队列中的目标数据包,由于一个数据包中包括多个数据,因此可以提高各目标写出线程从对应的输入队列中读取数据的速度,进而提高了各目标写出线程向目标数据库中写入数据的能力。
105.s520、对各目标写出线程从对应的输入队列中读取的目标数据包进行拆包处理,得到各目标写出线程对应的待装载数据。
106.所述拆包处理为对目标写出线程从对应的输入队列中读取的目标数据包进行解封装处理,所述待装载数据包括要将其写入目标数据库的数据。具体的,各目标写出线程从对应的输入队列中获取到要写入的数据对应的目标数据包时,首先对数据进行拆包处理,得到该目标数据包包含的多个数据,目标写出线程在对该目标数据包包含的多个数据进行写入时,可以是将多个数据依次进行写入,也可以是将多个数据批量进行写入,在本公开实施例中不做限制。
107.s530、通过各目标写出线程,将各目标写出线程对应的待装载数据写入所述目标数据库。
108.各目标写出线程将各自对应的待装载数据写入目标数据库,提高了目标数据的写入速度,进而,多个目标写出线程的并行工作提高了目标数据从源端数据库向目标数据库的迁移效率。
109.基于同一发明构思,作为对上述数据处理方法的实现,本公开实施例还提供了一种数据处理装置,该装置实施例与前述方法实施例对应,为便于阅读,本装置实施例不再对前述方法实施例中的细节内容进行逐一赘述,但应当明确,本实施例中的装置能够对应实现前述方法实施例中的全部内容。
110.图6为本公开实施例提供的数据处理装置的结构框图,如图6所示,本实施例提供的数据处理装置600包括:
111.获取模块610,用于获取目标读取线程,所述目标读取线程用于在源端数据库中读取目标数据。
112.处理模块620,用于基于所述目标读取线程,对所述目标读取线程在源端数据库中读取的目标数据进行处理,得到多个目标数据包。
113.所述获取模块610,还用于获取所述多个目标数据包对应的目标写出线程组。
114.装载模块630,用于基于所述目标写出线程组中的多个目标写出线程,将所述多个目标数据包中的数据写入目标数据库。
115.作为本公开实施例一种可选的实施方式,所述处理模块620包括:
116.封装单元,用于基于所述目标读取线程,对所述读取的目标数据以预设规则进行封装,得到多个封装数据包。
117.存储单元,用于将所述封装数据包缓存至所述目标读取线程对应的输出队列,得
到所述多个目标数据包。
118.作为本公开实施例一种可选的实施方式,所述封装单元具体用于获取所述读取的目标数据的数据量;根据所述预设规则和所述读取的目标数据的数据量,对所述读取的目标数据进行封装,得到所述多个封装数据包;其中,各封装数据包中的数据量为所述预设规则对应的预设数据量。
119.作为本公开实施例一种可选的实施方式,所述装载模块630包括:
120.创建单元,用于获取所述目标写出线程组中各目标写出线程对应的输入队列。
121.分配单元,用于将所述多个目标数据包分配至各目标写出线程对应的输入队列。
122.写入单元,用于基于各目标写出线程,将分配至各目标写出线程对应的输入队列的目标数据包中的数据写入所述目标数据库。
123.作为本公开实施例一种可选的实施方式,所述分配单元具体用于获取动态分配线程,所述动态分配线程用于对所述输出队列中的所述多个目标数据包进行读取;基于所述动态分配线程,将读取的目标数据包分配至各目标写出线程对应的输入队列。
124.作为本公开实施例一种可选的实施方式,所述写入单元具体用于通过各目标写出线程,对分配至所述各目标写出线程对应的输入队列中的目标数据包进行读取;对各目标写出线程从对应的输入队列中读取的目标数据包进行拆包处理,得到各目标写出线程对应的待装载数据;通过各目标写出线程,将各目标写出线程对应的待装载数据写入所述目标数据库。
125.作为本公开实施例一种可选的实施方式,所述分配单元具体用于实时获取各目标写出线程对应的输入队列的输入队列长度;对比获取的各输入队列的输入队列长度,确定所述输入队列长度最短的输入队列;将读取的目标数据包分配至所述输入队列长度最短的输入队列。
126.本实施例提供的数据处理装置可以执行上述方法实施例提供的数据处理方法,其实现原理与技术效果类似,此处不再赘述。上述数据处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
127.在一个实施例中,提供了一种电子设备,包括:一个或多个处理器;存储器;以及一个或多个计算机程序;其中一个或多个计算机程序被存储在存储器中;一个或多个处理器在执行一个或多个计算机程序时,实现以下步骤:获取目标读取线程,基于所述目标读取线程在源端数据库中读取目标数据;对所述目标读取线程在源端数据库中读取的目标数据进行处理,得到多个目标数据包;获取所述多个目标数据包对应的目标写出线程组;基于所述目标写出线程组中的多个目标写出线程,将所述多个目标数据包中的数据写入目标数据库。
128.在一个实施例中,处理器执行计算机程序时还实现以下步骤:基于所述目标读取线程,对所述读取的目标数据以预设规则进行封装,得到多个封装数据包;将所述封装数据包缓存至所述目标读取线程对应的输出队列,得到所述多个目标数据包。
129.在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取所述读取的目标数据的数据量;根据所述预设规则和所述读取的目标数据的数据量,对所述读取的目标
数据进行封装,得到所述多个封装数据包;其中,各封装数据包中的数据量为所述预设规则对应的预设数据量。
130.在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取所述目标写出线程组中各目标写出线程对应的输入队列;将所述多个目标数据包分配至各目标写出线程对应的输入队列;基于各目标写出线程,将分配至各目标写出线程对应的输入队列的目标数据包中的数据写入所述目标数据库。
131.在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取动态分配线程,所述动态分配线程用于对所述输出队列中的所述多个目标数据包进行读取;基于所述动态分配线程,将读取的目标数据包分配至各目标写出线程对应的输入队列。
132.在一个实施例中,处理器执行计算机程序时还实现以下步骤:通过各目标写出线程,对分配至所述各目标写出线程对应的输入队列中的目标数据包进行读取;对各目标写出线程从对应的输入队列中读取的目标数据包进行拆包处理,得到各目标写出线程对应的待装载数据;通过各目标写出线程,将各目标写出线程对应的待装载数据写入所述目标数据库。
133.在一个实施例中,处理器执行计算机程序时还实现以下步骤:实时获取各目标写出线程对应的输入队列的输入队列长度;对比获取的各输入队列的输入队列长度,确定所述输入队列长度最短的输入队列;将读取的目标数据包分配至所述输入队列长度最短的输入队列。
134.图7为本公开实施例提供的电子设备的结构示意图。如图7所示,本实施例提供的电子设备包括:存储器71和处理器72,存储器71用于存储计算机程序;处理器72用于调用计算机程序时执行上述方法实施例提供的数据处理方法中的步骤,其实现原理和技术效果类似,此处不再赘述。本领域技术人员可以理解,图7中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的电子设备的限定,具体的电子设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
135.本公开还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时可以实现本公开实施例提供的数据处理方法,例如,计算机程序被处理器执行时实现图2至图5任一所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
136.本实施例提供的计算机可读存储介质上存储的计算机程序,可以实现上述方法实施例提供的数据处理方法,其实现原理与技术效果类似,此处不再赘述。
137.本领域普通技术人员可以理解实现上述方法实施例中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成的,计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本公开所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,rom)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,比如静态随机存取存储器(static random access memory,sram)和动态随机存取
存储器(dynamic random access memory,dram)等。
138.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
139.以上实施例仅表达了本公开的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本公开构思的前提下,还可以做出若干变形和改进,这些都属于本公开的保护范围。因此,本公开专利的保护范围应以所附权利要求为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1