一种数据处理方法、数据处理器、目标源组件和系统

文档序号:85752 发布日期:2021-10-08 浏览:52次 >En<

阅读说明:本技术 一种数据处理方法、数据处理器、目标源组件和系统 (Data processing method, data processor, target source component and system ) 是由 邹年当 朱火庚 于 2021-07-08 设计创作,主要内容包括:本申请公开了一种数据处理方法、数据处理器、目标源组件和系统,方法包括:数据处理器在完成初始化后,接收数据源组件发送的从数据源中获取的源数据;数据处理器对源数据进行处理,并将处理后的源数据发送给目标源组件,使得目标源组件基于初始化后生成的目标源数据交换协议将处理后的源数据写入至对应的目标源,提高了数据处理效率。(The application discloses a data processing method, a data processor, a target source component and a system, wherein the method comprises the following steps: after the initialization is completed, the data processor receives source data which is sent by a data source component and acquired from the data source; the data processor processes the source data and sends the processed source data to the target source component, so that the target source component writes the processed source data into the corresponding target source based on the target source data exchange protocol generated after initialization, and the data processing efficiency is improved.)

一种数据处理方法、数据处理器、目标源组件和系统

技术领域

本申请涉及计算机

技术领域

,尤其涉及一种数据处理方法、数据处理器、目标源组件和系统。

背景技术

在计算机领域中,开发者针对不同的业务数据往往开发有不同的开源系统,而不同的系统编程模型差异较大,业务逻辑无法在各个开源系统之间进行无缝迁移,导致数据处理效率低的问题。

发明内容

本申请提供了一种数据处理方法、数据处理器、目标源组件和系统,用于改善现有的开源系统存在的数据处理效率低的技术问题。

有鉴于此,本申请第一方面提供了一种数据处理方法,包括:

所述数据处理器在完成初始化后,接收数据源组件发送的从数据源中获取的源数据;

所述数据处理器对所述源数据进行处理,并将处理后的所述源数据发送给目标源组件,使得所述目标源组件基于初始化后生成的目标源数据交换协议将处理后的所述源数据写入至对应的目标源。

可选的,所述数据处理器的初始化过程包括:

所述数据处理器从配置文件中加载目标参数和预定义数据处理规则,所述目标参数包括线程数量或网络参数;

所述数据处理器根据所述预定义数据处理规则初始化算法链,得到实例化算法链,所述实例化算法链由若干实例化的执行单元构成;

相应的,所述数据处理器对所述源数据进行处理,包括:

所述数据处理器基于所述目标参数,通过所述实例化算法链中的若干执行单元依次对所述源数据进行处理。

可选的,还包括:

所述数据处理器在出现数据堆积时,发送通知消息至所述数据源组件,使得所述数据源组件调整源数据的发送速率。

可选的,还包括:

所述数据处理器在发送处理后的所述源数据的预置时间段内,未接收到所述目标源组件反馈的确认消息时,重新发送处理后的所述源数据至所述目标源组件。

本申请第二方面提供了一种数据处理方法,包括:

目标源组件进行初始化,生成目标源数据交换协议;

所述目标源组件在接收到数据处理器发送的处理后的源数据后,基于所述目标源数据交换协议将处理后的所述源数据写入至对应的目标源;

其中,处理后的所述源数据为所述数据处理器对数据源组件发送的从数据源中获取的源数据处理后得到的。

可选的,所述目标源数据交换协议包括:写入逻辑、目标源交换协议和目标地址;

所述目标源组件在接收到数据处理器发送的处理后的源数据后,基于所述目标源数据交换协议将处理后的所述源数据写入至对应的目标源,包括:

所述目标源组件在接收到数据处理器发送的处理后的源数据后,将处理后的所述源数据放入缓冲区,使得所述目标源组件中的各个目标源实例从所述缓冲区中获取处理后的所述源数据,并基于所述目标源交换协议将处理后的所述源数据解析成对应的目标源可执行逻辑,以及根据所述写入逻辑和所述目标地址,将处理后的所述源数据写入对应的目标源。

可选的,还包括:

所述目标源组件在成功写入数据后,发送确认消息至所述数据处理器。

本申请第三方面提供了一种数据处理器,包括:

接收单元,用于在完成初始化后,接收数据源组件发送的从数据源中获取的源数据;

处理单元,用于对所述源数据进行处理,并将处理后的所述源数据发送给目标源组件,使得所述目标源组件基于初始化后生成的目标源数据交换协议将处理后的所述源数据写入至对应的目标源。

本申请第四方面提供了一种目标源组件,包括:

