掌桥专利:专业的专利平台
掌桥专利
首页

数据处理方法、ETL系统、服务器及存储介质

文献发布时间:2023-06-19 09:33:52


数据处理方法、ETL系统、服务器及存储介质

技术领域

本申请涉及数据处理技术领域,具体而言,涉及一种数据处理方法、ETL系统、服务器及存储介质。

背景技术

ETL(Extract-Transform-Load,数据仓库)技术能够将业务系统的数据从源端设备经过抽取、转换之后加载到目的端设备,从而将一些分散、零乱以及标准不统一的数据进行整合。

其中,当ETL运行不稳定,ETL可以重新启动,并在上一次数据处理的基础上,继续进行数据处理,以实现数据连续的整合。

然而,当ETL在重新启动后,可能对一些数据重复处理或者是丢失部分数据,导致数据处理精确度较低。

发明内容

本申请的目的在于提供一种数据处理方法、ETL系统、服务器及存储介质,能够避免重复对已加载成功的数据重新加载,也不会丢弃数据,提高了数据处理的精确度。

为了实现上述目的,本申请采用的技术方案如下:

第一方面,本申请提供一种数据处理方法,应用于运行ETL系统的服务器,所述ETL系统用于将数据从源端设备加载至目的端设备;所述方法包括:

针对从所述源端设备提取的多个目标数据,创建并保存每一个所述目标数据各自对应的数据操作信息;

将每一个所述目标数据进行转换处理,并将每一个转换后的目标数据加载至所述目的端设备;

针对被成功加载至所述目的端设备的转换后的目标数据,将该目标数据对应的数据操作信息删除。

第二方面,本申请提供一种ETL系统,所述ETL系统用于将数据从源端设备加载至目的端设备;其中:

所述ETL系统具体用于,针对从所述源端设备提取的多个目标数据,创建并保存每一个所述目标数据各自对应的数据操作信息;

所述ETL系统还用于,将每一个所述目标数据进行转换处理,并将每一个转换后的目标数据加载至所述目的端设备;

所述ETL系统还用于,针对被成功加载至所述目的端设备的转换后的目标数据,将该目标数据对应的数据操作信息删除。

第三方面,本申请提供一种服务器,所述服务器包括存储器,用于存储一个或多个程序;处理器;当所述一个或多个程序被所述处理器执行时,实现上述的数据处理方法。

第四方面,本申请提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述的数据处理方法。

本申请提供的一种数据处理方法、ETL系统、服务器及存储介质,ETL系统针对从源端设备提取的多个目标数据,通过创建并保存每一个目标数据各自对应的数据操作信息,从而在将每一个目标数据进行转换处理,并将每一个转换后的目标数据加载至目的端设备后,ETL系统针对被成功加载至目的端设备转换后的目标数据,将该目标数据对应的数据操作信息删除,使得当ETL系统重新启动,ETL系统可以根据剩余保存的数据操作信息,将该保存的数据操作信息所对应的目标数据重新整合加载,而无需对该批次的所有数据重新整合加载,避免重复对已加载成功的数据重新加载;也不会丢弃该批次的部分数据,造成目的端设备数据丢失,从而提高了数据处理的精确度。

为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它相关的附图。

图1示出本申请提供的ETL系统的一种示意性架构图。

图2示出本申请提供的服务器的一种示意性结构框图。

图3示出本申请提供的数据处理方法的一种示意性流程图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请的一些实施例中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请的组件可以以各种不同的配置来布置和设计。

因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请选定的一些实施例。基于本申请中的一部分实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

在例如上述的利用ETL系统将源端设备的数据整合加载至目的端设备的场景中,ETL系统可以按批次顺序,在同一批次将多个数据进行整合。

其中,由于ETL系统可能出现进程崩溃,运行ETL系统的服务器也可能出现宕机等情况,使得ETL系统可能重新启动,需要重新从源端设备获取数据,并整合加载至目的端设备。

为了避免ETL将所有的数据重新从源端设备整合加载至目的端设备,ETL系统从源端设备抽取数据的过程中,可以记录最后运行元数据(last run metadata),当ETL系统重新启动,ETL系统可以根据记录的最后运行元数据,重新将该批次的数据整合加载至目的端设备。

然而,由于ETL系统可能在整合数据的过程中重新启动,使得ETL系统在重新启动后,若基于记录的最后运行元数据,对该批次重新加载,则对该批次的部分数据在进行处理时,可能存在重复加载的情况;而若基于该最后运行元数据,对下一批次的数据重新开始加载,则可以导致该批次的部分数据未被处理,从而使目的端设备丢失部分数据,造成数据处理的精确度较低。

