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

Kafka任务集群、数据处理方法及相关装置

文献发布时间:2024-04-18 19:54:45


Kafka任务集群、数据处理方法及相关装置

技术领域

本申请涉及计算机的技术领域,具体而言,涉及一种Kafka任务集群、数据处理方法及相关装置。

背景技术

目前,通常是利用JAVA(一种计算机编程语言)编写的处理程序从Kafka(一种高吞吐量的分布式发布订阅消息系统)集群中获取数据,然后对获取到的数据进行处理,并将处理后的数据存储至数据库中。

由于不同类型的数据对应的处理方式不一定相同,因此,需要针对不同类型的数据分别开发不同的程序。当同时启动的程序过多时,会占用过多计算资源。

发明内容

本申请提供一种Kafka任务集群、数据处理方法及相关装置,以解决现有技术中,需要同时启动多个JAVA编写的处理程序,导致会占用过多计算资源的问题。

第一方面,本申请提供一种Kafka任务集群,包括:多个Kafka任务节点、处理模块,处理模块部署在所述多个Kafka任务节点中的至少一个Kafka任务节点上,所述处理模块包括至少一个脚本;所述处理模块用于从Kafka集群中获取初始数据,并基于所述至少一个脚本对所述初始数据进行处理,得到目标数据;以及将所述目标数据存储至与所述Kafka任务集群相连接的数据库中。

本申请实施例中,由于处理模块中包括至少一个脚本,使得处理模块可以基于不同的脚本实现对初始数据进行不同的处理。从而只需要设置一个处理模块即可完成对任意类型数据的处理,降低了占用的计算资源量。也无需再针对每一种类型的数据独立开发JAVA程序,降低了工作人员的开发强度。

结合上述第一方面提供的技术方案,在一些可能的实施方式中,所述初始数据包括初始货币类型和初始货币金额,所述至少一个脚本包括用于进行汇率换算的第一脚本,所述第一脚本中预置有汇率比例表、目标货币类型;所述处理模块,用于基于所述第一脚本对所述初始货币类型和所述初始货币金额,得到所述目标货币类型的目标货币金额,其中,所述目标数据包括所述目标货币类型和所述目标货币金额。

本申请实施例中,通过预设的汇率比例表、目标货币类型,可以将任意种类的货币换算为目标货币,实现汇率换算功能。

结合上述第一方面提供的技术方案,在一些可能的实施方式中,所述初始数据包括待加密数据,所述至少一个脚本包括用于进行加密处理的第二脚本;所述处理模块,用于基于所述第二脚本识别所述初始数据中的所述待加密数据;并对所述待加密数据进行加密处理,得到目标数据,所述目标数据包括加密处理后的所述待加密数据。

本申请实施例中,通过预设的用于进行加密处理的第二脚本,可以对初始数据进行加密处理,提高数据的安全性。

结合上述第一方面提供的技术方案,在一些可能的实施方式中,所述初始数据包括多个不同主题的模型表,所述至少一个脚本包括用于进行模型表整合的第三脚本,所述第三脚本预置有目标模型表模板;所述处理模块,用于基于所述第三脚本从所述初始数据包括的多个不同主题的模型表中,获取所述目标模型表模板需要的待填写数据;所述处理模块,用于基于所述第三脚本将所述待填写数据分别填写至所述目标模型表模板的对应位置,得到目标数据,所述目标数据包括填写完成的所述目标模型表模板。

本申请实施例中,通过第三脚本可以实现将多个不同主题的模型表,整合为一个模型表,提高用户观看体验。

结合上述第一方面提供的技术方案,在一些可能的实施方式中,所述至少一个脚本包括用于过滤数据的第四脚本,所述第四脚本预置有预设字段;所述处理模块,用于基于所述第四脚本,利用所述预设字段对所述初始数据包括的每一条数据进行过滤处理,得到所述目标数据,所述目标数据包括的每一条数据均包括有所述预设字段。

本申请实施例中,通过第四脚本实现对初始数据的快速过滤,能快速得到需要的数据,提高数据存储效率。

结合上述第一方面提供的技术方案,在一些可能的实施方式中,所述至少一个脚本包括用于分区存储的第五脚本,所述第五脚本预置有表征数据类型和存储分区对应关系的存储规则表;所述处理模块,用于基于所述第五脚本对所述初始数据中的每一条数据进行分类处理,得到所述目标数据,所述目标数据包括至少一种数据类型的数据;所述处理模块,还用于基于所述第五脚本对所述目标数据包括的每一种数据类型的数据,基于所述存储规则表,将该数据类型的数据存储至所述数据库中对应的存储分区中。

本申请实施例中,通过第五脚本对初始数据进行分类,并将每一种数据类型的数据分别存储至数据库中对应的存储分区。实现数据的分区存储,便于后续查找数据。

结合上述第一方面提供的技术方案,在一些可能的实施方式中,所述处理模块包括用于格式转换的第六脚本;所述处理模块,用于基于所述第六脚本将所述初始数据转换为目标格式,得到所述目标数据。

本申请实施例中,通过第六脚本将初始数据转换为目标格式,使得用户在从数据库中拿到数据后,无需再次进行格式转换处理,提高用户体验。

第二方面,本申请提供一种数据处理方法,其特征在于,应用于如上述第一方面和/或结合上述第一方面任意一种可能的实施方式提供的Kafka任务集群中的处理模块,所述方法包括:从Kafka集群中获取初始数据;基于预设的至少一个脚本对所述初始数据进行处理,得到目标数据;将所述目标数据存储至与所述Kafka任务集群相连接的数据库中。

第三方面,本申请实施例还提供了一种电子设备,包括:存储器和处理器,所述存储器和所述处理器连接;所述存储器,用于存储程序;所述处理器,用于调用存储于所述存储器中的程序,以执行如上述第二方面实施例和/或结合上述第二方面实施例的任一种可能的实施方式提供的方法。

第四方面,本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被计算机运行时,执行如上述第二方面实施例和/或结合上述第二方面实施例的任一种可能的实施方式提供的方法。

附图说明

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

图1为本申请实施例示出的一种Kafka任务集群的结构框图;

图2为本申请实施例示出的一种模型表及目标模型表模板的示意图;

图3为本申请实施例示出的一种数据处理方法的流程示意图;

图4为本申请实施例示出的一种电子设备的结构框图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中诸如“第一”、“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

再者,本申请中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。

下面将结合附图对本申请的技术方案进行详细地描述。

请参阅图1,图1为本申请实施例示出的一种Kafka任务集群,该Kafka任务集群包括多个Kafka任务节点和处理模块。

其中,同一Kafka任务集群中的不同Kafka任务节点部署在不同的设备上。

Kafka任务集群的具体实现方式及原理已为本领域技术人员所熟知,为简要描述,此处不再赘述。

处理模块部署在多个Kafka任务节点中的至少一个Kafka任务节点上。其中,可以是每个Kafka任务节点均部署有处理模块,也可以是多个Kafka任务节点中的部分Kafka任务节点部署有处理模块,此处不对其进行限制。

可以理解的是,部署在不同Kafka任务节点上的处理模块实现的功能相同。

处理模块用于从Kafka集群中获取初始数据,并基于至少一个脚本对初始数据进行处理,得到目标数据;以及将目标数据存储至与Kafka任务集群相连接的数据库中。

需要注意的是,Kafka任务集群和Kafka集群通信连接,其中,Kafka任务集群中的Kafka任务节点和Kafka集群中的Kafka节点可以部署在同一台设备上,也可以部署在不同的设备上。

