CN109684319B - 数据清洗系统、方法、装置及存储介质 - Google Patents
数据清洗系统、方法、装置及存储介质 Download PDFInfo
- Publication number
- CN109684319B CN109684319B CN201811587767.3A CN201811587767A CN109684319B CN 109684319 B CN109684319 B CN 109684319B CN 201811587767 A CN201811587767 A CN 201811587767A CN 109684319 B CN109684319 B CN 109684319B
- Authority
- CN
- China
- Prior art keywords
- component
- components
- rule
- data cleaning
- task
- 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.)
- Active
Links
Images
Abstract
本公开是关于一种数据清洗系统、方法、装置及存储介质,所述系统包括:数据清洗组件库、数据清洗规则库、规则解析器和执行器。规则解析器用于从数据清洗组件库中选取与目标数据清洗任务相关的k个组件,从数据清洗规则库中获取k个组件各自对应的规则文本,根据k个组件各自对应的规则文本,生成总规则文本,解析总规则文本,得到目标数据清洗任务对应的配置信息,将配置信息发送给执行器。执行器用于根据配置信息,调用k个组件,通过k个组件执行目标数据清洗任务。本公开通过预先配置的不同组件来执行数据处理任务,而不必在接收到数据处理任务时,临时编写用于执行该数据处理任务的逻辑代码,从而提高了数据处理任务的执行效率。
Description
技术领域
本公开实施例涉及大数据技术领域,特别涉及一种数据清洗系统、方法、装置及存储介质。
背景技术
随着信息化的发展,传统的技术已经不能满足呈爆炸式增长的数据的存储和计算需求,大数据技术应运而生。
目前,大数据框架承载着多种类型数据的存储和计算任务。对于数据清洗任务来说,有以下几种常用的大数据框架:MapReduce是一种分布式计算框架,能处理大规模数据集,可扩展性和灵活性比较强;Spark是一种类似于MapReduce的计算框架,计算性能和可扩展性更高,处理数据分析任务更友好。
然而,相关技术在接收到一项数据清洗任务时,需要临时编写用于执行该数据清洗任务的逻辑代码,而执行一项数据清洗任务通常需要大量的复杂逻辑代码,因此该代码编写过程的耗时较长,从而导致数据清洗任务的执行效率较低。
发明内容
本公开实施例提供了一种数据清洗系统、方法、装置及存储介质。所述技术方案如下:
根据本公开实施例的第一方面,提供了一种数据清洗系统,所述系统包括:数据清洗组件库、数据清洗规则库、规则解析器和执行器;其中,所述数据清洗组件库中包括多个组件,每个所述组件用于执行数据清洗任务的至少一项操作,所述数据清洗规则库中包括每个所述组件分别对应的规则文本,所述规则文本中包含所述组件运行所需的配置信息;
所述规则解析器,用于从所述数据清洗组件库中选取与目标数据清洗任务相关的k个组件,所述k为大于1的整数;从所述数据清洗规则库中获取所述k个组件各自对应的规则文本;根据所述k个组件各自对应的规则文本,生成所述目标数据清洗任务对应的总规则文本;解析所述总规则文本,得到所述目标数据清洗任务对应的配置信息;将所述目标数据清洗任务对应的配置信息发送给所述执行器;
所述执行器,用于根据所述目标数据清洗任务对应的配置信息,调用所述k个组件;通过所述k个组件执行所述目标数据清洗任务。
可选地,所述数据清洗组件库中包括以下3种类型的组件:输入组件、计算组件和输出组件;其中,
所述输入组件用于执行所述数据清洗任务中从数据源读取数据的操作;
所述计算组件用于执行所述数据清洗任务中对数据进行清洗和计算的操作,得到数据处理结果;
所述输出组件用于执行所述数据清洗任务中输出所述数据处理结果的操作。
可选地,所述规则解析器,用于:
从所述输入组件中选取与所述目标数据清洗任务的数据源相匹配的组件;
从所述计算组件中选取与所述目标数据清洗任务的处理和计算逻辑相匹配的组件;
从所述输出组件中选取与所述目标数据清洗任务的数据处理结果相匹配的组件。
可选地,所述数据清洗组件库中还包括以下1种类型的组件:优化组件;
所述优化组件用于对所述数据处理结果执行优化操作,得到优化后的数据处理结果;其中,所述优化后的数据处理结果由所述输出组件输出。
可选地,所述规则解析器,用于:
按照所述k个组件之间的依赖和嵌套关系对所述k个组件各自对应的规则文本进行组合,生成所述目标数据清洗任务对应的总规则文本。
可选地,所述系统还包括:监听器;
所述监听器,用于记录所述目标数据清洗任务的执行状态信息;向外部系统提供所述执行状态信息。
根据本公开实施例的第二方面,提供了一种数据清洗方法,应用于数据清洗系统中,所述系统包括:数据清洗组件库、数据清洗规则库、规则解析器和执行器;其中,所述数据清洗组件库中包括多个组件,每个所述组件用于执行数据清洗任务的至少一项操作,所述数据清洗规则库中包括每个所述组件分别对应的规则文本,所述规则文本中包含所述组件运行所需的配置信息;
所述方法包括:
所述规则解析器从所述数据清洗组件库中选取与目标数据清洗任务相关的k个组件,所述k为大于1的整数;从所述数据清洗规则库中获取所述k个组件各自对应的规则文本;根据所述k个组件各自对应的规则文本,生成所述目标数据清洗任务对应的总规则文本;解析所述总规则文本,得到所述目标数据清洗任务对应的配置信息;将所述目标数据清洗任务对应的配置信息发送给所述执行器;
所述执行器根据所述目标数据清洗任务对应的配置信息,调用所述k个组件;通过所述k个组件执行所述目标数据清洗任务。
可选地,所述数据清洗组件库中包括以下3种类型的组件:输入组件、计算组件和输出组件;其中,
所述输入组件用于执行所述数据清洗任务中从数据源读取数据的操作;
所述计算组件用于执行所述数据清洗任务中对数据进行清洗和计算的操作,得到数据处理结果;
所述输出组件用于执行所述数据清洗任务中输出所述数据处理结果的操作。
可选地,所述规则解析器从所述数据清洗组件库中选取与目标数据清洗任务相关的k个组件,包括:
所述规则解析器从所述输入组件中选取与所述目标数据清洗任务的数据源相匹配的组件;
所述规则解析器从所述计算组件中选取与所述目标数据清洗任务的处理和计算逻辑相匹配的组件;
所述规则解析器从所述输出组件中选取与所述目标数据清洗任务的数据处理结果相匹配的组件。
可选地,所述数据清洗组件库中还包括以下1种类型的组件:优化组件;
所述优化组件用于对所述数据处理结果执行优化操作,得到优化后的数据处理结果;其中,所述优化后的数据处理结果由所述输出组件输出。
可选地,所述规则解析器根据所述k个组件各自对应的规则文本,生成所述目标数据清洗任务对应的总规则文本,包括:
所述规则解析器按照所述k个组件之间的依赖和嵌套关系对所述k个组件各自对应的规则文本进行组合,生成所述目标数据清洗任务对应的总规则文本。
可选地,所述系统还包括监听器,所述方法还包括:
所述监听器记录所述目标数据清洗任务的执行状态信息;向外部系统提供所述执行状态信息。
根据本公开实施例的第三方面,提供了一种数据清洗装置,所述装置包括:
规则解析模块,被配置为从数据清洗组件库中选取与目标数据清洗任务相关的k个组件,所述数据清洗组件库中包括多个组件,每个所述组件用于执行数据清洗任务的至少一项操作,所述k为大于1的整数;从数据清洗规则库中获取所述k个组件各自对应的规则文本,所述数据清洗规则库中包括每个所述组件分别对应的规则文本,所述规则文本中包含所述组件运行所需的配置信息;根据所述k个组件各自对应的规则文本,生成所述目标数据清洗任务对应的总规则文本;解析所述总规则文本,得到所述目标数据清洗任务对应的配置信息;
任务执行模块,被配置为根据所述目标数据清洗任务对应的配置信息,调用所述k个组件;通过所述k个组件执行所述目标数据清洗任务。
可选地,所述数据清洗组件库中包括以下3种类型的组件:输入组件、计算组件和输出组件;其中,
所述输入组件用于执行所述数据清洗任务中从数据源读取数据的操作;
所述计算组件用于执行所述数据清洗任务中对数据进行清洗和计算的操作,得到数据处理结果;
所述输出组件用于执行所述数据清洗任务中输出所述数据处理结果的操作。
可选地,所述规则解析模块,被配置为:
从所述输入组件中选取与所述目标数据清洗任务的数据源相匹配的组件;
从所述计算组件中选取与所述目标数据清洗任务的处理和计算逻辑相匹配的组件;
从所述输出组件中选取与所述目标数据清洗任务的数据处理结果相匹配的组件。
可选地,所述数据清洗组件库中还包括以下1种类型的组件:优化组件;
所述优化组件用于对所述数据处理结果执行优化操作,得到优化后的数据处理结果;其中,所述优化后的数据处理结果由所述输出组件输出。
可选地,所述规则解析模块,被配置为:
按照所述k个组件之间的依赖和嵌套关系对所述k个组件各自对应的规则文本进行组合,生成所述目标数据清洗任务对应的总规则文本。
可选地,所述装置还包括:
监听模块,被配置为记录所述目标数据清洗任务的执行状态信息;向外部系统提供所述执行状态信息。
根据本公开实施例的第四方面,提供了一种数据清洗装置,所述装置包括:
处理器;
用于存储所述处理器的可执行指令的存储器;
其中,所述处理器被配置为:
从数据清洗组件库中选取与目标数据清洗任务相关的k个组件,所述数据清洗组件库中包括多个组件,每个所述组件用于执行数据清洗任务的至少一项操作,所述k为大于1的整数;从数据清洗规则库中获取所述k个组件各自对应的规则文本,所述数据清洗规则库中包括每个所述组件分别对应的规则文本,所述规则文本中包含所述组件运行所需的配置信息;根据所述k个组件各自对应的规则文本,生成所述目标数据清洗任务对应的总规则文本;解析所述总规则文本,得到所述目标数据清洗任务对应的配置信息;
根据所述目标数据清洗任务对应的配置信息,调用所述k个组件;通过所述k个组件执行所述目标数据清洗任务。
根据本公开实施例的第五方面,提供了一种非临时性计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如第二方面所述方法的步骤。
本公开实施例提供的技术方案可以包括以下有益效果:
通过预先配置的不同组件来执行数据处理任务,而不必在接收到数据处理任务时,临时编写用于执行该数据处理任务的逻辑代码,从而提高了数据处理任务的执行效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是根据一示例性实施例示出的一种数据清洗系统的示意图;
图2是根据另一示例性实施例示出的一种数据清洗系统的示意图;
图3是根据一示例性实施例示出的一种数据清洗方法的流程图;
图4是根据一示例性实施例示出的一种数据清洗装置的框图;
图5是根据另一示例性实施例示出的一种数据清洗装置的框图;
图6是根据另一示例性实施例示出的一种数据清洗装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
图1是根据一示例性实施例示出的一种数据清洗系统的示意图。该数据清洗系统10可以包括:数据清洗组件库11、数据清洗规则库12、规则解析器13和执行器14。
数据清洗组件库11中包括预先配置的用于实现数据清洗任务的组件。在本公开实施例中,数据清洗组件库中包括多个组件,每个组件用于执行数据清洗任务的至少一项操作。在本公开实施例中,将数据清洗任务的整个过程中涉及的各项操作进行划分,通过预先配置的不同组件来执行不同的操作,实现了对数据清洗过程的配置化和组件化。
数据清洗规则库12中包括预先配置的每个组件分别对应的规则文本。对于任意一个组件来说,该组件对应的规则文本中包含该组件运行所需的配置信息。其中,配置信息可以包括组件运行所需的参数和计算逻辑,可选地,配置信息还包括该组件与其它组件之间的依赖和嵌套关系。
规则解析器13用于实现对规则文本的解析功能。例如,规则解析器13可以对数据清洗规则库12中的规则文本进行解析,得到相应的配置信息。
执行器14用于执行数据清洗任务。在本公开实施例中,执行器14可以调度数据清洗组件库12中的组件来执行数据清洗任务。
可选地,如图1所示,该数据清洗系统10还包括监听器15。监听器15用于监控数据清洗任务的执行过程,实现对数据清洗任务的执行状态信息的记录和上报。可选地,监听器15还能够实现对执行数据清洗任务的过程中产生的临时文件进行清理。
另外,该数据清洗系统10可以部署在计算机设备中,由计算机设备运行该数据清洗系统10,执行数据清洗任务。上述计算机设备是指具备计算和处理能力的电子设备,例如,PC(Personal Computer,个人计算机)、服务器等。服务器可以是一台服务器,也可以是由多台服务器组成的服务器集群,或者是一个云计算服务中心。
下面,结合图1所示的数据清洗系统10,对本公开技术方案进行介绍说明。
规则解析器13,用于从数据清洗组件库11中选取与目标数据清洗任务相关的k个组件,k为大于1的整数;从数据清洗规则库12中获取k个组件各自对应的规则文本;根据k个组件各自对应的规则文本,生成目标数据清洗任务对应的总规则文本;解析总规则文本,得到目标数据清洗任务对应的配置信息;将目标数据清洗任务对应的配置信息发送给执行器14。
目标数据清洗任务可以是任意一个数据清洗任务。目标数据清洗任务可以由用户指定,也可以由服务器根据配置自行选择,本公开实施例对此不作限定。
规则解析器13在获取到目标数据清洗任务之后,首先从数据清洗组件库11中选取与该目标数据清洗任务相关的若干个组件。其中,与该目标数据清洗任务相关的组件,是指执行该目标数据清洗任务所要使用的组件。规则解析器13可以根据目标数据清洗任务包含的各项操作,从数据清洗组件库11中选取用于执行上述各项操作的组件,作为与该目标数据清洗任务相关的组件。例如,目标数据清洗任务包含操作A,则规则解析器13从数据清洗组件库11中选取用于执行该操作A的组件。技术人员可以预先根据数据清洗任务的整个过程中涉及的各项操作,对不同操作进行划分,然后由不同的组件来实现上述不同的操作,各个组件的功能可以通过编码来实现。技术人员预先通过编码生成各个组件,然后将该预先生成的组件存储在数据清洗组件库11中,以供后续在接收到数据清洗任务时,能够直接从该数据清洗组件库11中选择合适的组件进行使用。这样,通过预先配置的不同组件来执行数据处理任务,而不必在接收到数据处理任务时,临时编写用于执行该数据处理任务的逻辑代码,从而提高了数据处理任务的执行效率。
每个组件都有其对应的规则文本。对于任意一个组件来说,该组件对应的规则文本中包含该组件运行所需的配置信息。其中,配置信息可以包括组件运行所需的参数和计算逻辑,可选地还包括该组件与其它组件之间的依赖和嵌套关系。规则文本可以预先编写并存储在数据清洗规则库12中。这样,规则解析器13在选取与目标数据清洗任务相关的k个组件之后,就可以直接从数据清洗规则库12中选取该k个组件各自对应的规则文本,简单高效。
规则解析器13在获取到k个组件各自对应的规则文本之后,根据该k个组件各自对应的规则文本,生成目标数据清洗任务对应的总规则文本。可选地,规则解析器13将k个组件各自对应的规则文本,按照k个组件之间的依赖和嵌套关系进行组合,生成总规则文本。例如,组件A是在组件B执行完成之后才开始执行,则规则解析器13可以将组件A对应的规则文本中的内容,添加在组件B对应的规则文本中的内容之后。又例如,组件A在执行的过程中,需要调用组件B,则规则解析器13可以将组件B对应的规则文本中的内容,添加在组件A对应的规则文本中用于调用组件B的语句之后。当然,上述关于总规则文本的生成方式的介绍仅是示例性和解释性的,并不用于限定本公开。总规则文本中包括目标数据清洗任务对应的配置信息,也即包括执行目标数据清洗任务所用到的各个组件在运行时所需的配置信息。
规则解析器13在生成总规则文本之后,对该总规则文本进行解析,可以得到目标数据清洗任务对应的配置信息,然后规则解析器13将上述配置信息发送给执行器14,由执行器14调用相应的组件执行目标数据清洗任务。
执行器14,用于根据目标数据清洗任务对应的配置信息,调用上述k个组件;通过该k个组件执行目标数据清洗任务。
执行器14在接收到规则解析器13发送的目标数据清洗任务对应的配置信息之后,对k个组件进行初始化,然后按照k个组件之间的依赖和嵌套关系,调用k个组件执行目标数据清洗任务。可选地,执行器14在调用任一组件之后,可以将该组件运行所需的配置信息发送给该组件,以便该组件根据接收到的配置信息执行相应的操作。
在本公开实施例中,组件和组件之间虽然可以有依赖和嵌套关系,但是各个组件之间仍然是互相独立的。各个组件之间可以进行任意组合,从而应对多样化的数据清洗任务的需求。另外,组件由执行器14统一调度,不会出现一个组件调用另一个组件的情况,从而可以对数据清洗组件库11中的组件进行任意扩展和添加。
可选地,本公开实施例提供的数据清洗系统10还包括监听器15。监听器15用于记录目标数据清洗任务的执行状态信息;向外部系统提供执行状态信息。
目标数据清洗任务的执行状态信息用于指示目标数据清洗任务的执行状态,例如,执行状态可以是成功,失败等。可选地,目标数据清洗任务的执行状态信息还可以包括目标数据清洗任务的开始时间、结束时间、总耗时等信息,本公开实施例对此不作限定。监听器15可以对外提供接口,以便向外部系统提供执行状态信息。
另外,在目标数据清洗任务的执行过程中,会产生一些临时文件,在目标数据清洗任务完成之后,监听器15还可以清理上述临时文件,以释放服务器的存储空间。
需要说明的一点是,本公开实施例提供的数据清洗系统10不仅适用于数据清洗任务,还可以适用于简单的大数据计算以及ETL(Extract Transform Load,抽取-交互转换-加载)任务,本公开实施例对此不作限定。
综上所述,本公开实施例提供的技术方案,通过预先配置的不同组件来执行数据处理任务,而不必在接收到数据处理任务时,临时编写用于执行该数据处理任务的逻辑代码,从而提高了数据处理任务的执行效率。
另外,数据清洗组件库将数据清洗任务涉及的过程组件化,各个组件之间可进行任意组合,从而应对多样化的数据清洗任务的需求。另外,组件由执行器统一调度,不会出现一个组件调用另一个组件的情况,从而可以对数据清洗组件库中的组件进行任意扩展和添加。
另外,数据清洗系统还包括监听器,监听器可以记录数据清洗任务的执行状态信息,并向外部系统提供该执行状态信息,可以方便用户及时获取数据清洗任务的执行状态。
可选地,按照数据清洗任务的整个过程所涉及的各项操作,对组件进行划分,如图2所示,数据清洗组件库11中包括以下3种类型的组件:输入组件111、计算组件112和输出组件113。
在本公开实施例中,输入组件111用于执行数据清洗任务中从数据源读取数据的操作。可选地,根据数据清洗系统10支持的数据源框架和格式类型,输入组件111包括但不限于以下至少一种组件:Textfile(文本文件)组件、Parquet组件、Sequencefile组件、CSV(Comma-Separated Values,字符分隔值)组件、JSON(JavaScript Object Notation,JS对象简谱)组件、JDBC(Java DataBase Connectivity,Java数据库连接)组件等。在实际应用中,可以根据实际需求对上述输入组件111中包含的组件进行扩展,以支持更多的数据源框架和格式类型。
计算组件112用于执行数据清洗任务中对数据进行清洗和计算的操作,得到数据处理结果。可选地,根据数据清洗任务涉及的计算逻辑,计算组件112包括但不限于以下至少一种组件:SQL(Structured Query Language,结构化查询语言)组件、聚合算子组件、Union(合并)算子组件、Join(关联)算子组件等。在实际应用中,可以根据实际需求对上述计算组件112中包含的组件进行扩展,以支持更多的计算逻辑。
输出组件113用于执行数据清洗任务中输出数据处理结果的操作。可选地,根据数据处理结果的格式类型,输出组件113包括但不限于以下至少一种组件:Textfile组件、Parquet组件、Sequencefile组件、CSV组件、JSON组件、JDBC组件、Avro组件等。在实际应用中,可以根据实际需求对上述输出组件113中包含的组件进行扩展,以支持更多的输出格式类型。
可选地,数据清洗组件库11中还包括以下1种类型的组件:优化组件114。优化组件114用于对数据处理结果执行优化操作,得到优化后的数据处理结果;其中,优化后的数据处理结果由输出组件113输出。可选地,优化组件114包括但不限于以下至少一种组件:数据重分区组件、数据持久化组件、二次聚合算子组件、缓存清洗组件、HiveQL语法支持组件等。在实际应用中,可以根据实际需求对上述优化组件114中包含的组件进行扩展,以支持更多的优化操作。
相应地,规则解析器13从数据清洗组件库11中选取与目标数据清洗任务相关的k个组件时,具体用于:从输入组件111中选取与目标数据清洗任务的数据源相匹配的组件;从计算组件112中选取与目标数据清洗任务的处理和计算逻辑相匹配的组件;从输出组件113中选取与目标数据清洗任务的数据处理结果相匹配的组件。例如,目标数据清洗任务的数据源的格式类型为Textfile,目标数据清洗任务涉及的处理和计算逻辑为聚合,目标数据清洗任务的数据处理结果的格式类型为Sequencefile,则规则解析器13从输入组件111中选取Textfile组件,从计算组件112中选取聚合算子组件,从输出组件113中选取Sequencefile组件作为实现目标数据清洗任务的组件。
可选地,当数据清洗组件库11中还包括优化组件114时,如果目标数据清洗任务还需执行对数据处理结果的优化操作,则规则解析器13还可以从优化组件114中选取与目标数据清洗任务的优化操作相匹配的组件。例如,目标数据清洗任务涉及对数据处理结果进行缓存清理,则规则解析器13从优化组件114中选取缓存清理组件作为实现目标数据清洗任务的组件。
当然,规则解析器13根据目标数据清洗任务,可以从输入组件111、计算组件112、优化组件114、输出组件113中选取一个或多个组件来实现该目标数据清洗任务。
另外,对于目标数据清洗任务来说,输入组件111的输入可以是一个待清洗的数据文件,输出组件113的输出可以是一个清洗完成的数据文件。输入组件111的输出、输出组件113的输入、计算组件112的输入和输出以及优化组件114的输入和输出,都可以是DataFrame数据集。
可选地,上述组件可以采用SparkSQL来编码实现,其具有灵活性和可扩展性强的优点。当然,在一些其它实施例中,上述组件也可以由Flink或其它程序语言来编码实现。
综上所述,本公开实施例提供的技术方案,通过按照数据清洗任务的整个过程所涉及的各项操作,对组件进行划分,包括输入组件、计算组件、输出组件等不同类型组件,组件划分更为合理,各个组件之间可以进行任意组合,从而可以应对多样化的数据清洗任务的需求。
另外,数据组件库中还包括优化组件,优化组件可以用于对数据处理结果执行优化操作,得到优化后的数据处理结果,从而更好地满足多样化的数据清洗任务的需求。
图3是根据一示例性实施例示出的一种数据清洗方法的流程图,该方法可应用于上文介绍的数据清洗系统10中。该方法可以包括如下几个步骤(301~307):
在步骤301中,规则解析器从数据清洗组件库中选取与目标数据清洗任务相关的k个组件,k为大于1的整数。
可选地,数据清洗组件库中包括以下3种类型的组件:输入组件、计算组件和输出组件。其中,输入组件用于执行数据清洗任务中从数据源读取数据的操作;计算组件用于执行数据清洗任务中对数据进行清洗和计算的操作,得到数据处理结果;输出组件用于执行数据清洗任务中输出数据处理结果的操作。
可选地,数据清洗组件库中还包括以下1种类型的组件:优化组件。优化组件用于对数据处理结果执行优化操作,得到优化后的数据处理结果;其中,优化后的数据处理结果由输出组件输出。
可选地,上述步骤301包括以下几个子步骤:
1、从输入组件中选取与数据源的格式类型相关的组件;
2、从计算组件中选取与目标数据清洗任务涉及的计算逻辑相关的组件;
3、从输出组件中选取与数据处理结果的格式类型相关的组件。
在步骤302中,规则解析器从数据清洗规则库中获取k个组件各自对应的规则文本。
在步骤303中,规则解析器根据k个组件各自对应的规则文本,生成目标数据清洗任务对应的总规则文本。
可选地,规则解析器将k个组件各自对应的规则文本,按照k个组件之间的依赖和嵌套关系进行组合,生成总规则文本。
在步骤304中,规则解析器解析总规则文本,得到目标数据清洗任务对应的配置信息。
在步骤305中,规则解析器将目标数据清洗任务对应的配置信息发送给执行器。
在步骤306中,执行器根据目标数据清洗任务对应的配置信息,调用k个组件。
在步骤307中,执行器通过k个组件执行目标数据清洗任务。
可选地,当数据清洗系统10还包括监听器时,上述方法还包括:监听器记录目标数据清洗任务的执行状态信息;向外部系统提供执行状态信息。
上述方法实施例的介绍说明可参见上文系统实施例,此处不再赘述。
综上所述,本公开实施例提供的技术方案,通过预先配置的不同组件来执行数据处理任务,而不必在接收到数据处理任务时,临时编写用于执行该数据处理任务的逻辑代码,从而提高了数据处理任务的执行效率。
另外,数据清洗组件库将数据清洗任务涉及的过程组件化,各个组件之间可进行任意组合,从而应对多样化的数据清洗任务的需求。另外,组件由执行器统一调度,不会出现一个组件调用另一个组件的情况,从而可以对数据清洗组件库中的组件进行任意扩展和添加。
另外,数据清洗系统还包括监听器,监听器可以记录数据清洗任务的执行状态信息,并向外部系统提供该执行状态信息,可以方便用户及时获取数据清洗任务的执行状态。
下述为本公开装置实施例,可以用于执行本公开方法实施例。对于本公开装置实施例中未披露的细节,请参照本公开系统实施例。
图4是根据一示例性实施例示出的一种数据清洗装置的框图。该装置具有实现上述方法示例的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。该装置可以是上文介绍的计算机设备,也可以设置在计算机设备中。该装置400包括:规则解析模块410和任务执行模块420。
所述规则解析模块410可以是上文介绍的规则解析器,所述任务执行模块420可以是上文介绍的执行器。
所述规则解析模块410,被配置为从数据清洗组件库中选取与目标数据清洗任务相关的k个组件,所述数据清洗组件库中包括多个组件,每个所述组件用于执行数据清洗任务的至少一项操作,所述k为大于1的整数;从数据清洗规则库中获取所述k个组件各自对应的规则文本,所述数据清洗规则库中包括每个所述组件分别对应的规则文本,所述规则文本中包含所述组件运行所需的配置信息;根据所述k个组件各自对应的规则文本,生成所述目标数据清洗任务对应的总规则文本;解析所述总规则文本,得到所述目标数据清洗任务对应的配置信息。
所述任务执行模块420,被配置为根据所述目标数据清洗任务对应的配置信息,调用所述k个组件;通过所述k个组件执行所述目标数据清洗任务。
综上所述,本公开实施例提供的技术方案,通过预先配置的不同组件来执行数据处理任务,而不必在接收到数据处理任务时,临时编写用于执行该数据处理任务的逻辑代码,从而提高了数据处理任务的执行效率。
可选地,所述数据清洗组件库中包括以下3种类型的组件:输入组件、计算组件和输出组件;其中,
所述输入组件用于执行所述数据清洗任务中从数据源读取数据的操作;
所述计算组件用于执行所述数据清洗任务中对数据进行清洗和计算的操作,得到数据处理结果;
所述输出组件用于执行所述数据清洗任务中输出所述数据处理结果的操作。
可选地,所述规则解析模块410,被配置为:
从所述输入组件中选取与所述数据源的格式类型相关的组件;
从所述计算组件中选取与所述目标数据清洗任务涉及的计算逻辑相关的组件;
从所述输出组件中选取与所述数据处理结果的格式类型相关的组件。
可选地,所述数据清洗组件库中还包括以下1种类型的组件:优化组件;
所述优化组件用于对所述数据处理结果执行优化操作,得到优化后的数据处理结果;其中,所述优化后的数据处理结果由所述输出组件输出。
可选地,所述规则解析模块410,被配置为:
将所述k个组件各自对应的规则文本,按照所述k个组件之间的依赖和嵌套关系进行组合,生成所述总规则文本。
可选地,如图5所示,所述装置400还包括:监听模块430。
所述监听模块430,被配置为记录所述目标数据清洗任务的执行状态信息;向外部系统提供所述执行状态信息。
需要说明的一点是,上述实施例提供的装置在实现其功能时,仅以上述各个功能模块的划分进行举例说明,实际应用中,可以根据实际需要而将上述功能分配由不同的功能模块完成,即将设备的内容结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该系统的实施例中进行了详细描述,此处将不做详细阐述说明。
本公开一示例性实施例还提供了一种数据清洗装置,能够实现本公开提供的数据清洗方法。该装置包括:处理器,以及用于存储处理器的可执行指令的存储器。其中,处理器被配置为:
从数据清洗组件库中选取与目标数据清洗任务相关的k个组件,所述数据清洗组件库中包括多个组件,每个所述组件用于执行数据清洗任务的至少一项操作,所述k为大于1的整数;从数据清洗规则库中获取所述k个组件各自对应的规则文本,所述数据清洗规则库中包括每个所述组件分别对应的规则文本,所述规则文本中包含所述组件运行所需的配置信息;根据所述k个组件各自对应的规则文本,生成所述目标数据清洗任务对应的总规则文本;解析所述总规则文本,得到所述目标数据清洗任务对应的配置信息;
根据所述目标数据清洗任务对应的配置信息,调用所述k个组件;通过所述k个组件执行所述目标数据清洗任务。
可选地,所述数据清洗组件库中包括以下3种类型的组件:输入组件、计算组件和输出组件;其中,
所述输入组件用于执行所述数据清洗任务中从数据源读取数据的操作;
所述计算组件用于执行所述数据清洗任务中对数据进行清洗和计算的操作,得到数据处理结果;
所述输出组件用于执行所述数据清洗任务中输出所述数据处理结果的操作。
可选地,所述处理器被配置为:
从所述输入组件中选取与所述数据源的格式类型相关的组件;
从所述计算组件中选取与所述目标数据清洗任务涉及的计算逻辑相关的组件;
从所述输出组件中选取与所述数据处理结果的格式类型相关的组件。
可选地,所述数据清洗组件库中还包括以下1种类型的组件:优化组件;
所述优化组件用于对所述数据处理结果执行优化操作,得到优化后的数据处理结果;其中,所述优化后的数据处理结果由所述输出组件输出。
可选地,所述处理器被配置为:
将所述k个组件各自对应的规则文本,按照所述k个组件之间的依赖和嵌套关系进行组合,生成所述总规则文本。
可选地,所述处理器还被配置为:
记录所述目标数据清洗任务的执行状态信息;向外部系统提供所述执行状态信息。
图6是根据另一示例性实施例示出的一种数据清洗装置600的框图。例如,装置600可以被提供为一服务器。参照图6,装置600包括处理组件622,其进一步包括一个或多个处理器,以及由存储器632所代表的存储器资源,用于存储可由处理部件622执行的指令,例如应用程序。存储器632中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件622被配置为执行指令,以执行上述数据清洗方法。
装置600还可以包括一个电源组件626被配置为执行装置600的电源管理,一个有线或无线网络接口650被配置为将装置600连接到网络,和一个输入输出(I/O)接口658。装置600可以操作基于存储在存储器632的操作系统,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
在示例性实施例中,还提供了一种非临时性计算机可读存储介质,其上存储有计算机程序,上述计算机程序可由装置600的处理组件622执行以完成上述数据清洗方法。
例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (12)
1.一种数据清洗系统,其特征在于,所述系统包括:数据清洗组件库、数据清洗规则库、规则解析器、执行器和监听器;其中,所述数据清洗组件库中包括多个组件,每个所述组件用于执行数据清洗任务的至少一项操作,所述数据清洗规则库中包括每个所述组件分别对应的规则文本,所述规则文本中包含所述组件运行所需的配置信息;
所述规则解析器,用于根据目标数据清洗任务包含的各项操作,从所述数据清洗组件库中选取用于执行所述各项操作的k个组件,所述k为大于1的整数;从所述数据清洗规则库中获取所述k个组件各自对应的规则文本;根据所述k个组件各自对应的规则文本,生成所述目标数据清洗任务对应的总规则文本;解析所述总规则文本,得到所述目标数据清洗任务对应的配置信息;将所述目标数据清洗任务对应的配置信息发送给所述执行器;
所述执行器,用于根据所述目标数据清洗任务对应的配置信息,调用所述k个组件;通过所述k个组件执行所述目标数据清洗任务;
所述监听器,用于记录所述目标数据清洗任务的执行状态信息;向外部系统提供所述执行状态信息;
所述监听器,还用于在所述目标数据清洗任务完成之后,对执行目标数据清洗任务的过程中产生的临时文件进行清理。
2.根据权利要求1所述的系统,其特征在于,所述数据清洗组件库中包括以下3种类型的组件:输入组件、计算组件和输出组件;其中,
所述输入组件用于执行所述数据清洗任务中从数据源读取数据的操作;
所述计算组件用于执行所述数据清洗任务中对数据进行清洗和计算的操作,得到数据处理结果;
所述输出组件用于执行所述数据清洗任务中输出所述数据处理结果的操作。
3.根据权利要求2所述的系统,其特征在于,所述规则解析器,用于:
从所述输入组件中选取与所述目标数据清洗任务的数据源相匹配的组件;
从所述计算组件中选取与所述目标数据清洗任务的处理和计算逻辑相匹配的组件;
从所述输出组件中选取与所述目标数据清洗任务的数据处理结果相匹配的组件。
4.根据权利要求2所述的系统,其特征在于,所述数据清洗组件库中还包括以下1种类型的组件:优化组件;
所述优化组件用于对所述数据处理结果执行优化操作,得到优化后的数据处理结果;其中,所述优化后的数据处理结果由所述输出组件输出。
5.根据权利要求1所述的系统,其特征在于,所述规则解析器,用于:
按照所述k个组件之间的依赖和嵌套关系对所述k个组件各自对应的规则文本进行组合,生成所述目标数据清洗任务对应的总规则文本。
6.一种数据清洗方法,其特征在于,应用于数据清洗系统中,所述系统包括:数据清洗组件库、数据清洗规则库、规则解析器、执行器和监听器;其中,所述数据清洗组件库中包括多个组件,每个所述组件用于执行数据清洗任务的至少一项操作,所述数据清洗规则库中包括每个所述组件分别对应的规则文本,所述规则文本中包含所述组件运行所需的配置信息;
所述方法包括:
所述规则解析器根据目标数据清洗任务包含的各项操作,从所述数据清洗组件库中选取用于执行所述各项操作的k个组件,所述k为大于1的整数;从所述数据清洗规则库中获取所述k个组件各自对应的规则文本;根据所述k个组件各自对应的规则文本,生成所述目标数据清洗任务对应的总规则文本;解析所述总规则文本,得到所述目标数据清洗任务对应的配置信息;将所述目标数据清洗任务对应的配置信息发送给所述执行器;
所述执行器根据所述目标数据清洗任务对应的配置信息,调用所述k个组件;通过所述k个组件执行所述目标数据清洗任务;
所述监听器记录所述目标数据清洗任务的执行状态信息;向外部系统提供所述执行状态信息;
所述监听器在所述目标数据清洗任务完成之后,对执行目标数据清洗任务的过程中产生的临时文件进行清理。
7.根据权利要求6所述的方法,其特征在于,所述数据清洗组件库中包括以下3种类型的组件:输入组件、计算组件和输出组件;其中,
所述输入组件用于执行所述数据清洗任务中从数据源读取数据的操作;
所述计算组件用于执行所述数据清洗任务中对数据进行清洗和计算的操作,得到数据处理结果;
所述输出组件用于执行所述数据清洗任务中输出所述数据处理结果的操作。
8.根据权利要求7所述的方法,其特征在于,所述规则解析器从所述数据清洗组件库中选取与目标数据清洗任务相关的k个组件,包括:
所述规则解析器从所述输入组件中选取与所述目标数据清洗任务的数据源相匹配的组件;
所述规则解析器从所述计算组件中选取与所述目标数据清洗任务的处理和计算逻辑相匹配的组件;
所述规则解析器从所述输出组件中选取与所述目标数据清洗任务的数据处理结果相匹配的组件。
9.根据权利要求7所述的方法,其特征在于,所述数据清洗组件库中还包括以下1种类型的组件:优化组件;
所述优化组件用于对所述数据处理结果执行优化操作,得到优化后的数据处理结果;其中,所述优化后的数据处理结果由所述输出组件输出。
10.根据权利要求6所述的方法,其特征在于,所述规则解析器根据所述k个组件各自对应的规则文本,生成所述目标数据清洗任务对应的总规则文本,包括:
所述规则解析器按照所述k个组件之间的依赖和嵌套关系对所述k个组件各自对应的规则文本进行组合,生成所述目标数据清洗任务对应的总规则文本。
11.一种数据清洗装置,其特征在于,所述装置包括:
处理器;
用于存储所述处理器的可执行指令的存储器;
其中,所述处理器被配置为:
根据目标数据清洗任务包含的各项操作,从数据清洗组件库中选取用于执行所述各项操作的k个组件,所述数据清洗组件库中包括多个组件,每个所述组件用于执行数据清洗任务的至少一项操作,所述k为大于1的整数;从数据清洗规则库中获取所述k个组件各自对应的规则文本,所述数据清洗规则库中包括每个所述组件分别对应的规则文本,所述规则文本中包含所述组件运行所需的配置信息;根据所述k个组件各自对应的规则文本,生成所述目标数据清洗任务对应的总规则文本;解析所述总规则文本,得到所述目标数据清洗任务对应的配置信息;
根据所述目标数据清洗任务对应的配置信息,调用所述k个组件;通过所述k个组件执行所述目标数据清洗任务;
记录所述目标数据清洗任务的执行状态信息;向外部系统提供所述执行状态信息;
在所述目标数据清洗任务完成之后,对执行目标数据清洗任务的过程中产生的临时文件进行清理。
12.一种非临时性计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求6至10任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811587767.3A CN109684319B (zh) | 2018-12-25 | 2018-12-25 | 数据清洗系统、方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811587767.3A CN109684319B (zh) | 2018-12-25 | 2018-12-25 | 数据清洗系统、方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109684319A CN109684319A (zh) | 2019-04-26 |
CN109684319B true CN109684319B (zh) | 2021-06-04 |
Family
ID=66189211
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811587767.3A Active CN109684319B (zh) | 2018-12-25 | 2018-12-25 | 数据清洗系统、方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109684319B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112015398A (zh) * | 2019-05-31 | 2020-12-01 | 杭州海康威视数字技术股份有限公司 | 数据融合方法及装置 |
CN110851514B (zh) * | 2019-10-17 | 2022-10-21 | 杭州安恒信息技术股份有限公司 | 基于flink的etl处理方法 |
CN111611236A (zh) * | 2020-05-28 | 2020-09-01 | 宁波和利时智能科技有限公司 | 一种数据分析方法及系统 |
CN113094164A (zh) * | 2021-04-27 | 2021-07-09 | 上海商汤科技开发有限公司 | 一种任务处理装置、方法、计算机设备及存储介质 |
CN114817393B (zh) * | 2022-06-24 | 2022-09-16 | 深圳市信联征信有限公司 | 数据抽取和清洗方法、装置及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103593352A (zh) * | 2012-08-15 | 2014-02-19 | 阿里巴巴集团控股有限公司 | 一种海量数据清洗方法及装置 |
CN104731859A (zh) * | 2015-02-02 | 2015-06-24 | 厦门市美亚柏科信息股份有限公司 | 数据处理方法及装置 |
CN106502720A (zh) * | 2016-09-26 | 2017-03-15 | 海尔优家智能科技(北京)有限公司 | 一种数据处理方法和装置 |
CN109033274A (zh) * | 2018-07-10 | 2018-12-18 | 中国银行股份有限公司 | 一种数据清洗方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107229662B (zh) * | 2016-03-25 | 2022-02-25 | 阿里巴巴集团控股有限公司 | 数据清洗方法和装置 |
US10558627B2 (en) * | 2016-04-21 | 2020-02-11 | Leantaas, Inc. | Method and system for cleansing and de-duplicating data |
US10613487B2 (en) * | 2016-11-09 | 2020-04-07 | Kabushiki Kaisha Toshiba | Data collection system, processing system, and storage medium |
CN107562428A (zh) * | 2017-09-08 | 2018-01-09 | 上海博科资讯股份有限公司 | 基于规则的自适应软件界面布局方法及系统 |
-
2018
- 2018-12-25 CN CN201811587767.3A patent/CN109684319B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103593352A (zh) * | 2012-08-15 | 2014-02-19 | 阿里巴巴集团控股有限公司 | 一种海量数据清洗方法及装置 |
CN104731859A (zh) * | 2015-02-02 | 2015-06-24 | 厦门市美亚柏科信息股份有限公司 | 数据处理方法及装置 |
CN106502720A (zh) * | 2016-09-26 | 2017-03-15 | 海尔优家智能科技(北京)有限公司 | 一种数据处理方法和装置 |
CN109033274A (zh) * | 2018-07-10 | 2018-12-18 | 中国银行股份有限公司 | 一种数据清洗方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109684319A (zh) | 2019-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109684319B (zh) | 数据清洗系统、方法、装置及存储介质 | |
Burattin et al. | PLG: A framework for the generation of business process models and their execution logs | |
JP5298117B2 (ja) | 分散コンピューティングにおけるデータマージング | |
CN111831287B (zh) | 用于确定执行代码段所需的资源的方法、设备和程序产品 | |
CN108280023B (zh) | 任务执行方法、装置和服务器 | |
CN107003868B (zh) | 处理包含联合类型操作的查询 | |
Walter et al. | An expandable extraction framework for architectural performance models | |
US20140156849A1 (en) | Map-reduce workflow processing apparatus and method, and storage media storing the same | |
CN113220431B (zh) | 跨云的分布式数据任务调度方法、设备及存储介质 | |
CN112817720A (zh) | 一种可视化工作流调度方法、装置及电子设备 | |
US20190155628A1 (en) | Method for opening up data and functions of terminal application based on reconstruction technology | |
CN112379884A (zh) | 基于Spark和并行内存计算的流程引擎实现方法及系统 | |
CN111158800B (zh) | 基于映射关系构建任务dag的方法及装置 | |
CN114820080A (zh) | 基于人群流转的用户分群方法、系统、装置及介质 | |
CN116560626A (zh) | 基于自定义规则的数据处理方法、系统、设备和存储介质 | |
CN115480753A (zh) | 应用集成系统及相应计算机设备和存储介质 | |
CN110019207B (zh) | 数据处理方法和装置以及脚本显示方法和装置 | |
CN106843822B (zh) | 一种执行代码生成方法及设备 | |
US20140372488A1 (en) | Generating database processes from process models | |
CN105653334B (zh) | 一种基于saas模式的mis系统快速开发框架 | |
CN110941658A (zh) | 一种数据导出方法、装置、服务器及存储介质 | |
CN113495723B (zh) | 一种调用功能组件的方法、装置及存储介质 | |
CN114443050A (zh) | 一种基于ci引擎流水线的新型日志展示方法 | |
CN114547007A (zh) | 一种大数据特征提取方法、设备及计算机可读存储介质 | |
CN109902067B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |