一种基于事件流驱动的数据清洗方法和装置制造方法及图纸

技术编号:28034307 阅读:17 留言:0更新日期:2021-04-09 23:16
本发明专利技术涉及一种基于事件流驱动的数据清洗方法,具体包括:S1、获取目标业务的任务列表,检测是否存在正在处理的任务,若是则结束,若否则转至S2;S2、获取目标业务的数量处理流程信息;S3、加载组装任务实例组件及相应的梳理方法;S4、获取待操作的源数据;S5、将任务列表拆分成一个主任务和多个子任务,子任务进入消息队列进行任务分发;S6、备份原始主任务和子任务,获取标准化数据,更新子任务和主任务的处理结果并备份;S7、处理结果进行准确性校验,若存在数据异常转至S8,若否则释放任务列表的任务状态;S8、任务列表根据备份数据,数据回滚到初始状态。与现有技术相比,本发明专利技术具有易扩展、易维护、提高复用性和可靠性等优点。

【技术实现步骤摘要】
一种基于事件流驱动的数据清洗方法和装置
本专利技术涉及一种数据清洗方法,尤其是涉及一种基于事件流驱动的数据清洗方法和装置。
技术介绍
随着市场的不断变化,业务的不断迭代更新和系统的变迁,产生了很多脏乱的数据。新的系统升级之后形成一套标准化的服务数据,这时就需要对历史的各种数据版本进行统一的数据升级成标准数据。但在现有系统中,业务流程较长、数据量大、并发高,各流程节点数据依赖性强、一致性要求较高,若数据清洗出现异常,需要立即回滚到历史版本,还需要有针对关键操作的数据记录以及回滚操作策略。基于以上场景,需要有一套结合现有需要清洗的业务场景,抽象出了共通的事件流处理技术方案。目前市场上活跃的事件流处理技术大致有以下三种:第一是Java事件驱动,可以满足单个事件驱动,当前复杂且流程连贯,周期长的业务场景,不太适用;第二是kafka事件流,其优点是异步操作提高了并发,但是缺点就是业务紧密型,流程较长型业务场景,不太适用;第三是JFR事件流,JFR是JVM的调优工具,通过不停的收集JVM和java应用程序中的各种事件,从而为后续的JMC分析提供数据,在业务复杂场景不适合处理并且JDK14才开源,当前不可用。
技术实现思路
本专利技术的目的就是为了克服上述现有技术存在的缺陷而提供一种基于事件流驱动的数据清洗方法和装置,有效解决数据清洗中流程关联性强、业务紧密性高、数据量大、并发高、流程较长型的业务场景。本专利技术的目的可以通过以下技术方案来实现:一种基于事件流驱动的数据清洗方法,具体包括以下步骤:S1、获取目标业务的任务列表,检测是否存在正在处理的任务,若是则退出当前清洗程序,若否则转至步骤S2;S2、获取目标业务的数量处理流程信息;S3、根据所述数量处理流程信息,加载组装任务实例组件及相应的梳理方法;S4、获取需要进行数据清洗的源数据;S5、将目标业务的任务列表拆分成一个主任务和多个子任务,所述子任务进入消息队列进行任务分发;S6、备份原始主任务和子任务,获取标准化数据,根据所述标准化数据更新子任务以及主任务的处理结果并再次备份;S7、对处理结果进行准确性校验,检测是否存在数据异常,若是转至步骤S8,若否则释放任务列表的任务状态;S8、根据步骤S6中对原始主任务和子任务的备份数据,目标业务的任务列表进行数据回滚到步骤S1中的初始状态。所述步骤S2中还包括根据任务列表发送任务执行异步消息。所述步骤S3中还包括更新任务列表的状态为执行中。所述步骤S5中的消息队列具体包括kafka消息队列。所述步骤S6中备份原始主任务和子任务的过程还包括记录原始主任务和子任务的操作记录。所述步骤S7中释放任务列表的任务状态的过程具体为调整任务列表的状态为空闲中。一种使用所述基于事件流驱动的数据清洗方法的装置,包括存储器和处理器,所述数据清洗方法以计算机程序的形式储存在存储器中,并由处理器执行,执行时实现以下步骤:S1、获取目标业务的任务列表,检测是否存在正在处理的任务,若是则退出当前清洗程序,若否则转至步骤S2;S2、获取目标业务的数量处理流程信息;S3、根据所述数量处理流程信息,加载组装任务实例组件及相应的梳理方法;S4、获取需要进行数据清洗的源数据;S5、将目标业务的任务列表拆分成一个主任务和多个子任务,所述子任务进入消息队列进行任务分发,进行异步消费;S6、备份原始主任务和子任务,获取标准化数据,根据所述标准化数据更新子任务以及主任务的处理结果并再次备份;S7、对处理结果进行准确性校验,检测是否存在数据异常,若是转至步骤S8,若否则释放任务列表的任务状态;S8、根据步骤S6中对原始主任务和子任务的备份数据,目标业务的任务列表进行数据回滚到步骤S1中的初始状态。与现有技术相比,本专利技术具有以下有益效果:1.本专利技术通过采用事件流机制+实现方法组装,可以在不同场景下实现数据清洗功能,提高了数据清洗的扩展性。2.本专利技术利用Java中重写,以及Bean名称加载的功能,实现了对各个小业务场景的单独进行维护,提高了小业务场景下数据清洗功能的稳定性。3.本专利技术采用分块处理的策略,将目标业务的任务列表拆分成一个主任务和多个子任务,提高了数据清洗的效率。4.本专利技术通过对原始主任务和子任务进行备份,当标准化数据更新后出现数据异常,能够及时回滚到初始状态,对后续的数据清洗工作提供了落地方案,提高了数据清洗的可靠性和复用性。附图说明图1为本专利技术的流程示意图。具体实施方式下面结合附图和具体实施例对本专利技术进行详细说明。本实施例以本专利技术技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本专利技术的保护范围不限于下述的实施例。如图1所示,一种基于事件流驱动的数据清洗方法,具体包括以下步骤:S1、获取目标业务的任务列表,检测是否存在正在处理的任务,若是则退出当前清洗程序,若否则转至步骤S2;S2、获取目标业务的数量处理流程信息;S3、根据数量处理流程信息,加载组装任务实例组件及相应的梳理方法;S4、获取需要进行数据清洗的源数据;S5、将目标业务的任务列表拆分成一个主任务和多个子任务,子任务进入消息队列进行任务分发;S6、备份原始主任务和子任务,获取标准化数据,根据标准化数据更新子任务以及主任务的处理结果并再次备份;S7、对处理结果进行准确性校验,检测是否存在数据异常,若是转至步骤S8,若否则释放任务列表的任务状态;S8、根据步骤S6中对原始主任务和子任务的备份数据,目标业务的任务列表进行数据回滚到步骤S1中的初始状态。步骤S2中还包括根据任务列表发送任务执行异步消息。步骤S3中还包括更新任务列表的状态为执行中。步骤S5中的消息队列具体包括kafka消息队列。步骤S6中备份原始主任务和子任务的过程还包括记录原始主任务和子任务的操作记录。步骤S7中释放任务列表的任务状态的过程具体为调整任务列表的状态为空闲中。一种使用基于事件流驱动的数据清洗方法的装置,包括存储器和处理器,数据清洗方法以计算机程序的形式储存在存储器中,并由处理器执行,执行时实现以下步骤:S1、获取目标业务的任务列表,检测是否存在正在处理的任务,若是则退出当前清洗程序,若否则转至步骤S2;S2、获取目标业务的数量处理流程信息;S3、根据数量处理流程信息,加载组装任务实例组件及相应的梳理方法;S4、获取需要进行数据清洗的源数据;S5、将目标业务的任务列表拆分成一个主任务和多个子任务,子任务进入消息队列进行任务分发,进行异步消费;S6、备份原始主任务和子任务,获取标准化数据,根据标准化数据更新子任务以及主任务的处理结果并再次备份;S7、对处理结果进行准确性校验,检测是否存在数据异常,若本文档来自技高网...

