数据处理方法、装置、电子设备和计算机可读存储介质制造方法及图纸

技术编号:32855455 阅读:13 留言:0更新日期:2022-03-30 19:25
本公开实施例提供一种数据处理方法、装置、电子设备和计算机可读存储介质,涉及数据处理领域。该方法通过获取的目标读取线程在源端数据库中读取目标数据,对读取的目标数据进行处理,得到多个目标数据包;获取所述多个目标数据包对应的目标写出线程组;基于所述目标写出线程组中的多个目标写出线程,将所述多个目标数据包中的数据写入目标数据库。在本公开实施例提供的数据处理方法中,使用了一个目标读取线程读取源端数据库中的目标数据,多个目标写出线程在目标数据库中进行目标数据的写入,提高了目标数据迁移的效率。提高了目标数据迁移的效率。提高了目标数据迁移的效率。

【技术实现步骤摘要】
数据处理方法、装置、电子设备和计算机可读存储介质


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

技术介绍

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

技术实现思路

[0005]为了解决上述问题,本公开提供了一种数据处理方法、装置、电子设备和计算机可读存储介质,以提高数据的迁移效率。
[0006]为了实现上述目的,本公开实施例提供技术方案如下:
[0007]第一方面,本公开实施例提供了一种数据处理方法,包括:
[0008]获取目标读取线程,基于所述目标读取线程在源端数据库中读取目标数据;
[0009]对所述目标读取线程在源端数据库中读取的目标数据进行处理,得到多个目标数据包;
[0010]获取所述多个目标数据包对应的目标写出线程组;
[0011]基于所述目标写出线程组中的多个目标写出线程,将所述多个目标数据包中的数据写入目标数据库。
[0012]作为本公开实施例一种可选的实施方式,所述对所述目标读取线程在源端数据库中读取的目标数据进行处理,得到多个目标数据包,包括:
[0013]基于所述目标读取线程,对所述读取的目标数据以预设规则进行封装,得到多个封装数据包;
[0014]将所述封装数据包缓存至所述目标读取线程对应的输出队列,得到所述多个目标数据包。
[0015]作为本公开实施例一种可选的实施方式,所述基于所述目标读取线程,对所述读
取的目标数据以预设规则进行封装,得到多个封装数据包,包括:
[0016]获取所述读取的目标数据的数据量;
[0017]根据所述预设规则和所述读取的目标数据的数据量,对所述读取的目标数据进行封装,得到所述多个封装数据包;其中,各封装数据包中的数据量为所述预设规则对应的预设数据量。
[0018]作为本公开实施例一种可选的实施方式,所述基于所述目标写出线程组中的多个目标写出线程,将所述多个目标数据包中的数据写入目标数据库,包括:
[0019]获取所述目标写出线程组中各目标写出线程对应的输入队列;
[0020]将所述多个目标数据包分配至各目标写出线程对应的输入队列;
[0021]基于各目标写出线程,将分配至各目标写出线程对应的输入队列的目标数据包中的数据写入所述目标数据库。
[0022]作为本公开实施例一种可选的实施方式,所述将所述多个目标数据包分配至各目标写出线程对应的输入队列,包括:
[0023]获取动态分配线程,所述动态分配线程用于对所述输出队列中的所述多个目标数据包进行读取;
[0024]基于所述动态分配线程,将读取的目标数据包分配至各目标写出线程对应的输入队列。
[0025]作为本公开实施例一种可选的实施方式,所述基于各目标写出线程,将分配至各目标写出线程对应的输入队列的目标数据包中的数据写入所述目标数据库,包括:
[0026]通过各目标写出线程,对分配至所述各目标写出线程对应的输入队列中的目标数据包进行读取;
[0027]对各目标写出线程从对应的输入队列中读取的目标数据包进行拆包处理,得到各目标写出线程对应的待装载数据;
[0028]通过各目标写出线程,将各目标写出线程对应的待装载数据写入所述目标数据库。
[0029]作为本公开实施例一种可选的实施方式,所述基于所述动态分配线程,将读取的目标数据包分配至各目标写出线程对应的输入队列,包括:
[0030]实时获取各目标写出线程对应的输入队列的输入队列长度;
[0031]对比获取的各输入队列的输入队列长度,确定所述输入队列长度最短的输入队列;
[0032]将读取的目标数据包分配至所述输入队列长度最短的输入队列。
[0033]第二方面,本公开实施例提供了一种数据处理装置,包括:
[0034]获取模块,用于获取目标读取线程,所述目标读取线程用于在源端数据库中读取目标数据;
[0035]处理模块,用于基于所述目标读取线程,对所述目标读取线程在源端数据库中读取的目标数据进行处理,得到多个目标数据包;
[0036]所述获取模块,还用于获取所述多个目标数据包对应的目标写出线程组;
[0037]装载模块,用于基于所述目标写出线程组中的多个目标写出线程,将所述多个目标数据包中的数据写入目标数据库。
[0038]作为本公开实施例一种可选的实施方式,所述处理模块包括:
[0039]封装单元,用于基于所述目标读取线程,对所述读取的目标数据以预设规则进行封装,得到多个封装数据包;
[0040]存储单元,用于将所述封装数据包缓存至所述目标读取线程对应的输出队列,得到所述多个目标数据包。
[0041]作为本公开实施例一种可选的实施方式,所述封装单元具体用于获取所述读取的目标数据的数据量;
[0042]根据所述预设规则和所述读取的目标数据的数据量,对所述读取的目标数据进行封装,得到所述多个封装数据包;其中,各封装数据包中的数据量为所述预设规则对应的预设数据量。
[0043]作为本公开实施例一种可选的实施方式,所述装载模块包括:
[0044]创建单元,用于获取所述目标写出线程组中各目标写出线程对应的输入队列;
[0045]分配单元,用于将所述多个目标数据包分配至各目标写出线程对应的输入队列;
[0046]写入单元,用于基于各目标写出线程,将分配至各目标写出线程对应的输入队列的目标数据包中的数据写入所述目标数据库。
[0047]作为本公开实施例一种可选的实施方式,所述分配单元具体用于获取动态分配线程,所述动态分配线程用于对所述输出队列中的所述多个目标数据包进行读取;
[0048]基于所述动态分配线程,将读取的目标数据包分配至各目标写出线程对应的输入队列。
[0049]作为本公开实施例一种可选的实施方式,所述写入单元具体用于通过各目标写出线程,对分配至所述各目标写出线程对应的输入队列中的目标数据包进行读取;
[0050]对各本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据处理方法,其特征在于,包括:获取目标读取线程,基于所述目标读取线程在源端数据库中读取目标数据;对所述目标读取线程在源端数据库中读取的目标数据进行处理,得到多个目标数据包;获取所述多个目标数据包对应的目标写出线程组;基于所述目标写出线程组中的多个目标写出线程,将所述多个目标数据包中的数据写入目标数据库。2.根据权利要求1所述的方法,其特征在于,所述对所述目标读取线程在源端数据库中读取的目标数据进行处理,得到多个目标数据包,包括:基于所述目标读取线程,对所述读取的目标数据以预设规则进行封装,得到多个封装数据包;将所述封装数据包缓存至所述目标读取线程对应的输出队列,得到所述多个目标数据包。3.根据权利要求2所述的方法,其特征在于,所述基于所述目标读取线程,对所述读取的目标数据以预设规则进行封装,得到多个封装数据包,包括:获取所述读取的目标数据的数据量;根据所述预设规则和所述读取的目标数据的数据量,对所述读取的目标数据进行封装,得到所述多个封装数据包;其中,各封装数据包中的数据量为所述预设规则对应的预设数据量。4.根据权利要求1所述的方法,其特征在于,所述基于所述目标写出线程组中的多个目标写出线程,将所述多个目标数据包中的数据写入目标数据库,包括:获取所述目标写出线程组中各目标写出线程对应的输入队列;将所述多个目标数据包分配至各目标写出线程对应的输入队列;基于各目标写出线程,将分配至各目标写出线程对应的输入队列的目标数据包中的数据写入所述目标数据库。5.根据权利要求4所述的方法,其特征在于,所述将所述多个目标数据包分配至各目标写出线程对应的输入队列,包括:获取动态分配线程,所述动态分配线程用于对所述输出队列中的所述多个目标数据包进行读取;基于所述动态...

【专利技术属性】
技术研发人员:王凯龙
申请(专利权)人:北京人大金仓信息技术股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1