为此,基于上述一些实施方式的至少部分缺陷,本申请提供的一些可能的实施方式为:ETL系统针对从源端设备提取的多个目标数据,通过创建并保存每一个目标数据各自对应的数据操作信息,从而在将每一个目标数据进行转换处理,并将每一个转换后的目标数据加载至目的端设备后,ETL系统针对被成功加载至目的端设备转换后的目标数据,将该目标数据对应的数据操作信息删除,使得当ETL系统重新启动,ETL系统可以根据剩余保存的数据操作信息,将该保存的数据操作信息所对应的目标数据重新整合加载,而无需对该批次的所有数据重新整合加载,避免重复对已加载成功的数据重新加载;也不会丢弃该批次的部分数据,造成目的端设备数据丢失,从而提高了数据处理的精确度。

下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。

请参阅图1,图1示出本申请提供的ETL系统的一种示意性架构图,该ETL系统可以包括有数据提取模块(Extractor Manager)、数据转换模块(Transformer Manager)以及数据加载模块(Loader Manager);通过执行数据提取模块、数据转换模块以及数据加载模块各自对应的功能模块,可以实现本申请所提供的数据处理方法。

请参阅图2,图2示出本申请提供的服务器100的一种示意性结构框图,服务器100可以包括存储器101、处理器102和通信接口103,该存储器101、处理器102和通信接口103相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。

存储器101可用于存储软件程序及模块,如本申请提供的ETL系统对应的程序指令/模块,处理器102通过执行存储在存储器101内的软件程序及模块,从而执行各种功能应用以及数据处理,以运行本申请提供的ETL系统,进而执行本申请提供的数据处理方法的步骤。该通信接口103可用于与其他节点设备进行信令或数据的通信。

其中,存储器101可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-OnlyMemory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除可编程只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。

处理器102可以是一种集成电路芯片,具有信号处理能力。该处理器102可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(NetworkProcessor,NP)等;还可以是数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

可以理解的是,图2所示的结构仅为示意,服务器100还可以包括比图2中所示更多或者更少的组件,或者具有与图2所示不同的配置。图2中所示的各组件可以采用硬件、软件或其组合实现。

下面以运行有如图1所示的ETL系统的服务器作为示例性执行主体,对本申请提供的数据处理方法进行示意性说明。

请参阅图3,图3示出本申请提供的数据处理方法的一种示意性流程图,在一些可能的实施方式中,该数据处理方法可以包括以下步骤:

步骤201,针对从源端设备提取的多个目标数据,创建并保存每一个目标数据各自对应的数据操作信息。

步骤203,将每一个目标数据进行转换处理,并将每一个转换后的目标数据加载至目的端设备。

步骤205,针对被成功加载至目的端设备的转换后的目标数据,将该目标数据对应的数据操作信息删除。

在一些实施例中,结合图1所示,ELT系统在将数据从源端设备整合加载至目的端设备的过程中,ETL系统可以按批次从源端设备获取数据进行整合处理;其中,ETL系统从源端设备提取的同一处理批次数据中,可以包含有多个目标数据,ETL系统可以创建并保存每一个目标数据各自对应的数据操作信息,该数据操作信息可以用于指示ETL系统正在处理的对象数据。

比如,在本申请一些可能的实施方式中,ETL系统可以创建并保存每一个目标数据各自对应的数据快照作为每一个目标数据各自对应的数据操作信息;或者是,ETL系统也可以根据每一个目标数据各自的数据批次号,以及数据批次中的序列号,创建并保存每一个目标数据各自对应的数据验证码作为每一个目标数据各自对应的数据操作信息;本申请对于数据操作信息的实现方式不进行限定。

接下来,ETL系统可以将每一个目标数据进行转换处理,并将每一个转换后的目标数据加载至目的端设备。

其中,需要说明的是,在一些可能的场景中,ETL系统在进行数据的整合处理的过程中,可以启用多个线程,并行地各个目标数据进行处理。因此,在执行步骤203的过程中,各个目标数据的转换过程可以是相互独立的,也就是说,任意两个目标数据的转换处理过程并没有必然的先后顺序,针对其中一个目标数据,ETL系统在创建并保存该目标数据对应的数据操作信息后,ETL系统即可以执行转换该目标数据的操作,并将转换后的目标数据加载至目的端设备。