【技术保护点】
1.一种基于事件流驱动的数据清洗方法,其特征在于,具体包括以下步骤:/nS1、获取目标业务的任务列表,检测是否存在正在处理的任务,若是则退出当前清洗程序,若否则转至步骤S2;/nS2、获取目标业务的数量处理流程信息;/nS3、根据所述数量处理流程信息,加载组装任务实例组件及相应的梳理方法;/nS4、获取需要进行数据清洗的源数据;/nS5、将目标业务的任务列表拆分成一个主任务和多个子任务,所述子任务进入消息队列进行任务分发;/nS6、备份原始主任务和子任务,获取标准化数据,根据所述标准化数据更新子任务以及主任务的处理结果并再次备份;/nS7、对处理结果进行准确性校验,检测是否存在数据异常,若是转至步骤S8,若否则释放任务列表的任务状态;/nS8、根据步骤S6中对原始主任务和子任务的备份数据,目标业务的任务列表进行数据回滚到步骤S1中的初始状态。/n

【技术特征摘要】
1.一种基于事件流驱动的数据清洗方法,其特征在于,具体包括以下步骤:
S1、获取目标业务的任务列表,检测是否存在正在处理的任务,若是则退出当前清洗程序,若否则转至步骤S2;
S2、获取目标业务的数量处理流程信息;
S3、根据所述数量处理流程信息,加载组装任务实例组件及相应的梳理方法;
S4、获取需要进行数据清洗的源数据;
S5、将目标业务的任务列表拆分成一个主任务和多个子任务,所述子任务进入消息队列进行任务分发;
S6、备份原始主任务和子任务,获取标准化数据,根据所述标准化数据更新子任务以及主任务的处理结果并再次备份;
S7、对处理结果进行准确性校验,检测是否存在数据异常,若是转至步骤S8,若否则释放任务列表的任务状态;
S8、根据步骤S6中对原始主任务和子任务的备份数据,目标业务的任务列表进行数据回滚到步骤S1中的初始状态。


2.根据权利要求1所述的一种基于事件流驱动的数据清洗方法,其特征在于,所述步骤S2中还包括根据任务列表发送任务执行异步消息。


3.根据权利要求1所述的一种基于事件流驱动的数据清洗方法,其特征在于,所述步骤S3中还包括更新任务列表的状态为执行中。


4.根据权利要求1所述的一种基于事件流驱动的数据清洗方法,其特征在于,所述步骤S5中的消息队列具体包括kafka消息队列。


5.根据权利要求1所述的一种基于事件流驱动的数据清洗方法,其特征在于,所述步骤S6中备份原始主任务和子任务的过程还包括记录原始主任务和子任务的操作记录。


6.根据权利要求1所述的一种基于事件流驱动的数据清洗方法,...

【专利技术属性】
技术研发人员:骆振王彭彭
申请(专利权)人:上海高顿教育科技有限公司
类型:发明
国别省市:上海;31

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

1