初始化单元,用于进行初始化,生成目标源数据交换协议;

写入单元,用于在接收到数据处理器发送的处理后的源数据后,基于所述目标源数据交换协议将处理后的所述源数据写入至对应的目标源;

其中,处理后的所述源数据为所述数据处理器对数据源组件发送的从数据源中获取的源数据处理后得到的。

本申请第五方面提供了一种数据处理系统,包括:数据源组件、第三方面所述的数据处理器和第四方面所述的目标源组件;

所述数据源组件和所述目标源组件分别与所述数据处理器通信连接。

从以上技术方案可以看出,本申请具有以下优点:

本申请提供了一种数据处理方法,包括:数据处理器在完成初始化后,接收数据源组件发送的从数据源中获取的源数据;数据处理器对源数据进行处理,并将处理后的源数据发送给目标源组件,使得目标源组件基于初始化后生成的目标源数据交换协议将处理后的源数据写入至对应的目标源。

本申请中,数据处理器在初始化后,接收数据源组件从数据源获取的源数据,可以对源数据进行统一处理,再发送至目标源组件,目标源组件可以根据初始化后生成的目标源数据交换协议将处理后的源数据传输至不同的目标源,该方法可以实现数据转换服务,从不同的数据源收集、处理和写入大量数据到指定的目的地,可以适配不同的开源系统,有助于提高数据处理效率,从而改善现有的开源系统存在的数据处理效率低的技术问题。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。

图1为本申请实施例提供的应用于数据处理器的一种数据处理方法的一个流程示意图;

图2为本申请实施例提供的应用于数据组件的一种数据处理方法的一个流程示意图;

图3为本申请实施例提供的一种数据处理系统的一个结构示意图;

图4为本申请实施例通过的数据处理系统中各个组件工作流程的一个示意图。

具体实施方式

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

为了便于理解,请参阅图1,本申请提供的一种数据处理方法的一个实施例,包括:

步骤101、数据处理器在完成初始化后,接收数据源组件发送的从数据源中获取的源数据。

数据处理器(Processor)是数据处理逻辑的统一抽象,同时提供友好的编程接口和配置化的方式实现数据处理逻辑,并实现部分高级特性。数据处理器封装了业务处理逻辑,从上游(源数据组件)接收数据,输出到下游(目标源组件)。

数据处理器在启动时,需要进行初始化,数据处理器的初始化过程包括:

数据处理器从配置文件中加载目标参数和预定义数据处理规则,目标参数包括线程数量或网络参数;

数据处理器根据预定义数据处理规则初始化算法链,得到实例化算法链,实例化算法链由若干实例化的执行单元构成。

具体的,数据处理器在初始化时,可以分为3个阶段:

首先,初始化系统级别的配置:从配置文件中加载线程数量、网络参数等,其中,配置文件为用户预先配置好的。

其次,初始化数据转换的逻辑抽象:从配置文件中加载预定义好的数据处理规则,规则包括转换、替换、映射等,以及系统可以执行的逻辑单元;所有的逻辑单元都有独立的配置,以完成实例化,例如依赖数据库配置、缓存配置等。

最后,初始化算法链,算法链由一系列逻辑单元串接而成,因此实例化的算法链由一系列实例化的执行单元组成。

数据处理器完成上述初始化后,接收源数据组件(Source)发送的源数据,其中,源数据组件在初始化后从数据源拉取源数据。

步骤102、数据处理器对源数据进行处理,并将处理后的源数据发送给目标源组件,使得目标源组件基于初始化后生成的目标源数据交换协议将处理后的源数据写入至对应的目标源。

数据处理器基于目标参数,通过实例化算法链中的若干执行单元依次对源数据进行处理。数据处理器处理完源数据,最终源数据会从实例化算法链中的第一个执行单元进入,从最后一个执行单元输出,写入至目标源组件中的各个Sink。Sink是数据落地的逻辑抽象,与外部系统进行交互,如数据库、文件系统、网络等。目标源组件可将数据同时落地到多个目的地。

目标源组件启动时,初始化缓冲组件(MQ),生成对应的目标源数据交换协议。在初始完后,接收数据处理器发送的处理后的源数据,并基于初始化后生成的目标源数据交换协议将处理后的源数据写入至对应的目标源。目标源组件中有多个Sink,目标源组件将接收到的处理后的源数据放入缓冲区,使得各个Sink从缓冲区获取数据,并根据目标源数据交换协议中的写入逻辑、目标地址和目标源交换协议,将处理后的源数据写入对应的目标源,通常以客户端的方式将数据写入远端的目标源。并且目标源组件在写入成功后,会发送确认消息至数据处理器。

