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

基于配置规则的数据清洗方法、系统及存储介质

文献发布时间:2023-06-19 11:22:42


基于配置规则的数据清洗方法、系统及存储介质

技术领域

本申请涉及数据处理领域,特别是涉及基于配置规则的数据清洗方法、系统、电子设备和计算机可读存储介质。

背景技术

ETL,是英文Extract-Transform-Load的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。具体的,ETL是将业务系统的数据经过抽取、清洗转换之后加载到数据仓库的过程,目的是将企业中的分散、零乱、标准不统一的数据整合到一起,为企业的决策提供分析依据,ETL是BI(商业智能)项目重要的一个环节。

其中,数据清洗是指发现并纠正数据文件中可识别的错误的最后一道程序,包括检查数据一致性,处理无效值和缺失值等。数据科学家在挖掘数据价值之前要花费50%到80%的时间在很多诸如收集数据和准备不规则的数据的普通任务上。混乱的数据是数据科学家工作流中典型的比较耗费时间的。数据科学家拿到数据后,需要写大量的代码对数据进行清洗,填充缺失值,检测并清除噪音值和异常值。

现有的数据清洗方法都是数据科学家先观察一部分样本数据,再根据数据情况写代码进行处理,但每一份数据都需要单独写代码处理,成本高。也有一些自动化的ETL工具可以处理主键和判断空值,自动化ETL工具存在考虑不周全的情况,清洗后的数据存在携带脏数据的问题。

发明内容

本申请实施例提供了一种基于配置规则的数据清洗方法、系统、电子设备和计算机可读存储介质,以便于数据科学家根据预设配置规则进行配置自动对数据进行清洗,降低工作成本,提高数据处理效率。

第一方面,本申请实施例提供了一种基于配置规则的数据清洗方法,包括:

配置规则定义步骤,定义一配置规则,其中,所述配置规则中至少包括:数据字段名、数据类型、可选值、是否允许为空、默认值、数据值是否唯一、数值区间范围其一或其任意组合;

配置文件获取步骤,获取待清洗数据并根据所述配置规则对所述待清洗数据进行配置,得到配置文件;可选的,所述配置规则可通过Web页面或编写Json文件进行配置。其中,通过Web页面进行配置时,Web后端服务程序会自动导出为Json文件,以便于本申请实施例读取该Json文件对待清洗数据进行清洗。

数据清洗步骤,根据所述配置文件对所述待清洗数据进行数据清洗,得到清洗后的数据。

通过上述步骤,基于本申请实施例的数据清洗方法,数据科学家无需写代码对数据进行处理,减小数据清洗工作成本,提高了数据科学家的建模效率。

在其中一些实施例中,所述数据清洗步骤进一步包括:

数据值获取步骤,根据待清洗数据的数据字段名获取对应数据值;

数据值校验步骤,判断所述数据值是否为空,若所述数据值为空,则根据所述配置文件对所述数据值进行纠正;

数据类型校验步骤,判断所述数据值是否符合所述配置文件的数据类型,若不符合所述数据类型,则删除所述待清洗数据;具体的,数据类型至少包括:整数型、浮点型、字符串型、布尔型及枚举型。

数据值唯一性校验步骤,判断所述数据值是否唯一,若所述数据值配置为唯一且存在重复数据值,则删除所述待清洗数据;

数值区间校验步骤,判断所述数据值是否属于所述配置文件的数值区间范围,若所述数据值超过所述数值区间范围,则删除所述待清洗数据

通过上述步骤,本申请实施例针对具有唯一性限定的数据可以自动检测重复数据并删除重复数据。

在其中一些实施例中,所述数据值校验步骤进一步包括:

默认值校验步骤,根据所述配置文件判断所述数据值是否设置有默认值,若所述数据值配置有默认值,则补充默认值;

空值校验步骤,根据所述配置文件判断所述数据值是否允许为空,若所述字段值不允许为空,则删除所述待清洗数据。

