数据处理方法、装置、电子设备及介质制造方法及图纸

技术编号:37433540 阅读:14 留言:0更新日期:2023-05-05 19:48
本公开提出一种数据处理方法、装置、电子设备及介质,方法包括:从源分布式数据库中获取多条待推送数据;从至少一个目标分布式数据库的多个分表的多个虚拟分区中,确定各待推送数据所属的候选虚拟分区;从各候选虚拟分区中确定处于未推送完成状态的第一目标虚拟分区;将属于各第一目标虚拟分区的待推送数据写入对应第一目标虚拟分区的分表中;在属于任一第一目标虚拟分区的待推送数据均写入该第一目标虚拟分区的分表的情况下,将该第一目标虚拟分区的状态标记为推送完成状态。由此,在将源分布式数据库中的数据推送至目标分布式数据库的过程中,仅推送属于未推送完成状态的虚拟分区的各待推送数据,可以降低数据的重复推送量,降低资源占用。降低资源占用。降低资源占用。

【技术实现步骤摘要】
数据处理方法、装置、电子设备及介质


[0001]本公开涉及大数据
,尤其涉及一种数据处理方法、装置、电子设备及介质。

技术介绍

[0002]随着互联网技术和信息技术的不断发展,企业产生的海量的业务数据可以存储于分布式数据库(比如HIVE)中,并且,还可以对业务数据进行加工处理后,再将处理后的业务数据存储于分布式数据库中。
[0003]在很多业务场景中,需要将某一个分布式数据库(后续称为源分布式数据库)中的业务数据同步至其他分布式数据库(后续称为目标分布式数据库,比如应用数据库集群)中,以供应用服务进行统计分析和/或查询。
[0004]在待同步业务数据的数据量较大的情况下,比如数据量达到几十甚至几百亿条,经常会因为任务资源、网络、数据库服务压力等情况,而导致数据推送任务或数据同步任务重启。然而,在任务重新执行时,业务数据需要进行全量重新推送,不仅造成业务数据的重复推送,还浪费了机器资源。

技术实现思路

[0005]本公开旨在至少在一定程度上解决相关技术中的技术问题之一。
[0006]本公开提出一种数据处理方法、装置、电子设备及介质,以实现在将源分布式数据库中的数据推送至目标分布式数据库的过程中,仅推送属于未推送完成状态的虚拟分区的各待推送数据,可以避免在设备宕机或进程重启后,推送属于推送完成状态的虚拟分区的各待推送数据,可以降低数据的重复推送量,降低资源占用。
[0007]本公开第一方面实施例提出了一种数据处理方法,包括:
[0008]从源分布式数据库中获取多条待推送数据,并从至少一个目标分布式数据库的多个分表的多个虚拟分区中,确定各所述待推送数据所属的候选虚拟分区;
[0009]从各所述候选虚拟分区中确定处于未推送完成状态的第一目标虚拟分区;
[0010]将属于各所述第一目标虚拟分区的待推送数据写入对应第一目标虚拟分区的分表中;
[0011]在属于任一第一目标虚拟分区的待推送数据均写入所述任一第一目标虚拟分区的分表的情况下,将所述任一第一目标虚拟分区的状态标记为推送完成状态。
[0012]本公开第二方面实施例提出了一种数据处理装置,包括:
[0013]获取模块,用于从源分布式数据库中获取多条待推送数据;
[0014]第一确定模块,用于从至少一个目标分布式数据库的多个分表的多个虚拟分区中,确定各所述待推送数据所属的候选虚拟分区;
[0015]第二确定模块,用于从各所述候选虚拟分区中确定处于未推送完成状态的第一目标虚拟分区;
[0016]写入模块,用于将属于各所述第一目标虚拟分区的待推送数据写入对应第一目标虚拟分区的分表中;
[0017]标记模块,用于在属于任一第一目标虚拟分区的待推送数据均写入所述任一第一目标虚拟分区的分表的情况下,将所述任一第一目标虚拟分区的状态标记为推送完成状态。
[0018]本公开第三方面实施例提出了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本公开第一方面实施例提出的数据处理方法。
[0019]本公开第四方面实施例提出了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行本公开第一方面实施例提出的数据处理方法。
[0020]本公开第五方面实施例提出了一种计算机程序,包括计算机程序,所述计算机程序在被处理器执行时实现本公开第一方面实施例所述的数据处理方法。
[0021]上述本公开中的一个实施例至少具有如下优点或有益效果:
[0022]通过从源分布式数据库中获取多条待推送数据;从至少一个目标分布式数据库的多个分表的多个虚拟分区中,确定各待推送数据所属的候选虚拟分区;从各候选虚拟分区中确定处于未推送完成状态的第一目标虚拟分区;将属于各第一目标虚拟分区的待推送数据写入对应第一目标虚拟分区的分表中;在属于任一第一目标虚拟分区的待推送数据均写入该任一第一目标虚拟分区的分表的情况下,将该任一第一目标虚拟分区的状态标记为推送完成状态。由此,在将源分布式数据库中的数据推送至目标分布式数据库的过程中,仅推送属于未推送完成状态的虚拟分区的各待推送数据,可以避免在设备宕机或进程重启后,推送属于推送完成状态的虚拟分区的各待推送数据,可以降低数据的重复推送量,降低资源占用。此外,在分表的基础上引入虚拟分区,即使设备宕机或进程重启,数据重复推送量是明显低于基于分表维度的数据重推方式的,可以进一步降低数据的重复推送量,以及进一步降低资源占用。
[0023]本公开附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本公开的实践了解到。
附图说明
[0024]本公开上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
[0025]图1为本公开实施例一所提供的数据处理方法的流程示意图;
[0026]图2为本公开实施例二所提供的数据处理方法的流程示意图;
[0027]图3为本公开实施例所提供的将各待推送数据划分至各虚拟分区的过程示意图;
[0028]图4为本公开实施例所提供的数据存储过程示意图;
[0029]图5为本公开实施例所提供的数据推送流程示意图;
[0030]图6为本公开实施例三所提供的数据处理方法的流程示意图;
[0031]图7为本公开实施例四所提供的数据处理方法的流程示意图;
[0032]图8为本公开实施例五所提供的数据处理装置的结构示意图;
[0033]图9示出了适于用来实现本公开实施方式的示例性电子设备的框图。
具体实施方式
[0034]下面详细描述本公开的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本公开,而不能理解为对本公开的限制。
[0035]目前,业务数据的同步推送通常采用离线任务,连接目标分布式数据库进行数据的写入,同时采用多连接、批量写入的方式来提高数据的写入效率。
[0036]上述方式在数据量较小时,一般不会存在任何问题,但是如果数据量达到几十甚至几百亿时,经常会因任务资源、网络、数据库服务压力等情况,导致数据推送任务需要重新执行或重启。在任务重新执行时,业务数据需要进行全量重新推送。
[0037]然而数据的全量重推方式,将导致机器资源被长时间占用,造成业务数据的重复推送、资源浪费,同时全量重推方式导致任务再次执行失败的可能性大大提升。
[0038]相关技术中,通常采用以下两种方式,来实现对数据推送任务进行断点续推:
[0039]第一种方式,对已推送的业务数据记录索引标记,每写成功1条或者多条业务数据,则标记处理的索引位置。比如,假设总共有100条业务数据,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据处理方法,其特征在于,所述方法包括:从源分布式数据库中获取多条待推送数据,并从至少一个目标分布式数据库的多个分表的多个虚拟分区中,确定各所述待推送数据所属的候选虚拟分区;从各所述候选虚拟分区中确定处于未推送完成状态的第一目标虚拟分区;将属于各所述第一目标虚拟分区的待推送数据写入对应第一目标虚拟分区的分表中;在属于任一第一目标虚拟分区的待推送数据均写入所述任一第一目标虚拟分区的分表的情况下,将所述任一第一目标虚拟分区的状态标记为推送完成状态。2.根据权利要求1所述的方法,其特征在于,所述从至少一个目标分布式数据库的多个分表的多个虚拟分区中,确定各所述待推送数据所属的候选虚拟分区,包括:确定所述多条待推送数据所属的数据类型,并将所述多条待推送数据按照数据类型进行聚类,以得到至少一个聚簇;确定各所述聚簇包含的数据量,并将各所述聚簇按照对应数据量的取值由大至小排序,以得到排序序列;根据排序序列中各所述聚簇所处的位置、各所述目标分布式数据库的数据量、各所述分表的数据量和各所述虚拟分区的数据量,确定各所述聚簇中待推送数据所属的候选虚拟分区。3.根据权利要求2所述的方法,其特征在于,所述根据排序序列中各聚簇所处的位置、各所述目标分布式数据库的数据量、各所述分表的数据量和各所述虚拟分区的数据量,确定各所述聚簇中待推送数据所属的候选虚拟分区,包括:针对所述排序序列中的首个聚簇,根据各所述目标分布式数据库的数据量,从各所述目标分布式数据库中确定第一分布式数据库;根据所述第一分布式数据库中多个分表的数据量,从所述第一分布式数据库中的多个分表中确定第一分表;根据所述第一分表中多个虚拟分区的数据量,从所述第一分表中的多个虚拟分区中确定所述首个聚簇中各待推送数据所属的候选虚拟分区。4.根据权利要求3所述的方法,其特征在于,所述聚簇的个数为n个,n为大于1的正整数,所述根据排序序列中各聚簇所处的位置、各所述目标分布式数据库的数据量、各所述分表的数据量和各所述虚拟分区的数据量,确定各所述聚簇中待推送数据所属的候选虚拟分区,还包括:根据所述首个聚簇所包含的待推送数据的数据量,对所述第一分布式数据库的数据量、所述第一分表的数据量和所述首个聚簇所属的候选虚拟分区的数据量进行更新;针对所述排序序列中的第i个聚簇,根据更新后的各所述目标分布式数据库的数据量,从各所述目标分布式数据库中确定第二分布式数据库;其中,i为大于1且小于或等于n的正整数;根据所述第二分布式数据库中多个分表的数据量,从所述第二分布式数据库中的多个分表中确定第二分表;根据所述第二分表中多个虚拟分区的数据量,从所述第二分表中的多个虚拟分区中确定所述第i个聚簇中各待推送数据所属的候选虚拟分区。
5.根据权利要求2所述的方法,其特征在于,所述将属于各所述第一目标虚拟分区的待推送数据写...

【专利技术属性】
技术研发人员:刘亮
申请(专利权)人:北京京东世纪贸易有限公司
类型:发明
国别省市:

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

1