Kafka任务集群中的Kafka任务节点可以和Kafka集群中的一个或多个Kafka节点通信连接。或者,Kafka任务集群中的Kafka任务节点也可以不直接和Kafka集群中的Kafka节点通信连接,此时,Kafka任务集群中的Kafka任务节点通过该Kafka任务集群中的其他Kafka任务节点,从Kafka集群中获取初始数据。

处理模块包括至少一个脚本,每个脚本用于对初始数据进行处理,不同脚本的处理逻辑不同。

处理模块可以是周期性地从Kafka集群中获取初始数据,例如,每一秒从Kafka集群中获取一次初始数据。其中,周期的具体长度可以根据实际需求设置,此处不对其进行限制。或者,也可以是处理模块在接收到数据获取指令后,从Kafka集群中获取初始数据。

本申请实施例提供的Kafka任务集群可以应用于不同的场景中,例如,可以应用于汇率换算、数据加密、模型表整合、数据过滤、分区存储、格式转换中的至少一种场景中。

第一种实施方式下,该Kafka任务集群可以适用于汇率换算的场景。此时,在该场景下,初始数据可以包括初始货币类型和初始货币金额,相应地,至少一个脚本包括用于进行汇率换算的第一脚本,第一脚本中预置有汇率比例表、目标货币类型。

相应地,处理模块用于基于第一脚本对初始货币类型和初始货币金额,得到目标货币类型的目标货币金额,其中,目标数据包括目标货币类型和目标货币金额。

其中,汇率比例表中预设有多种货币类型与目标货币类型之间的转换汇率,目标货币类型可以根据实际需求进行设置,此处不对其具体种类进行限制。

为了便于理解,设定初始数据中的初始货币类型包括A货币、B货币、C货币,A货币对应的初始货币金额为100;B货币对应的初始货币金额为50;C货币对应的初始金额为80。目标货币类型为D货币,若汇率比例表中包括:1A货币=0.4D货币;1B货币=1.3D货币;1C货币=2.5D货币。则根据该汇率比例表,可以得到100A货币=40D货币;50B货币=65D货币;80C货币=200D货币。因此,目标数据中包括40D货币、65D货币、200D货币。此处举例仅为便于理解,不应作为对本申请的限制。

第二种实施方式下,该Kafka任务集群可以适用于数据加密的场景。此时,在该场景下,初始数据可以包括待加密数据,至少一个脚本包括用于进行加密处理的第二脚本。

相应地,处理模块,用于基于第二脚本识别初始数据中的待加密数据;并对待加密数据进行加密处理,得到目标数据,目标数据包括加密处理后的待加密数据。

其中,为了使第二脚本能从初始数据中识别到待加密数据,可以在第二脚本中预设有敏感字符,当第二脚本识别到初始数据中有包括该敏感字符的数据时,对包括该敏感字符的数据进行加密。

或者,还可以是初始数据中携带有加密数据名单,第二脚本根据该加密数据名单对初始数据中对应的数据进行加密。

也可以是初始数据中的待加密数据携带有表征加密的标识,第二脚本识别到携带有该表征加密的标识后,对该数据进行加密。

为了便于理解,以初始数据包括数据A、数据B、数据C,且数据B为待加密数据为例进行说明。处理模块基于第二脚本,从数据A、数据B、数据C中识别到待加密的数据B,然后对数据B进行加密,得到目标数据。其中,目标数据包括数据A、加密后的数据B、数据C。

第三种实施方式,该Kafka任务集群可以适用于模型表整合的场景下。此时,在该场景下,初始数据可以包括多个不同主题的模型表,至少一个脚本包括用于进行模型表整合的第三脚本,第三脚本预置有目标模型表模板。

相应地,处理模块,用于基于第三脚本从初始数据包括的多个不同主题的模型表中,获取目标模型表模板需要的待填写数据;并将待填写数据分别填写至目标模型表模板的对应位置,得到目标数据,目标数据包括填写完成的目标模型表模板。

目标模型表模板可以是任意类型的表格,只要目标模型表模板中需要的各类型数据清楚即可。