基于上述步骤,本申请实施例将所述待清洗数据设置为自动补充默认值,以实现对不完整数据的修复。

在其中一些实施例中,所述数据类型校验步骤进一步包括:

可选值校验步骤,若所述数据类型为枚举型,则根据所述配置文件判断所述数据值是否属于可选值的范围,若所述数据值不属于可选值的范围,则删除所述待清洗数据。通过枚举类型来限制数据的可选值,进一步保证不会有脏的数据进来影响模型效果。

在其中一些实施例中,所述配置文件存储为Json格式和/或CSV格式,支持但不限于CSV格式、Json格式的数据,其中,Json(JavaScript Object Notation,简称为JS,中文名称为对象简谱)是一种轻量级的数据交换格式。CSV(Comma-Separated Values,中文名称为逗号分隔值,有时也称为字符分隔值),其文件以纯文本形式存储表格数据。

第二方面,本申请实施例提供了一种基于配置规则的数据清洗系统,包括:

配置规则定义模块,定义一配置规则,其中,所述配置规则中至少包括:数据字段名、数据类型、可选值、是否允许为空、默认值、数据值是否唯一、数值区间范围其一或其任意组合;

配置文件获取模块,获取待清洗数据并根据所述配置规则对所述待清洗数据进行配置,得到配置文件;可选的,所述配置规则可通过Web页面或编写Json文件进行配置。其中,通过Web页面进行配置时,Web后端服务程序会自动导出为Json文件,以便于本申请实施例读取该Json文件对待清洗数据进行清洗。

数据清洗模块,根据所述配置文件对所述待清洗数据进行数据清洗,得到清洗后的数据。

通过上述模块,利用本申请实施例的数据清洗系统,数据科学家无需写代码对数据进行处理,减小数据清洗工作成本,提高了数据科学家的建模效率。

在其中一些实施例中,所述数据清洗模块进一步包括:

数据值获取模块,根据待清洗数据的数据字段名获取对应数据值;

数据值校验模块,判断所述数据值是否为空,若所述数据值为空,则根据所述配置文件对所述数据值进行纠正;

数据类型校验模块,判断所述数据值是否符合所述配置文件的数据类型,若不符合所述数据类型,则删除所述待清洗数据;具体的,数据类型至少包括:整数型、浮点型、字符串型、布尔型及枚举型。

数据值唯一性校验模块,判断所述数据值是否唯一,若所述数据值配置为唯一且存在重复数据值,则删除所述待清洗数据;

数值区间校验模块,判断所述数据值是否属于所述配置文件的数值区间范围,若所述数据值超过所述数值区间范围,则删除所述待清洗数据。

通过上述模块,本申请实施例针对具有唯一性限定的数据可以自动检测重复数据并删除重复数据。

在其中一些实施例中,所述数据值校验模块进一步包括:

默认值校验模块,根据所述配置文件判断所述数据值是否设置有默认值,若所述数据值配置有默认值,则补充默认值;

空值校验模块,根据所述配置文件判断所述数据值是否允许为空,若所述字段值不允许为空,则删除所述待清洗数据。

基于上述模块,本申请实施例将所述待清洗数据设置为自动补充默认值,以实现对不完整数据的修复。

在其中一些实施例中,所述数据类型校验模块进一步包括:

可选值校验模块,若所述数据类型为枚举型,则根据所述配置文件判断所述数据值是否属于可选值的范围,若所述数据值不属于可选值的范围,则删除所述待清洗数据。通过枚举类型来限制数据的可选值,进一步保证不会有脏的数据进来影响模型效果。

在其中一些实施例中,所述配置文件存储为Json格式和/或CSV格式,支持但不限于CSV格式、Json格式的数据。

第三方面,本申请实施例提供了一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述的基于配置规则的数据清洗方法。

第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述第一方面所述的基于配置规则的数据清洗方法。

相比于相关技术,本申请实施例可应用于推理能力领域,还用于数据处理领域。基于本申请提供的基于配置规则的数据清洗方法、系统、电子设备和计算机可读存储介质,基于所述配置规则进行配置并利用配置后的配置文件对待清洗数据进行清洗,既有效提高数据科学家进行数据清洗工作的效率,又进一步降低清洗后数据携带脏数据的可能性。

本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1是根据本申请实施例的基于配置规则的数据清洗方法的流程图;

图2是根据本申请实施例的基于配置规则的数据清洗方法的分步骤流程图;

图3是根据本申请优选实施例的基于配置规则的数据清洗方法的流程图;

图4是根据本申请优选实施例的基于配置规则的数据清洗方法的分步骤流程图;

图5是根据本申请实施例的基于配置规则的数据清洗系统的结构框图;

图6是根据本申请实施例的基于配置规则的数据清洗系统的子结构框图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。

显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。

在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。

除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。

为了解决现有技术进行数据清洗时,代码编写工作量大,工作成本高的问题,本申请实施例提供了一种基于配置规则的数据清洗方法。图1及图2是根据本申请实施例的基于配置规则的数据清洗方法的流程图,参考图1及图2所示,该流程包括如下步骤:

配置规则定义步骤S1,定义一配置规则,其中,配置规则中至少包括:数据字段名、数据类型、可选值、是否允许为空、默认值、数据值是否唯一、数值区间范围其一或其任意组合;

配置文件获取步骤S2,获取待清洗数据并根据配置规则对待清洗数据进行配置,得到配置文件;可选的,配置规则可通过Web页面或编写Json文件进行配置。其中,通过Web页面进行配置时,Web后端服务程序会自动导出为Json文件,以便于本申请实施例读取该Json文件对待清洗数据进行清洗。具体的,配置文件存储为Json格式和/或CSV格式,支持但不限于CSV格式、Json格式的数据。可选的,配置文件可通过Web页面或编写Json文件来配置,通过Web页面配置时后端服务程序会自动导出成Json文件,数据清洗步骤S3获取该Json文件并对待清洗数据进行清洗。

数据清洗步骤S3,根据配置文件对待清洗数据进行数据清洗,得到清洗后的数据。

通过上述步骤,基于本申请实施例的数据清洗方法,数据科学家无需写代码对数据进行处理,减小数据清洗工作成本,提高了数据科学家的建模效率。

在其中一些实施例中,数据清洗步骤S3进一步包括:

数据值获取步骤S31,根据待清洗数据的数据字段名获取对应数据值;具体的,若配置文件存储为Json格式时,可通过key值获取对应的value,配置文件存储为CSV格式时,可通过表头获取对应列。

数据值校验步骤S32,判断数据值是否为空,若数据值为空,则根据配置文件对数据值进行纠正;

数据类型校验步骤S33,判断数据值是否符合配置文件的数据类型,若不符合数据类型,则删除待清洗数据;具体的,数据类型至少包括:整数型、浮点型、字符串型、布尔型及枚举型。

数据值唯一性校验步骤S34,判断数据值是否唯一,若数据值配置为唯一且存在重复数据值,则删除待清洗数据;

数值区间校验步骤S35,判断数据值是否属于配置文件的数值区间范围,若数据值超过数值区间范围,则删除待清洗数据,举例而非限制,若数据类型为整数型和浮点型,通过配置数据值的数值区间范围可控制数据的分布,以防止离群值(离群值(outlier),也称逸出值,是指在数据中有一个或几个数值与其他数值相比差异较大)影响清洗效果。

通过上述步骤,本申请实施例针对具有唯一性限定的数据可以自动检测重复数据并删除重复数据。

在其中一些实施例中,数据值校验步骤S32进一步包括:

默认值校验步骤S321,根据配置文件判断数据值是否设置有默认值,若数据值配置有默认值,则补充默认值;

空值校验步骤S322,根据配置文件判断数据值是否允许为空,若字段值不允许为空,则删除待清洗数据。

基于上述步骤,本申请实施例将待清洗数据设置为自动补充默认值,以实现对不完整数据的修复。