然后,针对每一个被成功加载至目的端设备的转换后的目标数据,ETL系统可以将该目标数据对应的数据操作信息删除,以指示对应的目标数据已成功转换并加载至目的端设备。

如此,在本申请的一些实施方式中,当ETL系统重新启动,ETL系统可以根据剩余保存的数据操作信息,将该保存的数据操作信息所对应的目标数据重新整合加载,而无需对该批次的所有数据重新整合加载,避免重复对已加载成功的数据重新加载;也不会丢弃该批次的部分数据,造成目的端设备数据丢失,从而提高了数据处理的精确度。

其中,结合图1所示,在一些可能的实施方式中,ETL系统的架构中可以包括有数据提取模块、数据转换模块以及数据加载模块;另外,还可以为数据提取模块创建第一阻塞队列(Block Queue),以及为数据转换模块创建第二阻塞队列,其中,第一阻塞队列可以用于对数据提取模块所提取的数据进行保存,而第二阻塞队列则可以用于对数据转换模块所转换结束的数据进行保存。

基于此,ETL系统在执行步骤201的过程中,可以由数据提取模块从源端设备提取多个目标数据,并由于数据提取模块创建并保存每一个所述目标数据各自对应的数据操作信息后,将每一个所述目标数据添加至第一阻塞队列。

并且,ETL系统在执行步骤203的过程中,可以由数据转换模块执行将每一个目标数据进行转换处理的操作,即:由数据转换模块从第一阻塞队列获取目标数据,并将获取的每一个目标数据进行转换处理后,将转换后的目标数据添加至第二阻塞队列。

另外,ETL系统在执行步骤203的过程中,还可以由数据加载模块执行将每一个转换后的目标数据加载至目的端设备的操作,即:由数据加载模块从第二阻塞队列获取转换后的目标数据,并将每一个转换后的目标数据加载至目的端设备。

并且,ETL系统在执行205的过程中,可以由数据加载模块针对被成功加载至目的端设备的转换后的目标数据,将该目标数据对应的数据操作信息删除。

其中,在一些实施例中,针对ETL系统所维护的数据操作信息,ETL系统可以创建一暂存区(Staging Area),从而将创建的数据操作信息保存至该暂存区,并在执行步骤205的过程中,从将暂存区中保存的数据操作信息进行删除。

另外,结合图1所示的ETL系统架构示意图可知,ETL系统在将数据从源端设备整合加载至目的端设备的过程中,可以包含有将数据从源端设备提取至第一阻塞队列,以及从第一阻塞队列提取数据进行转换,并将转换后的数据添加至第二阻塞队列两个内部处理流程,还包括有将第二阻塞队列中的数据加载至目的端设备的外部处理流程。

因此,当ETL系统重新启动,则可能需要继续执行从第一阻塞队列获取数据进行转换的操作,也有可能继续执行从第二阻塞队列获取数据加载至目的端设备的操作。

基于此,为了提升数据处理的精细度,在本申请一些实施方式中,上述的数据操作信息可以包括第一数据快照和第二数据快照,其中,第一数据快照可以用于指示对应的目标数据处于从源端设备提取至第一阻塞队列的状态,第二数据快照可以用于指示对应的目标数据处于经过数据转换并被保存至第二阻塞队列的状态。

因此,ETL系统在执行步骤201的过程中,可以创建并包括每一个目标数据各自对应的第一数据快照,以指示对应的目标数据已经处于从源端设备提取至第一阻塞队列的状态。

接下来,ETL系统在执行步骤203的过程中,可以在将每一个目标数据进行转换处理,并在转换成功后,创建并保存每一个转换成功后的目标数据各自对应的第二数据快照,且删除该目标数据对应的第一数据快照,然后将每一个转换后的目标数据加载至目的端设备。

也就是说,当ETL系统从第一阻塞队列获取目标数据,并将每一个目标数据进行转换处理成功后,ETL系统可以创建并保存该转换成功的目标数据对应的第二数据快照,以指示该转换成功的目标数据当前处于经过数据转换并被保存至第二阻塞队列的状态;并且,当ETL系统成功将目标数据进行转换,并将转换后的目标数据添加至第二阻塞队列,则ETL系统可以删除该目标数据对应的第一数据快照。

另外,ETL系统在执行步骤205的过程中,可以针对被成功加载至目的端设备的转换后的目标数据,将该转换成功的目标数据对应的第二数据快照删除,以指示数据转换加载完成。

需要说明的是,在例如图1所示的场景中,上述保存的所有第一数据快照和所有第二数据快照,可以保存在暂存区相同的操作空间中,也可以保存在不同的操作空间中。

并且,基于上述配置的第一数据快照和第二数据快照,当ETL系统重新启动,则ETL系统可以读取暂存区保存的所有的第一数据快照和所有的第二数据快照,恢复对目标数据的处理。

其中,针对保存的第一数据快照,ETL系统可以将每一个保存的第一数据快照所对应的目标数据进行转换处理;也就是说,针对保存的第一数据快照,当ETL系统重新启动,ETL系统可以从暂存区中读取保存的第一数据快照,该保存的第一数据快照可以用于指示对应的数据处于从源端设备提取至第一阻塞队列的状态,则ETL系统可以从第一阻塞队列中获取每一个保存的第一数据快照所对应的目标数据,并将获取的目标数据进行转换处理,且继续执行后续创建并保存对应的第二数据快照的步骤。

另外,针对保存的第二数据快照,ETL系统可以将每一个保存的第二数据快照所对应的目标数据加载至目的端设备;也就是说,针对保存的第二数据快照,当ETL系统重新启动,ETL系统可以从暂存区中读取保存的第二数据快照,该保存的第二数据快照可以用于指示对应的目标数据处于经过数据转换并被保存至第二阻塞队列的状态,则ETL系统可以从第二阻塞队列中获取每一个保存的第二数据快照所对应的目标数据,并将获取的目标数据加载至目的端设备,以完成数据的整合加载。

另外,基于与本申请提供的上述数据处理方法相同的发明构思,本申请还提供一种如图1所示的ETL系统,所述ETL系统用于将数据从源端设备加载至目的端设备;其中:

所述ETL系统具体用于,针对从所述源端设备提取的多个目标数据,创建并保存每一个所述目标数据各自对应的数据操作信息;

所述ETL系统还用于,将每一个所述目标数据进行转换处理,并将每一个转换后的目标数据加载至所述目的端设备;

所述ETL系统还用于,针对被成功加载至所述目的端设备的转换后的目标数据,将该目标数据对应的数据操作信息删除。

可选地,作为一种可能的实施方式,所述数据操作信息包括第一数据快照和第二数据快照;

所述ETL系统在创建并保存每一个所述目标数据各自对应的数据操作信息时,具体用于:

创建并保存每一个所述目标数据各自对应的第一数据快照;

所述ETL系统在将每一个所述目标数据进行转换处理,并将每一个转换后的目标数据加载至所述目的端设备时,具体用于:

将每一个所述目标数据进行转换处理,并在转换成功后,创建并保存每一个所述转换成功后的目标数据各自对应的第二数据快照,且删除该目标数据对应的第一数据快照;

将每一个转换后的目标数据加载至所述目的端设备;

所述ETL系统在针对被成功加载至所述目的端设备的转换后的目标数据,将该目标数据对应的数据操作信息删除时,具体用于:

针对被成功加载至所述目的端设备的转换后的目标数据,将该转换后的目标数据对应的第二数据快照删除。

可选地,作为一种可能的实施方式,当所述ETL系统重新启动,所述ETL系统还用于:

针对保存的第一数据快照,将每一个保存的第一数据快照所对应的目标数据进行转换处理;

针对保存的第二数据快照,将每一个保存的第二数据快照所对应的目标数据加载至所述目的端设备。

可选地,作为一种可能的实施方式,所述ETL系统包括数据提取模块、数据转换模块以及数据加载模块;

所述数据提取模块用于,从所述源端设备提取多个目标数据,创建并保存每一个所述目标数据各自对应的数据操作信息后,将每一个所述目标数据添加至第一阻塞队列;

所述数据转换模块用于,所述数据转换模块从所述第一阻塞队列获取目标数据,并将获取的每一个所述目标数据进行转换处理后,将转换后的目标数据添加至第二阻塞队列;

所述数据加载模块用于,从所述第二阻塞队列获取转换后的目标数据,并将每一个转换后的目标数据加载至所述目的端设备;以及,

针对被成功加载至所述目的端设备的转换后的目标数据,将该目标数据对应的数据操作信息删除。

在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的一些实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。

也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。

也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本申请的一些实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请的一些实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅为本申请的部分实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其它的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。

相关技术
  • 数据处理方法、ETL系统、服务器及存储介质
  • 一种ETL任务执行方法、系统、装置、服务器及存储介质
技术分类

06120112210111