CN112631755A - 一种基于事件流驱动的数据清洗方法和装置 - Google Patents
一种基于事件流驱动的数据清洗方法和装置 Download PDFInfo
- Publication number
- CN112631755A CN112631755A CN202011610990.2A CN202011610990A CN112631755A CN 112631755 A CN112631755 A CN 112631755A CN 202011610990 A CN202011610990 A CN 202011610990A CN 112631755 A CN112631755 A CN 112631755A
- Authority
- CN
- China
- Prior art keywords
- task
- data
- subtasks
- acquiring
- task list
- 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
- 238000000034 method Methods 0.000 title claims abstract description 41
- 238000004140 cleaning Methods 0.000 title claims abstract description 22
- 238000012545 processing Methods 0.000 claims abstract description 35
- 230000002159 abnormal effect Effects 0.000 claims abstract description 9
- 238000009960 carding Methods 0.000 claims abstract description 8
- 238000009826 distribution Methods 0.000 claims abstract description 7
- 230000008569 process Effects 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 3
- 238000005096 rolling process Methods 0.000 abstract description 3
- 238000012423 maintenance Methods 0.000 abstract description 2
- 230000006870 function Effects 0.000 description 3
- 230000007547 defect Effects 0.000 description 2
- 235000010627 Phaseolus vulgaris Nutrition 0.000 description 1
- 244000046052 Phaseolus vulgaris Species 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000013486 operation strategy Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种基于事件流驱动的数据清洗方法,具体包括:S1、获取目标业务的任务列表,检测是否存在正在处理的任务,若是则结束,若否则转至S2;S2、获取目标业务的数量处理流程信息;S3、加载组装任务实例组件及相应的梳理方法;S4、获取待操作的源数据;S5、将任务列表拆分成一个主任务和多个子任务,子任务进入消息队列进行任务分发;S6、备份原始主任务和子任务,获取标准化数据,更新子任务和主任务的处理结果并备份;S7、处理结果进行准确性校验,若存在数据异常转至S8,若否则释放任务列表的任务状态;S8、任务列表根据备份数据,数据回滚到初始状态。与现有技术相比,本发明具有易扩展、易维护、提高复用性和可靠性等优点。
Description
技术领域
本发明涉及一种数据清洗方法,尤其是涉及一种基于事件流驱动的数据清洗方法和装置。
背景技术
随着市场的不断变化,业务的不断迭代更新和系统的变迁,产生了很多脏乱的数据。新的系统升级之后形成一套标准化的服务数据,这时就需要对历史的各种数据版本进行统一的数据升级成标准数据。但在现有系统中,业务流程较长、数据量大、并发高,各流程节点数据依赖性强、一致性要求较高,若数据清洗出现异常,需要立即回滚到历史版本,还需要有针对关键操作的数据记录以及回滚操作策略。
基于以上场景,需要有一套结合现有需要清洗的业务场景,抽象出了共通的事件流处理技术方案。目前市场上活跃的事件流处理技术大致有以下三种:第一是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、对处理结果进行准确性校验,检测是否存在数据异常,若是转至步骤S8,若否则释放任务列表的任务状态;
S8、根据步骤S6中对原始主任务和子任务的备份数据,目标业务的任务列表进行数据回滚到步骤S1中的初始状态。
实施例
一种基于事件流驱动的数据清洗产品包更新全部产品明细的流程,包括以下步骤:
S1、判定是否有正在处理的产品包更新的主任务,若是则退出当前清洗程序,若否则转至步骤S2;
S2、选择处理产品包更新的数据处理流程,发送任务执行异步消息;
S3、更新主任务为执行中状态,加载产品包更新的任务组件并调用相应的梳理方法;
S4、进行清洗前的数据准备,装配待操作源数据;
S5、按照主任务中产品包、产品明细的颗粒度,最大500条一次的规则标记为子任务,进入kafka消息队列,拆分的子任务进行分发,开启多线程异步处理;
S6、备份原始主任务和子任务,获取标准化数据,根据标准化数据更新子任务以及主任务的处理结果并再次备份;
S7、对产品包更新全部产品明细清洗后数据进行准确性校验,验证子任务的执行结果是否出现异常,若是转至步骤S8,若否则将产品包更新全部产品明细任务状态改为空闲中;
S8、根据任务执行前对源数据的备份,进行数据回滚到初始状态。
此外,需要说明的是,本说明书中所描述的具体实施例,所取名称可以不同,本说明书中所描述的以上内容仅仅是对本发明结构所做的举例说明。凡依据本发明构思的构造、特征及原理所做的等小变化或者简单变化,均包括于本发明的保护范围内。本发明所属技术领域的技术人员可以对所描述的具体实例做各种各样的修改或补充或采用类似的方法,只要不偏离本发明的结构或者超越本权利要求书所定义的范围,均应属于本发明的保护范围。
Claims (10)
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所述的一种基于事件流驱动的数据清洗方法,其特征在于,所述步骤S7中释放任务列表的任务状态的过程具体为调整任务列表的状态为空闲中。
7.一种使用权利要求1所述的基于事件流驱动的数据清洗方法的装置,其特征在于,包括存储器和处理器,所述数据清洗方法以计算机程序的形式储存在存储器中,并由处理器执行,执行时实现以下步骤:
S1、获取目标业务的任务列表,检测是否存在正在处理的任务,若是则退出当前清洗程序,若否则转至步骤S2;
S2、获取目标业务的数量处理流程信息;
S3、根据所述数量处理流程信息,加载组装任务实例组件及相应的梳理方法;
S4、获取需要进行数据清洗的源数据;
S5、将目标业务的任务列表拆分成一个主任务和多个子任务,所述子任务进入消息队列进行任务分发;
S6、备份原始主任务和子任务,获取标准化数据,根据所述标准化数据更新子任务以及主任务的处理结果并再次备份;
S7、对处理结果进行准确性校验,检测是否存在数据异常,若是转至步骤S8,若否则释放任务列表的任务状态;
S8、根据步骤S6中对原始主任务和子任务的备份数据,目标业务的任务列表进行数据回滚到步骤S1中的初始状态。
8.根据权利要求7所述的一种使用基于事件流驱动的数据清洗方法的装置,其特征在于,所述步骤S2中还包括根据任务列表发送任务执行异步消息。
9.根据权利要求7所述的一种使用基于事件流驱动的数据清洗方法的装置,其特征在于,所述步骤S3中还包括更新任务列表的状态为执行中。
10.根据权利要求7所述的一种使用基于事件流驱动的数据清洗方法的装置,其特征在于,所述步骤S5中的消息队列具体包括kafka消息队列。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011610990.2A CN112631755A (zh) | 2020-12-30 | 2020-12-30 | 一种基于事件流驱动的数据清洗方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011610990.2A CN112631755A (zh) | 2020-12-30 | 2020-12-30 | 一种基于事件流驱动的数据清洗方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112631755A true CN112631755A (zh) | 2021-04-09 |
Family
ID=75286692
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011610990.2A Pending CN112631755A (zh) | 2020-12-30 | 2020-12-30 | 一种基于事件流驱动的数据清洗方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112631755A (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070265944A1 (en) * | 2003-03-04 | 2007-11-15 | Catahan Nardo B Jr | Invoice data object for a common data object format |
CN108052665A (zh) * | 2017-12-29 | 2018-05-18 | 深圳市中易科技有限责任公司 | 一种基于分布式平台的数据清洗方法及装置 |
CN108153747A (zh) * | 2016-12-02 | 2018-06-12 | 航天星图科技(北京)有限公司 | 一种并行数据清洗系统 |
CN109684082A (zh) * | 2018-12-11 | 2019-04-26 | 中科恒运股份有限公司 | 基于规则算法的数据清洗方法及系统 |
CN109753496A (zh) * | 2018-11-27 | 2019-05-14 | 天聚地合(苏州)数据股份有限公司 | 一种用于大数据的数据清洗方法 |
CN110334081A (zh) * | 2019-06-28 | 2019-10-15 | 北京天眼查科技有限公司 | 海量数据的清洗方法及装置 |
CN111275397A (zh) * | 2020-01-20 | 2020-06-12 | 中国电力科学研究院有限公司 | 一种仿真培训业务数据的处理方法及系统 |
CN111352930A (zh) * | 2020-03-31 | 2020-06-30 | 深圳市优必选科技股份有限公司 | 一种模板数据处理方法、装置、服务器和存储介质 |
CN111813767A (zh) * | 2020-06-30 | 2020-10-23 | 北京玩在一起科技有限公司 | 一种电竞赛事数据的处理方法及系统 |
-
2020
- 2020-12-30 CN CN202011610990.2A patent/CN112631755A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070265944A1 (en) * | 2003-03-04 | 2007-11-15 | Catahan Nardo B Jr | Invoice data object for a common data object format |
CN108153747A (zh) * | 2016-12-02 | 2018-06-12 | 航天星图科技(北京)有限公司 | 一种并行数据清洗系统 |
CN108052665A (zh) * | 2017-12-29 | 2018-05-18 | 深圳市中易科技有限责任公司 | 一种基于分布式平台的数据清洗方法及装置 |
CN109753496A (zh) * | 2018-11-27 | 2019-05-14 | 天聚地合(苏州)数据股份有限公司 | 一种用于大数据的数据清洗方法 |
CN109684082A (zh) * | 2018-12-11 | 2019-04-26 | 中科恒运股份有限公司 | 基于规则算法的数据清洗方法及系统 |
CN110334081A (zh) * | 2019-06-28 | 2019-10-15 | 北京天眼查科技有限公司 | 海量数据的清洗方法及装置 |
CN111275397A (zh) * | 2020-01-20 | 2020-06-12 | 中国电力科学研究院有限公司 | 一种仿真培训业务数据的处理方法及系统 |
CN111352930A (zh) * | 2020-03-31 | 2020-06-30 | 深圳市优必选科技股份有限公司 | 一种模板数据处理方法、装置、服务器和存储介质 |
CN111813767A (zh) * | 2020-06-30 | 2020-10-23 | 北京玩在一起科技有限公司 | 一种电竞赛事数据的处理方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7941789B2 (en) | Common performance trace mechanism | |
US7898679B2 (en) | Method and system for scheduling jobs in a computer system | |
CN101243445B (zh) | 数据变更通告 | |
US7698602B2 (en) | Systems, methods and computer products for trace capability per work unit | |
US7996513B2 (en) | Monitoring operational data in data processing systems | |
US20100287553A1 (en) | System, method, and software for controlled interruption of batch job processing | |
US20050015773A1 (en) | Monitoring operational data in data processing systems | |
US9442817B2 (en) | Diagnosis of application server performance problems via thread level pattern analysis | |
CN111061788A (zh) | 一种基于云架构的多源异构数据转换整合系统及其实现方法 | |
CN110895484A (zh) | 任务调度方法及装置 | |
CN110895488B (zh) | 任务调度方法及装置 | |
US20040205167A1 (en) | Automatic configuration of performance management tools | |
CN113312153B (zh) | 一种集群部署方法、装置、电子设备及存储介质 | |
CN110895487A (zh) | 分布式任务调度系统 | |
CN110895483A (zh) | 任务恢复方法及装置 | |
CN110895486A (zh) | 分布式任务调度系统 | |
CN106649000A (zh) | 实时处理引擎的故障恢复方法及相应的服务器 | |
WO2023185137A1 (zh) | 一种任务管理方法、装置、设备及存储介质 | |
US20060271929A1 (en) | Method and system for providing job forecasting in a computer system | |
CN112631755A (zh) | 一种基于事件流驱动的数据清洗方法和装置 | |
CN115858499A (zh) | 一种数据库分区处理方法、装置、计算机设备和存储介质 | |
US20200210307A1 (en) | Method for automatically analyzing bottleneck in real time and an apparatus for performing the method | |
JP2010152707A (ja) | データベースのバックアップ方法及びデータベースシステム | |
US20110023018A1 (en) | Software platform and method of managing application individuals in the software platform | |
CN112732415B (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210409 |