在其中一些实施例中,数据类型校验步骤S33进一步包括:

可选值校验步骤S331,若数据类型为枚举型,则根据配置文件判断数据值是否属于可选值的范围,若数据值不属于可选值的范围,则删除待清洗数据。通过枚举类型来限制数据的可选值,进一步保证不会有脏的样本数据进来影响模型效果。

下面通过优选实施例对本申请实施例进行描述和说明。

图3、图4是根据本申请优选实施例的基于配置规则的数据清洗方法的流程图。参考图3、图4所示,该基于配置规则的数据清洗方法包括如下步骤:

规则定义步骤,具体的,数据ETL程序预先定义一套配置规则;

具体的,配置规则如下表所示:

规则配置步骤,由数据科学家根据业务数据按照上述配置规则进行配置,得到配置文件。

数据清洗步骤,数据ETL程序读取该配置文件对数据进行处理,输出干净的训练数据集。

具体的,数据清洗步骤包括:

数据获取步骤S401,根据数据字段名抽取对应的数据值,其中,JSON格式的数据可以通过key获取对应的value,CSV格式的数据通过表头获取对应列。

数据检查步骤S402,判断数据值是否为空,如果为空,判断字段的对应配置是否允许为空,如果允许,进一步判断该字段是否有默认值,如果有默认值,补上默认值;反之,如果不允许为空,将这条数据删除。

数据类型检查步骤S403,判断数据类型,具体的,判断上述抽取到的数据值是否符合配置的数据类型,常用数据类型有整数型、浮点型、字符串型、布尔型、枚举型。与配置的数据类型不符合的数据删除,如果是枚举型,进一步判断数据值是否在配置的可选值范围内,不满足条件时,删除这条数据。

数据唯一性检查步骤S404,校验数据唯一性。如果该数据字段的数据值配置了必须唯一,判断是否存在已有数据值和该数据值相同,如果有,则删除这条数据。

数值区间检查步骤S405,值区间范围判断。如果该数据字段配置了数据值的区间范围,一般针对整型和浮点型数据,当数据值超过了区间范围,删除这条数据。

需要说明的是,在上述流程中或者附图的流程图中示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

本实施例还提供了一种基于配置规则的数据清洗系统,该系统用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的系统较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

图5、图6是根据本申请实施例的基于配置规则的数据清洗系统的结构框图,如图5、图6所示,该系统包括:

配置规则定义模块1,定义一配置规则,其中,配置规则中至少包括:数据字段名、数据类型、可选值、是否允许为空、默认值、数据值是否唯一、数值区间范围其一或其任意组合;

配置文件获取模块2,获取待清洗数据并根据配置规则对待清洗数据进行配置,得到配置文件;可选的,配置规则可通过Web页面或编写Json文件进行配置。其中,通过Web页面进行配置时,Web后端服务程序会自动导出为Json文件,以便于本申请实施例读取该Json文件对待清洗数据进行清洗。具体的,配置文件存储为Json格式和/或CSV格式,支持但不限于CSV格式、Json格式的数据。可选的,配置文件可通过Web页面或编写Json文件来配置,通过Web页面配置时后端服务程序会自动导出成Json文件,以便于数据清洗模块3获取该Json文件并对待清洗数据进行清洗。