为了便于理解,请参阅图2。初始数据中包括有图2所示的表1和表2,图2所示的表3为目标模型表模板,图2所示的表4为目标数据中包括的填写完成的目标模型表模板。

处理模块基于第三脚本从表1中获取到对象A、对象B、对象C各自对应的数据1,以及从表2中获取到对象A、对象B、对象C各自对应的数据4、数据5。之后将对象A、对象B、对象C各自对应的数据1、数据4、数据5分别填写到目标模型表模板中,得到图2所示的表4。此处举例仅为便于理解,不应作为对本申请的限制。

第四种实施方式,该Kafka任务集群可以适用于数据过滤的场景下。此时,在该场景下,至少一个脚本包括用于过滤数据的第四脚本,第四脚本预置有预设字段。

相应地,处理模块,用于基于第四脚本,利用预设字段对初始数据包括的每一条数据进行过滤处理,得到目标数据,目标数据包括的每一条数据均包括有预设字段。

其中,预设字段可以根据实际需求设置,例如,预设字段可以是单位名称、课题名称、人物名称等,此处不对预设字段的具体类型进行限制。

为了便于理解,以预设字段为“A单位”为例进行说明。若初始数据中包括A单位财政统计表、B单位财政统计表、A单位考勤统计表、B单位考勤统计表、用户C工资绩效表。第四脚本对该初始数据进行过滤,滤除不包括“A单位”的数据,得到目标数据。此时,目标数据包括A单位财政统计表、A单位考勤统计表。此处举例仅为便于理解,不应作为对本申请的限制。

第五种实施方式,该Kafka任务集群可以适用于分区存储的场景下。此时,在该场景下,上述的至少一个脚本包括用于分区存储的第五脚本,第五脚本预置有表征数据类型和存储分区对应关系的存储规则表。

相应地,处理模块,用于基于第五脚本对初始数据中的每一条数据进行分类处理,得到目标数据,目标数据包括至少一种数据类型的数据;并对目标数据包括的每一种数据类型的数据,基于存储规则表,将该数据类型的数据存储至数据库中对应的存储分区中。

存储规则表中包括有不同类型数据各自对应的存储分区,存储分区可以根据实际需求对数据库进行划分,数据类型也可以根据实际需求设置。例如,存储规则表可以包括:数据类型A对应存储分区1、数据类型B对应存储分区2、数据类型C对应存储分区3。此处举例仅为便于理解,不应将其作为对本申请的限制。

为了便于理解,以存储规则表可以包括:考勤数据对应存储分区1、财政数据对应存储分区2、工资绩效数据对应存储分区3为例进行说明。若初始数据中包括A单位财政统计表、B单位财政统计表、A单位考勤统计表、B单位考勤统计表、用户C工资绩效表。处理模块基于第五脚本对该初始数据进行分类,确定A单位财政统计表、B单位财政统计表为财政数据;A单位考勤统计表、B单位考勤统计表为考勤数据;用户C工资绩效表为工资绩效数据。因此,处理模块基于第五脚本将A单位财政统计表、B单位财政统计表存储至存储分区2,将A单位考勤统计表、B单位考勤统计表存储至存储分区1,将用户C工资绩效表存储至存储分区3。此处举例仅为便于理解,不应作为对本申请的限制。

第六种实施方式,该Kafka任务集群可以适用于格式转换的场景下。此时,在该场景下,上述的至少一个脚本包括用于格式转换的第六脚本。

相应地,处理模块,用于基于第六脚本将初始数据转换为目标格式,得到目标数据。

上述的目标格式可以是文件格式,例如txt、doc等。此时,处理模块用于基于第六脚本对初始数据的文件格式转换为目标文件格式。

目标格式也可以是文本格式,例如加粗、字体类型、字体颜色等。此时,第六脚本还可以包括目标条件,当初始数据中存在满足该目标条件的数据时,将该数据转换为目标格式。目标条件可以根据实际需求进行设置,例如,可以是数据大于预设阈值、特定数据类型等。