进一步,数据处理器在发送处理后的源数据的预置时间段内,未接收到目标源组件反馈的确认消息时,重新发送处理后的源数据至目标源组件。

进一步,数据处理器在出现数据堆积时,发送通知消息至数据源组件,使得数据源组件调整源数据的发送速率。

本申请实施例,考虑到数据容错,当数据处理器处理完数据时,会发送相应的确认消息给数据源组件,并提供超时机制,在预置时间段内上游未接收到确认消息,上游会重新发送数据,从而保证数据不丢失。每个下游也可以定时反馈自身的处理能力,当出现数据堆积时,会被动触发背压机制,发送通知消息给上游,使得上游调整数据的发送速率,以保证系统不会崩溃。

本申请实施例中,数据处理器在初始化后,接收数据源组件从数据源获取的源数据,可以对源数据进行统一处理,再发送至目标源组件,目标源组件可以根据初始化后生成的目标源数据交换协议将处理后的源数据传输至不同的目标源,该方法可以实现数据转换服务,从不同的数据源收集、处理和写入大量数据到指定的目的地,可以适配不同的开源系统,有助于提高数据处理效率,从而改善现有的开源系统存在的数据处理效率低的技术问题。

以上为本申请提供的应用于数据处理器的一种数据处理方法的一个实施例,以下为本申请提供的应用于目标源组件的一种数据处理方法的一个实施例。

请参考图2,本申请实施例提供的一种数据处理方法,包括:

步骤201、目标源组件进行初始化,生成目标源数据交换协议。

目标源(Sink)组件启动后,需要进行初始化,具体的:

1、初始化Sink,其核心配置为Transport(目标源数据交换协议),用来生成目标源的写入逻辑、目标源交换协议和目标地址等信息。

2、初始化Sink Group,用来支持多个目标源输出,Sink Group由多个Sink组成,当使用MQ作为缓存组件时,可以利用MQ的消费组模型,实现并行地往目标源输出数据;

3、初始化缓存组件,作为数据缓冲的介质,可以是直接内存、MQ组件等,同时根据是否需要输出多个数据源来调整缓存的时间、持久化策略。

步骤202、目标源组件在接收到数据处理器发送的处理后的源数据后,基于目标源数据交换协议将处理后的源数据写入至对应的目标源,其中,处理后的源数据为数据处理器对数据源组件发送的从数据源中获取的源数据处理后得到的。

目标源组件在接收到数据处理器发送的处理后的源数据后,将处理后的源数据放入缓冲区,使得目标源组件中的各个目标源实例从缓冲区中获取处理后的源数据,并基于目标源交换协议将处理后的源数据解析成对应的目标源可执行逻辑,以及根据写入逻辑和目标地址,将处理后的源数据写入对应的目标源。

目标源组件将数据处理器发送的处理后的源数据放入缓冲区,目标源组件中的各个Sink实例(初始化后得到)从缓冲区获取数据,每个Sink实例都有对应的Transport,各Sink实例根据各自对应的Transport中的目标源交换协议将数据解析成对应的目标源可执行逻辑,例如一些SQL Statement的生成,各Sink实例然后根据对应的目标地址,执行对应的写入逻辑将数据写入对应的目标源。

进一步,目标源组件在成功写入数据后,发送确认消息至数据处理器。

进一步,目标源组件在出现数据堆积时,发送通知消息至数据处理器,使得数据处理器调整处理后的源数据的发送速率。

本申请实施例,考虑到数据容错,当目标源组件成功写入数据后,会发送相应的确认消息给数据处理器,并提供超时机制,在预置时间段内上游未接收到确认消息,上游会重新发送数据,从而保证数据不丢失。每个下游也可以定时反馈自身的处理能力,当出现数据堆积时,会被动触发背压机制,发送通知消息给上游,使得上游调整数据的发送速率,以保证系统不会崩溃。

本申请实施例中,数据处理器在初始化后,接收数据源组件从数据源获取的源数据,可以对源数据进行统一处理,再发送至目标源组件,目标源组件可以根据初始化后生成的目标源数据交换协议将处理后的源数据传输至不同的目标源,该方法可以实现数据转换服务,从不同的数据源收集、处理和写入大量数据到指定的目的地,可以适配不同的开源系统,有助于提高数据处理效率,从而改善现有的开源系统存在的数据处理效率低的技术问题。

以上为本申请提供的应用于目标源组件的一种数据处理方法的一个实施例,以下为本申请提供的一种数据处理器的一个实施例。

本申请实施例中的数据处理器,包括:

接收单元,用于在完成初始化后,接收数据源组件发送的从数据源中获取的源数据;

处理单元,用于对源数据进行处理,并将处理后的源数据发送给目标源组件,使得目标源组件基于初始化后生成的目标源数据交换协议将处理后的源数据写入至对应的目标源。

作为进一步地改进,数据处理器的初始化过程包括:

数据处理器从配置文件中加载目标参数和预定义数据处理规则,目标参数包括线程数量或网络参数;

数据处理器根据预定义数据处理规则初始化算法链,得到实例化算法链,实例化算法链由若干实例化的执行单元构成;

相应的,处理单元具体用于:

基于目标参数,通过实例化算法链中的若干执行单元依次对源数据进行处理;

将处理后的源数据发送给目标源组件,使得目标源组件基于初始化后生成的目标源数据交换协议将处理后的源数据写入至对应的目标源。

作为进一步地改进,还包括:

第一发送单元,用于在出现数据堆积时,发送通知消息至数据源组件,使得数据源组件调整源数据的发送速率。

作为进一步地改进,还包括:

第二发送单元,用于在发送处理后的源数据的预置时间段内,未接收到目标源组件反馈的确认消息时,重新发送处理后的源数据至目标源组件。

以上为本申请提供的一种数据处理器的一个实施例,以下为本申请提供的一种目标源组件的一个实施例。

本申请实施例中的目标源组件,包括:

初始化单元,用于进行初始化,生成目标源数据交换协议;

写入单元,用于在接收到数据处理器发送的处理后的源数据后,基于目标源数据交换协议将处理后的源数据写入至对应的目标源;

其中,处理后的源数据为数据处理器对数据源组件发送的从数据源中获取的源数据处理后得到的。

作为进一步地改进,目标源数据交换协议包括:写入逻辑、目标源交换协议和目标地址;

相应的,写入单元具体用于:

目标源组件在接收到数据处理器发送的处理后的源数据后,将处理后的源数据放入缓冲区,使得目标源组件中的各个目标源实例从缓冲区中获取处理后的源数据,并基于目标源交换协议将处理后的源数据解析成对应的目标源可执行逻辑,以及根据写入逻辑和目标地址,将处理后的源数据写入对应的目标源。

作为进一步地改进,还包括:

第一发送单元,用于在成功写入数据后,发送确认消息至数据处理器。

作为进一步地改进,还包括:

第二发送单元,用于在出现数据堆积时,发送通知消息至数据处理器,使得数据处理器调整处理后的源数据的发送速率。

本申请实施例还提供了一种数据处理系统,包括数据源组件、前述实施例中的数据处理器和前述实施例中的目标源组件;

数据源组件和目标源组件分别与数据处理器通信连接。

请参考图3,数据源组件(Source)负责从数据源以pull的方式拉取数据,pull的优点是可以主动进行背压机制,使系统的压力控制在可接受范围内。在初始化完成后,从数据源中获取源数据(data1、data2、data3),将源数据发送至完成初始化后的数据处理器(Processor)中。

Processor封装了业务处理逻辑,从上游接收数据,输出到下游。数据处理器对源数据进行处理后,将其发送至目标源组件中对应的Sink1、Sink2、Sink3。

Sink是数据落地的逻辑抽象,与外部系统进行交互,如数据库、文件系统、网络等。Sink1、Sink2、Sink3根据各自初始后的目标源数据交换协议将各自的数据发送至对应的目标源dest1、dest2、dest3。目标源组件可以实现并行将数据输出至多个目标源,可以提高数据处理效率。

进一步,请参考图4,考虑到数据容错,数据处理系统中的各个下游在处理完数据后,会发送相应的会发送相应的确认消息给上游,并提供超时机制,在预置时间段内上游未接收到确认消息,上游会重新发送数据,从而保证数据不丢失。每个下游也可以定时反馈自身的处理能力,当出现数据堆积时,会被动触发背压机制,发送通知消息给上游,使得上游调整数据的发送速率,以保证系统不会崩溃。

本申请实施例中的数据处理系统,用户可以自定义Source、Sink、Processor;Source、Sink、Processor都可以通过配置的方式启动运行,能满足所有的抽取、转换、加载等场景,本申请实施例中的数据处理系统,可以通过很少的配置改动即可将数据处理逻辑迁移至另一个系统,是一种通用数据处理框架,可实现数据转换服务,用于从不同的数据源收集、处理和写入大量数据到指定的数据存储端,有助于提高数据处理效率。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

本申请的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

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

以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

13页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:卫星条件指令系统及其执行方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!