数据清洗模块3,根据配置文件对待清洗数据进行数据清洗,得到清洗后的数据。具体的,数据清洗模块3进一步包括:数据值获取模块31,根据待清洗数据的数据字段名获取对应数据值;具体的,若配置文件存储为Json格式时,可通过key值获取对应的value,配置文件存储为CSV格式时,可通过表头获取对应列。数据值校验模块32,判断数据值是否为空,若数据值为空,则根据配置文件对数据值进行纠正;数据类型校验模块33,判断数据值是否符合配置文件的数据类型,若不符合数据类型,则删除待清洗数据;其中,数据类型至少包括:整数型、浮点型、字符串型、布尔型及枚举型。具体的,数据类型校验模块33进一步包括:可选值校验模块331,若数据类型为枚举型,则根据配置文件判断数据值是否属于可选值的范围,若数据值不属于可选值的范围,则删除待清洗数据。通过枚举类型来限制数据的可选值,进一步保证不会有脏的数据进来影响模型效果。数据值唯一性校验模块34,判断数据值是否唯一,若数据值配置为唯一且存在重复数据值,则删除待清洗数据;数值区间校验模块35,判断数据值是否属于配置文件的数值区间范围,若数据值超过数值区间范围,则删除待清洗数据,举例而非限制,若数据类型为整数型和浮点型,通过配置数据值的数值区间范围可控制数据的分布,以防止离群值影响清洗效果。通过上述模块,本实施例针对具有唯一性限定的数据可以自动检测重复数据并删除重复数据。其中,数据值校验模块32进一步包括:默认值校验模块321,根据配置文件判断数据值是否设置有默认值,若数据值配置有默认值,则补充默认值;空值校验模块322,根据配置文件判断数据值是否允许为空,若字段值不允许为空,则删除待清洗数据。基于此,本实施例将待清洗数据设置为自动补充默认值,以实现对不完整数据的修复。

通过上述模块,利用本实施例的数据清洗系统,数据科学家无需写代码对数据进行处理,减小数据清洗工作成本,提高了数据科学家的建模效率。

需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。

另外,结合图1、图2描述的本申请实施例基于配置规则的数据清洗方法可以由电子设备来实现。电子设备可以包括处理器以及存储有计算机程序指令的存储器。

具体地,上述处理器可以包括中央处理器(CPU),或者特定集成电路(ApplicationSpecific Integrated Circuit,简称为ASIC),或者可以被配置成实施本申请实施例的一个或多个集成电路。

其中,存储器可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器可包括硬盘驱动器(Hard Disk Drive,简称为HDD)、软盘驱动器、固态驱动器(SolidState Drive,简称为SSD)、闪存、光盘、磁光盘、磁带或通用串行总线(Universal SerialBus,简称为USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器可在数据处理装置的内部或外部。在特定实施例中,存储器是非易失性(Non-Volatile)存储器。在特定实施例中,存储器包括只读存储器(Read-Only Memory,简称为ROM)和随机存取存储器(Random AccessMemory,简称为RAM)。在合适的情况下,该ROM可以是掩模编程的ROM、可编程ROM(ProgrammableRead-Only Memory,简称为PROM)、可擦除PROM(Erasable ProgrammableRead-Only Memory,简称为EPROM)、电可擦除PROM(Electrically Erasable ProgrammableRead-Only Memory,简称为EEPROM)、电可改写ROM(Electrically Alterable Read-OnlyMemory,简称为EAROM)或闪存(FLASH)或者两个或更多个以上这些的组合。在合适的情况下,该RAM可以是静态随机存取存储器(Static Random-Access Memory,简称为SRAM)或动态随机存取存储器(Dynamic Random Access Memory,简称为DRAM),其中,DRAM可以是快速页模式动态随机存取存储器(Fast Page Mode Dynamic Random Access Memory,简称为FPMDRAM)、扩展数据输出动态随机存取存储器(Extended Date Out Dynamic RandomAccess Memory,简称为EDODRAM)、同步动态随机存取内存(Synchronous Dynamic Random-Access Memory,简称SDRAM)等。

存储器可以用来存储或者缓存需要处理和/或通信使用的各种数据文件,以及处理器所执行的可能的计算机程序指令。

处理器通过读取并执行存储器中存储的计算机程序指令,以实现上述实施例中的任意一种基于配置规则的数据清洗方法。

另外,结合上述实施例中的基于配置规则的数据清洗方法,本申请实施例可提供一种计算机可读存储介质来实现。该计算机可读存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种基于配置规则的数据清洗方法。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

相关技术
  • 基于配置规则的数据清洗方法、系统及存储介质
  • 一种基于数据清洗规则的可信认证方法及系统
技术分类

06120112901245