例如,目标条件为绩效点大于10,目标格式为加粗、字体加大、字体颜色转换为红色。此时,若初始数据中,用户A、用户B、用户C各自的绩效分别为9、11、8.5。处理模块基于第六脚本确定用户B的绩效满足预设条件,因此,将初始数据中用户B的数据加粗、字体加大、字体颜色转换为红色后,得到目标数据。此处举例仅为便于理解,不应将其作为对本申请的限制。

第七种实施方式,该Kafka任务集群可以适用于数据计算的场景下。此时,在该场景下,上述的至少一个脚本包括用于数据计算的第七脚本,第七脚本中预置有数据计算规则。

相应地,处理模块,用于基于第七脚本从初始数据中获取数据计算规则对应的计算参数,并基于获取的计算参数计算得到计算数据,目标数据包括该计算数据。

其中,数据计算规则可以根据实际需求进行设置,例如,可以是将转换为目标货币类型后的保费减去保费中共保比例对应的部分,得到实际保费,也即实际保费=保费-共保比例*保费。此处举例仅为便于理解,不应将其作为对本申请的限制。

为了便于理解,计目标货币为乙货币,且1甲货币=0.5乙货币,算规则为将转换为目标货币类型后的保费减去保费中共保比例对应的部分,得到实际保费为例进行说明。若初始数据中包括用户A缴纳的500甲货币,且其对应的共保比例为0.1,则处理模块基于第七脚本将500甲货币转换为250乙货币,然后将250乙货币-250乙货币*0.1=225乙货币。因此,目标数据包括225乙货币的实际保费。此处举例仅为便于理解,不应将其作为对本申请的限制。

处理模块可以实现的功能包括但不限于上述的七种实施方式。

可选的,上述的各个脚本可以是用任意类型的脚本引擎开发得到,例如可以是painless脚本引擎、groovy脚本引擎等。

基于同样的发明构思,本申请还提供一种数据处理方法,请参阅图3,该数据处理方法应用于上述的Kafka任务集群中的处理模块。

S100:从Kafka集群中获取初始数据。

S200:基于预设的至少一个脚本对初始数据进行处理,得到目标数据。

S300:将目标数据存储至与Kafka任务集群相连接的数据库中。

图3所示的各个步骤的具体实现方式及原理在前文已叙述清楚,为简要描述,方法实施例部分未提及之处,可参考前述Kafka任务集群实施例中相应内容。

请参阅图4,其为本申请实施例提供的一种电子设备100。所述电子设备100包括:处理器110、存储器120。

存储器120、处理器110各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。其中,存储器120用于存储计算机程序,如存储有图3中所示的数据处理方法。所述处理器110,用于执行存储器120中存储的数据处理方法,此时,处理器110,用于从Kafka集群中获取初始数据;基于预设的至少一个脚本对所述初始数据进行处理,得到目标数据;将所述目标数据存储至与所述Kafka任务集群相连接的数据库中。

电子设备还可以包括其他电子器件,例如还可以包括收发器,其中,收发器用于收发数据。

其中,存储器120可以是,但不限于,随机存取存储器(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)等。

处理器110可能是一种集成电路芯片,具有信号的处理能力。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(NetworkProcessor,NP)等;还可以是数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器110也可以是任何常规的处理器等。

其中,上述的电子设备100,包括但不限于个人电脑、服务器等。

本申请实施例还提供了一种非易失性计算机可读取存储介质(以下简称存储介质),该存储介质上存储有计算机程序,该计算机程序被计算机如上述的电子设备100运行时,执行上述所示的图像绘制方法。该计算机可读存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

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

相关技术
  • 数据库集群数据处理方法及装置、存储介质和终端
  • kafka集群的topic数据的监控方法及相关设备
  • 一种Kafka集群间数据传输方法及相关设备
技术分类

06120116380354