CN114328695A - Etl数据处理方法、装置、计算设备及存储介质 - Google Patents
Etl数据处理方法、装置、计算设备及存储介质 Download PDFInfo
- Publication number
- CN114328695A CN114328695A CN202111670383.XA CN202111670383A CN114328695A CN 114328695 A CN114328695 A CN 114328695A CN 202111670383 A CN202111670383 A CN 202111670383A CN 114328695 A CN114328695 A CN 114328695A
- Authority
- CN
- China
- Prior art keywords
- data
- operator
- etl
- processing
- data processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种ETL数据处理方法、装置、计算设备及存储介质,其中方法包括:确定需进行数据处理的ETL处理流程;根据预先生成的算子库,获取实现所述ETL处理流程所需的算子及算子间的编排顺序;其中,所述算子库包括多个基于不同处理逻辑生成的算子;为每一个算子关联配置对应的业务规则,得到与每一个算子一一对应的各数据处理任务;根据所述编排顺序,按顺序执行得到的各数据处理任务。本方案,如果处理逻辑或者所需处理的数据结构发生变更,只需变更所需的算子并关联配置对应的业务规则即可,且算子存储在算子库中可被复用,无需重新进行全编码,从而降低人力成本,且可以快速实现数据处理,降低了数据处理的延迟性。
Description
技术领域
本发明实施例涉及数据处理技术领域,特别涉及一种ETL数据处理方法、装置、计算设备及存储介质。
背景技术
ETL(Extract-Transform-Load,数据仓库技术)是用来描述将数据从来源端经过抽取、转换、加载至目的端的过程。随着Spark、Flink等ETL相关技术的横空出世,原始Mapreduce已被扫入历史角落。但是,不管是Spark还是Flink的数据处理框架,在ETL数据处理过程中,均需要将ETL的数据处理流程固化为ETL代码,若处理逻辑发生变更,或者所处理的数据结构发生变更后,均需要开发人员进行ETL代码的修改、打包以及重新部署。这对技术人员的技术门槛要求较高,不仅人力成本高,且生效周期长、延迟性高。
发明内容
基于现有技术中人力成本高、延迟性高等问题,本发明实施例提供了一种ETL数据处理方法、装置、计算设备及存储介质,能够降低人力成本和延迟性。
第一方面,本发明实施例提供了一种ETL数据处理方法,包括:
确定需进行数据处理的ETL处理流程;
根据预先生成的算子库,获取实现所述ETL处理流程所需的算子及算子间的编排顺序;其中,所述算子库包括多个基于不同处理逻辑生成的算子;
为每一个算子关联配置对应的业务规则,得到与每一个算子一一对应的各数据处理任务;
根据所述编排顺序,按顺序执行得到的各数据处理任务。
优选地,所述根据预先生成的算子库,获取实现所述ETL处理流程所需的算子,包括:
确定实现所述ETL处理流程所需的目标算子;
查找所述算子库,将所述算子库中存在的目标算子从所述算子库中获取,针对所述算子库中不存在的目标算子,则根据所述ETL处理流程生成该不存在的目标算子。
优选地,所述根据所述ETL处理流程生成该不存在的目标算子,包括:
确定该不存在的目标算子对应所述ETL处理流程的ETL子处理流程;
确定所述ETL子处理流程对应的处理逻辑以及该处理逻辑依据的业务规则;
将该处理逻辑依据的业务规则确定为可变参数;
根据所述可变参数对该处理逻辑进行编码;
对所述编码进行封装得到该处理逻辑对应的算子;其中,所述编码中包含所述可变参数。
优选地,所述为每一个算子关联配置对应的业务规则,包括:
确定算子中的可变参数,根据所述ETL处理流程确定该可变参数关联的业务规则,并将确定的业务规则确定为对应的可变参数。
优选地,按照各ETL阶段的先后顺序,所述ETL处理流程可被划分为源数据读取流程、数据处理流程和数据输出流程;
其中,所述源数据读取流程的数量为至少一个,当所述源数据读取流程的数量为两个以上时,该两个以上的所述源数据读取流程为并列关系;和/或,所述数据输出流程的数量为至少一个,当所述数据输出流程的数量为两个以上时,该两个以上的所述数据输出流程为并列关系。
优选地,所述ETL数据处理方法是基于开源流处理框架实现的,所述数据处理流程处理的数据均为流数据。
优选地,所述源数据读取流程可用于读取批数据并将所述批数据转换为流数据;
和/或,
所述源数据读取流程从数据总线读取数据,所述数据输出流程将处理后的数据输出至所述数据总线中。
第二方面,本发明实施例还提供了一种ETL数据处理装置,包括:
流程确定单元,用于确定需进行数据处理的ETL处理流程;
算子获取单元,用于根据预先生成的算子库,获取实现所述ETL处理流程所需的算子及算子间的编排顺序;其中,所述算子库包括多个基于不同处理逻辑生成的算子;
关联配置单元,用于为每一个算子关联配置对应的业务规则,得到与每一个算子一一对应的各数据处理任务;
任务处理单元,用于根据所述编排顺序,按顺序执行得到的各数据处理任务。
第三方面,本发明实施例还提供了一种计算设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时,实现本说明书任一实施例所述的方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行本说明书任一实施例所述的方法。
本发明实施例提供了一种ETL数据处理方法、装置、计算设备及存储介质,通过预先基于不同处理逻辑生成对应的算子存储到算子库中,当需要进行ETL数据处理时,只需根据ETL处理流程确定所需的算子以及算子间的编排顺序,然后给算子关联配置上对应的业务规则,则可以得到用于实现RTL处理流程的数据处理任务。可见,如果处理逻辑或者所需处理的数据结构发生变更,只需变更所需的算子并关联配置对应的业务规则即可,且算子存储在算子库中可被复用,无需重新进行全编码,从而降低人力成本,且可以快速实现数据处理,降低了数据处理的延迟性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的一种ETL数据处理方法流程图;
图2是本发明一实施例提供的一种整体的ETL处理流程图;
图3是本发明一实施例提供的一种单进单出处理模型示意图;
图4是本发明一实施例提供的一种单进多出处理模型示意图;
图5是本发明一实施例提供的一种多进单出处理模型示意图;
图6是本发明一实施例提供的一种多进多出处理模型示意图;
图7是本发明一实施例提供的一种计算设备的硬件架构图;
图8是本发明一实施例提供的一种ETL数据处理装置结构图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如前所述,现有的ETL数据处理过程,均需要将ETL处理流程固化为ETL代码,若处理逻辑发生变更,或者所处理的数据结构发生变更,再或者处理逻辑所依据的,均需要开发人员进行ETL代码的修改、打包以及重新部署。这对技术人员的技术门槛要求较高,不仅人力成本高,且生效周期长、延迟性高。可见,现有技术中,将ETL处理流程固化得到的ETL代码是无法复用的,发生变更后全部ETL代码均需要进行修改。若能够对ETL代码进行复用,则可以大大降低人力成本。考虑到ETL处理流程发生变更一般是处理逻辑、处理逻辑的业务规则、所需处理的数据结构发生变更,若想对ETL代码进行复用,则可以考虑将处理逻辑以及处理逻辑对应的业务规则从ETL处理流程中拆分出来,然后将处理逻辑抽象为可被复用的算子,将业务规则作为对算子的关联配置,从而将处理逻辑与业务规则关联起来,形成完整的数据处理任务。
下面描述以上构思的具体实现方式。
请参考图1,本发明实施例提供了一种ETL数据处理方法,该方法包括:
步骤100,确定需进行数据处理的ETL处理流程;
步骤102,根据预先生成的算子库,获取实现所述ETL处理流程所需的算子及算子间的编排顺序;其中,所述算子库包括多个基于不同处理逻辑生成的算子;
步骤104,为每一个算子关联配置对应的业务规则,得到与每一个算子一一对应的各数据处理任务;
步骤106,根据所述编排顺序,按顺序执行得到的各数据处理任务。
本发明实施例中,通过预先基于不同处理逻辑生成对应的算子存储到算子库中,当需要进行ETL数据处理时,只需根据ETL处理流程确定所需的算子以及算子间的编排顺序,然后给算子关联配置上对应的业务规则,则可以得到用于实现RTL处理流程的数据处理任务。可见,如果处理逻辑或者所需处理的数据结构发生变更,只需变更所需的算子并关联配置对应的业务规则即可,且算子存储在算子库中可被复用,无需重新进行全编码,从而降低人力成本,且可以快速实现数据处理,降低了数据处理的延迟性。
下面描述图1所示的各个步骤的执行方式。
首先,针对步骤100,确定需进行数据处理的ETL处理流程。
请参考图2,为整体的ETL处理流程。其中,源数据读取阶段(Source)从源端读取数据,将数据输出至数据处理阶段(Processors),Processors对数据进行数据处理,之后将处理后的数据输出至数据输出阶段(Sink),Sink将处理后的数据输出至目的端。
可见,在每一个ETL阶段均包括对应的处理流程。因此,本发明一个实施例中,按照各ETL阶段的先后顺序,所述ETL处理流程可被划分为源数据读取流程、数据处理流程和数据输出流程。
其中,所述源数据读取流程的数量可以为至少一个;当所述源数据读取流程的数量为两个以上时,该两个以上的所述源数据读取流程为并列关系。
和/或,所述数据输出流程的数量也可以为至少一个;当所述数据输出流程的数量为两个以上时,该两个以上的所述数据输出流程为并列关系。
根据上述源数据读取流程和数据输出流程的组合方式,该ETL处理流程可以得到如下四种处理模型:
第一种、单进单出
请参考图3,在单进单出模式下,该源数据读取流程和数据输出流程的数量均为一个。通过将单个数据源作为Source的数据流输入,以数据流形式输出到Processors的队列中进行数据处理,处理结束后,作为数据流输出到Sink,再由Sink完成落盘或者向下游输出。用于单数据源单输出的场景,例如,安全数据场景中的安全数据处理的告警以及回吐。
第二种、单进多出
请参考图4,在单进多出模式下,该源数据读取流程的数量为一个,数据输出流程的数量为多个。通过将单个数据源作为Source的数据流输入,以数据流形式输出到Processors的队列中进行数据处理,处理结束后,作为数据流输出到多个Sink,再由各Sink完成落盘或者向下游输出。用于单数据源多输出的场景,例如,安全数据场景中安全数据处理后,需要将数据或者告警下发到多个不同载体的安全平台或者工单平台。
第三种、多进单出
请参考图5,在多进单出模式下,该源数据读取流程的数量为多个,数据输出流程的数量为一个。通过将多个数据源作为Source的数据流输入,以数据流形式输出到Processors的队列中进行数据处理,处理结束后,作为数据流输出到单个Sink,再由Sink完成落盘或者向下游输出。用于多数据源单输出的场景,例如,安全数据场景中汇集多个平台设备的数据信息,通过汇总处置后,上报到态势感知平台。
第四种、多进多出
请参考图6,在多进多出模式下,该源数据读取流程和数据输出流程的数量均为多个。通过将多个数据源作为Source数据流输入,以数据流形式输出到Processors的队列中进行数据处理,处理结束后,作为数据流输出到多个Sink,再由多个Sink分别完成落盘或者向下游输出。用于多数据源多输出的场景,例如,安全数据场景中汇集多个平台设备的数据信息,通过汇总处置后,上报到态势感知平台,同时还需要将其进行阶段性留档落盘或者下放到其他的平台设备或者缓存空间。
在本发明一个实施例中,为了提高ETL数据处理的吞吐量,降低数据处理延迟,所述ETL数据处理方法是基于开源流处理框架实现的,所述数据处理流程处理的数据均为流数据。
对于ETL相关技术中,Spark是针对批数据进行处理的框架,Flink是针对流数据进行处理的框架。其中,Flink是以固定的缓存块为单位进行网络数据传输的,用户可以通过缓存块超时值指定缓存块的传输时机,如果缓存块的超时值为0,此时系统可以获得最低的处理延迟,如果缓存块的超时值为无限大,此时系统可以获得最高的吞吐量。
可见,Flink是目前开源社区中唯一一套集高吞吐、低延迟、高性能三者于一身的分布式流式数据处理框架。因此,本发明一个实施例中,ETL数据处理方法是基于开源流处理框架Flink来实现的。该ETL数据处理方法继承了Flink高性能读写的特点,保证了流式数据处理中的低延迟的要求。同时比起流式计算框架Apache Storm只能支持低延迟和高性能,无法满足高吞吐的特性,Flink对高吞吐的支持,也是该ETL数据处理方法选用基于Flink设计的原因。
在本发明一个实施例中,所述源数据读取流程从数据总线读取数据,所述数据输出流程将处理后的数据输出至所述数据总线中。即该ETL数据处理方法基于流水线模型,即源端和目的端均为数据总线,数据由数据总线中来,到数据总线去。其中,该数据总线是指用于承载所有流式数据的载体或数据流。
其中,可以针对ETL处理流程的多个数据处理任务,包括但不限于过滤器、对象构造、分类器、数据富化器等,最终处理的数据回到数据总线中,保证数据从数据总线来,到数据总线去,保证数据的完整性。同时可以由多个进程,对数据总线中的数据进行利用,保证处理流程的灵活性。
举例来说,源端的数据总线为Kafka,其中Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据,在对Kafka中输出的流数据进行数据处理后,可以将处理后的流数据输出存储至Kafka中,使得Kafka中存储有各种处理状态的流数据,当某一个平台或系统需要获取多种处理状态的流数据时,可以同时从Kafka中一并读取出来。若该多种处理状态的流数据分别落盘至不同的仓库、数据库中,那么则需针对不同仓库数据库分别采用不同读取方式分别读取每一种处理状态的数据,灵活性较低。
然后针对步骤102“根据预先生成的算子库,获取实现所述ETL处理流程所需的算子及算子间的编排顺序;其中,所述算子库包括多个基于不同处理逻辑生成的算子”和步骤104“为每一个算子关联配置对应的业务规则,得到与每一个算子一一对应的各数据处理任务”同时进行说明。
其中,算子库可以是预先生成的,也可以是在针对不同ETL处理流程生成对应算子之后,将算子存储到算子库中形成的。
在本发明一个实施例中,步骤102中根据预先生成的算子库获取实现所述ETL处理流程所需的算子可以包括:确定实现所述ETL处理流程所需的目标算子;查找所述算子库,将所述算子库中存在的目标算子从所述算子库中获取,针对所述算子库中不存在的目标算子,则根据所述ETL处理流程生成该不存在的目标算子。
举例来说,ETL处理流程所需的目标算子分别为算子A1、算子A2、算子B1、算子B2、算子B3和算子C1,通过查找算子库,确定算子库中存在算子A1、算子A2、算子B1、算子B2和算子B3,不存在算子C1。因此,针对ETL处理流程所需的算子A1、算子A2、算子B1、算子B2和算子B3可以直接从算子库中获取,而对于算子C1,由于算子库中不存在该算子C1,因此,需要根据ETL处理流程生成该算子C1。
可见,算子库中的算子是基于处理逻辑生成的,算子可以被复用,当所需的算子存在于算子库中时,直接复用算子库中的算子即可快速对算子进行组合,当所需的算子中有一个或多个算子,算子库中不包括时,则可以仅生成该不存在算子库中的算子即可,无需进行全编码,从而可以降低人工成本,提高编码速度。
具体地,所述根据所述ETL处理流程生成该不存在的目标算子,可以包括如下步骤S1-S5:
S1、确定该不存在的目标算子对应ETL处理流程的ETL子处理流程;
S2、确定ETL子处理流程对应的处理逻辑以及该处理逻辑依据的业务规则;
S3、将该处理逻辑依据的业务规则确定为可变参数;
S4、根据可变参数对该处理逻辑进行编码;
S5、对编码进行封装得到该处理逻辑对应的算子;其中,编码中包含所述可变参数。
在步骤S1中,由于ETL处理流程是由多个ETL子处理流程组成的,每一个ETL子处理流程可以由一个或多个算子来实现,由于有一部分ETL子处理流程对应的算子在算子库中存在,因此,可以只对不存在算子库中的算子所对应的ETL子处理流程进行算子生成即可。
举例来说,上述算子C1对应的ETL子处理流程为“将数据中为黑名单中的IP数据进行过滤”,那么可以该ETL子处理流程对应的处理逻辑为“数据过滤”,该处理逻辑依据的业务规则为“黑名单中的IP数据”,可见该业务规则中的黑名单是可变的,将该业务规则确定为可变参数,对处理逻辑“数据过滤”进行编码,编码中包括该可变参数,该编码可以采用适配语言,在将编码封装后即可得到该处理逻辑的算子,将算子存储在算子库中,需要直接从算子库中取出。
在确定实现ETL处理流程所需的算子之后,还需要确定算子间的编排顺序,由于ETL处理流程是由多个算子来实现的,且是具有先后处理顺序的,因此,可以根据ETL处理流程确定算子间的编排顺序。
进一步地,在本发明一个实施例中,步骤104中为每一个算子关联配置对应的业务规则,可以包括:确定算子中的可变参数,根据所述ETL处理流程确定该可变参数关联的业务规则,并将确定的业务规则确定为对应的可变参数。
可见,算子和业务规则是完全独立的,算子可以被复用,使用时,业务规则与算子进行关联配置,不同业务场景或者数据结构下,可以同一个算子关联配置不同的业务规则,从而能够实现不同的数据处理任务。
本发明一个实施例中,上述业务规则可以基于外部知识库和内部知识库来实现。
首先,对外部知识库进行说明。一部分类型的数据处理算子Processor,例如,数据富化器,需要引入外部知识库来完成业务。本实施例支持在业务规则与算子进行关联配置时对知识库相关配置文件进行修改,以引入外部数据库。通过配置知识库的地址,需要访问的表或者查询语句,查询知识库或者直接将知识库加入内存,实现外部知识库的引入。通过配置处理逻辑,使用外部知识库完成数据富化、数据标签、数据匹配过滤等业务场景。
然后,对内部知识库进行说明。对数据字典、标签库等内部知识库可以进行本地管理。通过批任务定时维护标签库等内部知识库,同时支持将其加载到内存,进行有效管理。适用与用户画像、标签库、数据字典等数据库的维护。
在本发明一个实施例中,基于ETL的源数据读取阶段、数据处理阶段和数据输出阶段,该算子可以分类为源数据读取算子、数据处理算子和数据输出算子。可以理解这些算子的功能如下:
源数据读取算子,用于在整个数据处理任务中,读取源数据并进行聚合,在统一接口的设计模式下,支持全数据源类型的横向拓展,可以用于项目中复杂数据源环境的适配。
数据处理算子,是数据处理任务中的核心算子。在实际应用中,使用者可以根据业务需求,构建常用数据处理模型,形成通用Processor算子。通过对多个Processor算子的组合,例如,数据过滤+数据字典富化等,可以完成复杂的业务逻辑。
数据输出算子,用于在数据处理任务中负责处理结束的数据输出,通过配置Sink,完成对已处理数据向下游的输出。
在本发明一个实施例中,虽然该ETL处理流程是基于Flink平台实现的,在ETL的数据处理阶段中,数据处理流程处理的数据均为流数据,但是,基于上述各类型的算子,该ETL处理流程还可以实现批数据处理,具体地,所述源数据读取流程可用于读取批数据并将所述批数据转换为流数据。
其中,使用合适的源数据读取算子,将静态的离线数据作为数据总线,从中读取批数据,然后将数据转换流式数据,通过统一的接口输入至数据处理算子中。
并且基于上述各类型的算子,还可以实现流数据和批数据的同时处理,基于数据总线的概念,实现流批一体化,既能将静态的离线数据进行采集作为数据总线,处理后的批数据进行落地输出,实现数据的批处理;也能够将数据队列,例如Kafka等实时数据流作为数据总线,将处理后的数据作为数据流输出,实现流数据的处理。通过使用不同的Source算子,设置其并列关系,使处理并列Source算子分别进行计算,从而完成流批一体的处理。
进一步地,基于上述各类型的算子,还可以实现数据的可复读,结合上述数据从数据总线来到数据总线去,该同一数据流可以作为Source进行多次复读,对于流数据处理后,依旧可以在需要的时候进行复读,且同一批流数据可以作为多个流水线的Source进行数据处理。该特性依赖kafka的队列数据落盘的特点,使得流式数据可以被复读复用,使用该特性能够满足大部分流批一体的场景,既满足了实时性高的流式数据处理,同时可以定时开启完成批处理任务。
最后针对步骤106,根据所述编排顺序,按顺序执行得到的各数据处理任务。
在本发明一个实施例中,由于一个算子对应一个数据处理任务,且算子间具有编排顺序,因此,通过该编排顺序按顺序执行各数据处理任务,从而可以实现ETL处理流程,即完成ETL数据处理。
由于该ETL数据处理方式是基于Flink实现的,因此,可以通过Flink的可视化界面进行数据处理任务的上传、任务调度、任务参数的分配和任务启动。另外,基于Flink平台,还可以对数据处理任务进行监控和管理。通过API可以实现以下任务监管功能:
1.能够随时查看任务状态,检查任务运行情况,流量处理情况。
2.通过轮询joboverview,可以实现任务失败的告警、监控和提醒。
3.通过查看TaskManager的日志,可以监控任务工作细节。
4.通过查看Metrics信息,可以了解资源使用情况。
通过上述查询与通知,从而实现任务的监控与管理流程。
本实施例中,通过将数据处理任务拆分成处理逻辑和业务规则,将处理逻辑抽象为算子,并且将业务规则剥离到算子外部,分别进行管理。当面对新数据源和数据结构时,只需进行配置即可对数据进行加工处理,实现算子的复用,当缺少有效算子时,只需根据需求和规范重新开发一个算子,即可完美的兼容入现有系统。在确定所需的算子之后,通过对算子进行配置,将算子进行组合,从而组合完成复杂的数据加工逻辑,包括但不限于复杂数据的数据富化、数据过滤等。
如图7、图8所示,本发明实施例提供了一种ETL数据处理装置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。从硬件层面而言,如图7所示,为本发明实施例提供的一种ETL数据处理装置所在计算设备的一种硬件架构图,除了图7所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的计算设备通常还可以包括其他硬件,如负责处理报文的转发芯片等等。以软件实现为例,如图8所示,作为一个逻辑意义上的装置,是通过其所在计算设备的CPU将非易失性存储器中对应的计算机程序读取到内存中运行形成的。本实施例提供的一种ETL数据处理装置,包括:
流程确定单元801,用于确定需进行数据处理的ETL处理流程;
算子获取单元802,用于根据预先生成的算子库,获取实现所述ETL处理流程所需的算子及算子间的编排顺序;其中,所述算子库包括多个基于不同处理逻辑生成的算子;
关联配置单元803,用于为每一个算子关联配置对应的业务规则,得到与每一个算子一一对应的各数据处理任务;
任务处理单元804,用于根据所述编排顺序,按顺序执行得到的各数据处理任务。
在本发明一个实施例中,所述算子获取单元802,具体用于确定实现所述ETL处理流程所需的目标算子;查找所述算子库,将所述算子库中存在的目标算子从所述算子库中获取,针对所述算子库中不存在的目标算子,则根据所述ETL处理流程生成该不存在的目标算子。
在本发明一个实施例中,所述算子获取单元802,在根据所述ETL处理流程生成该不存在的目标算子时,具体用于确定该不存在的目标算子对应所述ETL处理流程的ETL子处理流程;确定所述ETL子处理流程对应的处理逻辑以及该处理逻辑依据的业务规则;将该处理逻辑依据的业务规则确定为可变参数;根据所述可变参数对该处理逻辑进行编码;对所述编码进行封装得到该处理逻辑对应的算子;其中,所述编码中包含所述可变参数。
在本发明一个实施例中,所述关联配置单元803,具体用于确定算子中的可变参数,根据所述ETL处理流程确定该可变参数关联的业务规则,并将确定的业务规则确定为对应的可变参数。
在本发明一个实施例中,按照各ETL阶段的先后顺序,所述ETL处理流程可被划分为源数据读取流程、数据处理流程和数据输出流程;
其中,所述源数据读取流程的数量为至少一个,当所述源数据读取流程的数量为两个以上时,该两个以上的所述源数据读取流程为并列关系;和/或,所述数据输出流程的数量为至少一个,当所述数据输出流程的数量为两个以上时,该两个以上的所述数据输出流程为并列关系。
在本发明一个实施例中,所述ETL数据处理方法是基于开源流处理框架实现的,所述数据处理流程处理的数据均为流数据。
在本发明一个实施例中,所述源数据读取流程可用于读取批数据并将所述批数据转换为流数据;
和/或,
所述源数据读取流程从数据总线读取数据,所述数据输出流程将处理后的数据输出至所述数据总线中。
可以理解的是,本发明实施例示意的结构并不构成对一种ETL数据处理装置的具体限定。在本发明的另一些实施例中,一种ETL数据处理装置可以包括比图示更多或者更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件、软件或者软件和硬件的组合来实现。
上述装置内的各模块之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
本发明实施例还提供了一种计算设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时,实现本发明任一实施例中的一种ETL数据处理方法。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序在被处理器执行时,使所述处理器执行本发明任一实施例中的一种ETL数据处理方法。
具体地,可以提供配有存储介质的系统或者装置,在该存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机(或CPU或MPU)读出并执行存储在存储介质中的程序代码。
在这种情况下,从存储介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此程序代码和存储程序代码的存储介质构成了本发明的一部分。
用于提供程序代码的存储介质实施例包括软盘、硬盘、磁光盘、光盘(如CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RAM、DVD-RW、DVD+RW)、磁带、非易失性存储卡和ROM。可选择地,可以由通信网络从服务器计算机上下载程序代码。
此外,应该清楚的是,不仅可以通过执行计算机所读出的程序代码,而且可以通过基于程序代码的指令使计算机上操作的操作系统等来完成部分或者全部的实际操作,从而实现上述实施例中任意一项实施例的功能。
此外,可以理解的是,将由存储介质读出的程序代码写到插入计算机内的扩展板中所设置的存储器中或者写到与计算机相连接的扩展模块中设置的存储器中,随后基于程序代码的指令使安装在扩展板或者扩展模块上的CPU等来执行部分和全部实际操作,从而实现上述实施例中任一实施例的功能。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个…”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种ETL数据处理方法,其特征在于,包括:
确定需进行数据处理的ETL处理流程;
根据预先生成的算子库,获取实现所述ETL处理流程所需的算子及算子间的编排顺序;其中,所述算子库包括多个基于不同处理逻辑生成的算子;
为每一个算子关联配置对应的业务规则,得到与每一个算子一一对应的各数据处理任务;
根据所述编排顺序,按顺序执行得到的各数据处理任务。
2.根据权利要求1所述的方法,其特征在于,所述根据预先生成的算子库,获取实现所述ETL处理流程所需的算子,包括:
确定实现所述ETL处理流程所需的目标算子;
查找所述算子库,将所述算子库中存在的目标算子从所述算子库中获取,针对所述算子库中不存在的目标算子,则根据所述ETL处理流程生成该不存在的目标算子。
3.根据权利要求2所述的方法,其特征在于,所述根据所述ETL处理流程生成该不存在的目标算子,包括:
确定该不存在的目标算子对应所述ETL处理流程的ETL子处理流程;
确定所述ETL子处理流程对应的处理逻辑以及该处理逻辑依据的业务规则;
将该处理逻辑依据的业务规则确定为可变参数;
根据所述可变参数对该处理逻辑进行编码;
对所述编码进行封装得到该处理逻辑对应的算子;其中,所述编码中包含所述可变参数。
4.根据权利要求3所述的方法,其特征在于,所述为每一个算子关联配置对应的业务规则,包括:
确定算子中的可变参数,根据所述ETL处理流程确定该可变参数关联的业务规则,并将确定的业务规则确定为对应的可变参数。
5.根据权利要求1-4中任一所述的方法,其特征在于,
按照各ETL阶段的先后顺序,所述ETL处理流程可被划分为源数据读取流程、数据处理流程和数据输出流程;
其中,所述源数据读取流程的数量为至少一个,当所述源数据读取流程的数量为两个以上时,该两个以上的所述源数据读取流程为并列关系;和/或,所述数据输出流程的数量为至少一个,当所述数据输出流程的数量为两个以上时,该两个以上的所述数据输出流程为并列关系。
6.根据权利要求5所述的方法,其特征在于,所述ETL数据处理方法是基于开源流处理框架实现的,所述数据处理流程处理的数据均为流数据。
7.根据权利要求6所述的方法,其特征在于,
所述源数据读取流程可用于读取批数据并将所述批数据转换为流数据;
和/或,
所述源数据读取流程从数据总线读取数据,所述数据输出流程将处理后的数据输出至所述数据总线中。
8.一种ETL数据处理装置,其特征在于,包括:
流程确定单元,用于确定需进行数据处理的ETL处理流程;
算子获取单元,用于根据预先生成的算子库,获取实现所述ETL处理流程所需的算子及算子间的编排顺序;其中,所述算子库包括多个基于不同处理逻辑生成的算子;
关联配置单元,用于为每一个算子关联配置对应的业务规则,得到与每一个算子一一对应的各数据处理任务;
任务处理单元,用于根据所述编排顺序,按顺序执行得到的各数据处理任务。
9.一种计算设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时,实现如权利要求1-7中任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111670383.XA CN114328695A (zh) | 2021-12-31 | 2021-12-31 | Etl数据处理方法、装置、计算设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111670383.XA CN114328695A (zh) | 2021-12-31 | 2021-12-31 | Etl数据处理方法、装置、计算设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114328695A true CN114328695A (zh) | 2022-04-12 |
Family
ID=81020161
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111670383.XA Pending CN114328695A (zh) | 2021-12-31 | 2021-12-31 | Etl数据处理方法、装置、计算设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114328695A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114936223A (zh) * | 2022-05-27 | 2022-08-23 | 阿里云计算有限公司 | 数据处理方法、装置、设备和存储介质 |
CN115202765A (zh) * | 2022-06-14 | 2022-10-18 | 浙江智臾科技有限公司 | 流数据处理方法和流数据处理系统 |
CN115794064A (zh) * | 2022-10-25 | 2023-03-14 | 中电金信软件有限公司 | 任务处理流程的配置方法、装置、电子设备及存储介质 |
-
2021
- 2021-12-31 CN CN202111670383.XA patent/CN114328695A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114936223A (zh) * | 2022-05-27 | 2022-08-23 | 阿里云计算有限公司 | 数据处理方法、装置、设备和存储介质 |
CN115202765A (zh) * | 2022-06-14 | 2022-10-18 | 浙江智臾科技有限公司 | 流数据处理方法和流数据处理系统 |
CN115202765B (zh) * | 2022-06-14 | 2023-03-28 | 浙江智臾科技有限公司 | 流数据处理方法和流数据处理系统 |
CN115794064A (zh) * | 2022-10-25 | 2023-03-14 | 中电金信软件有限公司 | 任务处理流程的配置方法、装置、电子设备及存储介质 |
CN115794064B (zh) * | 2022-10-25 | 2024-02-06 | 中电金信软件有限公司 | 任务处理流程的配置方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114328695A (zh) | Etl数据处理方法、装置、计算设备及存储介质 | |
CN110321152B (zh) | 一种软件开发平台 | |
CN110716744B (zh) | 一种数据流处理方法、系统和计算机可读存储介质 | |
US10498857B2 (en) | System interaction monitoring and component scaling | |
US10999407B1 (en) | Service group interaction management | |
US8078915B2 (en) | System and method for verifying operation of a target system | |
US7908160B2 (en) | System and method for producing audit trails | |
CN107103064B (zh) | 数据统计方法及装置 | |
Kotenko et al. | Aggregation of elastic stack instruments for collecting, storing and processing of security information and events | |
CN109885316A (zh) | 基于kubernetes的hdfs-hbase部署方法及装置 | |
CN112231402A (zh) | 一种异构数据实时同步方法、装置、设备和存储介质 | |
CN113254174A (zh) | 一种rpa机器人流程自动化实现系统和方法 | |
CN110740079A (zh) | 一种面向分布式调度系统的全链路基准测试系统 | |
CN111367953A (zh) | 一种资讯数据的流式处理方法及装置 | |
CN109977173B (zh) | 基于云数据中心的分布式、插件式数据监控系统及方法 | |
US20170091690A1 (en) | Efficiiently allocating completed product assemblies as inventory in a configure-to-order environment | |
EP2052325B1 (en) | Reduction of message flow between bus-connected consumers and producers | |
CN114064562A (zh) | 一种片上网络的esl建模的方法、装置、设备及介质 | |
CN111352726A (zh) | 一种基于容器化微服务的流数据处理方法及装置 | |
CN103067507A (zh) | 互联网云计算资源虚拟化封装系统及方法 | |
CN113821361B (zh) | 一种基于流式处理的物联网平台消息处理方法和系统 | |
CN114297074A (zh) | 一种基于动态配置实现功能、接口、性能自动测试方法 | |
WO2021036987A1 (zh) | 一种实现运维监控的方法及装置 | |
CN115373757A (zh) | 一种Promethues分片模式下集群监控数据缺失的解决方法和装置 | |
CN114969199A (zh) | 遥感数据的处理方法、装置、系统以及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |