一种数据清洗方法、装置、电子设备及存储介质与流程

文档序号:26102403发布日期:2021-07-30 18:13阅读:65来源:国知局
一种数据清洗方法、装置、电子设备及存储介质与流程

本申请涉及数据分析技术领域,尤其涉及一种数据清洗方法、装置、电子设备及存储介质。



背景技术:

在目前的智能化电力系统中,随着电能表等电能计量装置研发技术的不断更新,其产生的数据量规模日益攀升,而同时数据分析需求也变得更加多样。其中,为了提高数据分析效率,通常在进行数据分析前,首先对待分析数据进行数据清洗。

在现有技术中,通常是在电能表部署固件程序,以使电能表定时地将测量数值封包并发送到服务器,由技术人员手工清洗这些数据。

但是,由于目前电力系统的规模通常较大,人工清洗流程也较为繁琐,若采用现有技术进行数据清洗,不仅需要耗费大量的人力资源,也无法保障数据清洗效率。



技术实现要素:

本申请提供一种数据清洗方法、装置、电子设备及存储介质,以解决现有技术数据清洗效率低等缺陷。

本申请第一个方面提供一种数据清洗方法,包括:

获取待清洗数据;

从所述待清洗数据提取目标字段;其中,所述目标字段包括设备标识字段、时间字段和/或计量字段;

根据所述目标字段的字段内容与字段类型之间的对应关系,清洗所述待清洗数据。

可选的,所述根据所述目标字段的字段内容与字段类型之间的对应关系,清洗所述待清洗数据,包括:

根据所述目标字段的字段内容与字段类型之间的对应关系,从预设的清洗规则库中选取目标清洗策略;

按照所述目标清洗策略,清洗所述待清洗数据。

可选的,所述根据所述目标字段的字段内容与字段类型之间的对应关系,从预设的清洗规则库中选取目标清洗策略,包括:

判断所述目标字段的内容格式是否符合预设的标准格式;

当所述目标字段的内容格式不符合预设的标准格式时,从所述清洗规则库中选取对应的内容格式转换策略。

可选的,所述按照所述目标清洗策略,清洗所述待清洗数据,包括:

获取所述内容格式转换策略对应的正则表达式或格式转换函数;

利用所述正则表达式或格式转换函数,将所述待清洗数据中目标字段的内容格式转换为标准格式。

可选的,所述根据所述目标字段的字段内容与字段类型之间的对应关系,从预设的清洗规则库中选取目标清洗策略,包括:

判断所述目标字段是否保存有两个或多个数值;

当所述目标字段保存有两个或多个数值时,从所述清洗规则库中选取对应的去冗余策略。

可选的,还包括:

判断所述目标字段的字段内容是否为空;

当所述目标字段的字段内容为空时,删除所述待清洗数据。

可选的,所述获取待清洗数据,包括:

获取电能表的原始测量数据;

将所述原始测量数据转换为分布式文件系统hdfs对应的hdfs文件;

将所述hdfs文件,确定为所述待清洗数据。

本申请第二个方面提供一种数据清洗装置,包括:

获取模块,用于获取待清洗数据;

字段提取模块,用于从所述待清洗数据提取目标字段;其中,所述目标字段包括设备标识字段、时间字段和/或计量字段;

清洗模块,用于根据所述目标字段的字段内容与字段类型之间的对应关系,清洗所述待清洗数据。

可选的,所述清洗模块,具体用于:

根据所述目标字段的字段内容与字段类型之间的对应关系,从预设的清洗规则库中选取目标清洗策略;

按照所述目标清洗策略,清洗所述待清洗数据。

可选的,所述清洗模块,具体用于:

判断所述目标字段的内容格式是否符合预设的标准格式;

当所述目标字段的内容格式不符合预设的标准格式时,从所述清洗规则库中选取对应的内容格式转换策略。

可选的,所述清洗模块,具体用于:

获取所述内容格式转换策略对应的正则表达式或格式转换函数;

利用所述正则表达式或格式转换函数,将所述待清洗数据中目标字段的内容格式转换为标准格式。

可选的,所述清洗模块,具体用于:

判断所述目标字段是否保存有两个或多个数值;

当所述目标字段保存有两个或多个数值时,从所述清洗规则库中选取对应的去冗余策略。

可选的,所述清洗模块,还用于:

判断所述目标字段的字段内容是否为空;

当所述目标字段的字段内容为空时,删除所述待清洗数据。

可选的,所述获取模块,具体用于:

获取电能表的原始测量数据;

将所述原始测量数据转换为分布式文件系统hdfs对应的hdfs文件;

将所述hdfs文件,确定为所述待清洗数据。

本申请第三个方面提供一种电子设备,包括:至少一个处理器和存储器;

所述存储器存储计算机执行指令;

所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如上第一个方面以及第一个方面各种可能的设计所述的方法。

本申请第四个方面提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上第一个方面以及第一个方面各种可能的设计所述的方法。

本申请技术方案,具有如下优点:

本申请提供的数据清洗方法、装置、电子设备及存储介质,通过获取待清洗数据;从待清洗数据提取目标字段;其中,目标字段包括设备标识字段、时间字段和/或计量字段;根据目标字段的字段内容与字段类型之间的对应关系,清洗待清洗数据。上述方案提供的方法是一种自动化的数据清洗方法,提高了数据清洗效率,为提高后续的数据分析效率奠定了基础。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。

图1为本申请实施例基于的数据清洗系统的结构示意图;

图2为本申请实施例提供的一种数据清洗方法的流程示意图;

图3为本申请实施例提供的另一种数据清洗方法的流程示意图;

图4为本申请实施例提供的数据清洗装置的结构示意图;

图5为本申请实施例提供的电子设备的结构示意图。

通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

此外,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。在以下各实施例的描述中,“多个”的含义是两个以上,除非另有明确具体的限定。

在现有技术中,通常是在电能表部署固件程序,以使电能表定时地将测量数值封包并发送到服务器,由技术人员手工清洗这些数据。但是,由于目前电力系统的规模通常较大,人工清洗流程也较为繁琐,若采用现有技术进行数据清洗,不仅需要耗费大量的人力资源,也无法保障数据清洗效率。

针对上述问题,本申请实施例提供的数据清洗方法、装置、电子设备及存储介质,通过获取待清洗数据;从待清洗数据提取目标字段;其中,目标字段包括设备标识字段、时间字段和/或计量字段;根据目标字段的字段内容与字段类型之间的对应关系,清洗待清洗数据。上述方案提供的方法是一种自动化的数据清洗方法,提高了数据清洗效率,为提高后续的数据分析效率奠定了基础。

下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本发明实施例进行描述。

首先,对本申请所基于的数据清洗系统的结构进行说明:

本申请实施例提供的数据清洗方法、装置、电子设备及存储介质,适用于电能表的测量数据进行数据清洗。如图1所示,为本申请实施例基于的数据清洗系统的结构示意图,主要包括电能表、数据采集装置和用于进行数据清洗的数据清洗装置。具体地,电能表将测得的测量数据发送至数据采集装置,数据采集装置将其转发至数据清洗装置,数据清洗装置将测量数据作为待清洗数据,并进一步对其进行数据清洗。

本申请实施例提供了一种数据清洗方法,用于对电能表等电能计量装置的测量数据进行清洗。本申请实施例的执行主体为电子设备,比如服务器、台式电脑、笔记本电脑、平板电脑及其他可用于进行数据清洗的电子设备。

如图2所示,为本申请实施例提供的一种数据清洗方法的流程示意图,该方法包括:

步骤201,获取待清洗数据。

其中,待清洗数据具体可以是电能表的测量数据。在电力系统规模大,电能表数量多的情况下,待清洗数据也可以是多个电能表在某一时刻的测量数据。

步骤202,从待清洗数据提取目标字段。

其中,目标字段包括设备标识字段、时间字段和/或计量字段。

需要说明的是,目标字段可以对应待清洗数据中的关键测量数据和重点清洗数据,目的是在待清洗数据中定位关键测量数据和重点清洗数据。具体的字段提取方式可以参考现有技术,本申请实施例不做限定。

步骤203,根据目标字段的字段内容与字段类型之间的对应关系,清洗待清洗数据。

具体地,根据所提取的目标字段的字段内容及对应的字段类型,判断字段内容是否符合该字段类型对应的记录标准。在不符合的情况下,根据字段内容和记录标准,对待清洗数据进行数据清洗。相反的,在符合的情况下,则保留原值,即跳出数据清洗。

在上述实施例的基础上,由于电力系统和电能表配置均会不定期更新,为了便于技术人员可以适应性调整数据清洗标准,可以预先构建清洗规则库,清洗规则库可以参照电力系统和电能表等配置信息进行更新和扩展,如图3为本申请实施例提供的另一种数据清洗方法的流程示意图,作为一种可实施的方式,在一实施例中,根据目标字段的字段内容与字段类型之间的对应关系,清洗待清洗数据,包括:

步骤2031,根据目标字段的字段内容与字段类型之间的对应关系,从预设的清洗规则库中选取目标清洗策略;

步骤2032,按照目标清洗策略,清洗待清洗数据。

具体地,根据所提取的目标字段的字段内容及对应的字段类型,判断字段内容是否符合该字段类型对应的记录标准。若不符合,则进一步根据字段内容和记录标准之间的偏差,分析不符合的原因,并选取对应的目标清洗策略,以对待清洗数据进行数据清洗。

其中,数据清洗策略可以包括删除目标字段中的字段内容、删除对应的待清洗数据和字段内容纠正等。

示例性的,若目标字段的字段内容为汉字,该目标字段对应的字段类型是电压值,而电压值通常为数字格式,则进一步识别汉字的语义信息。若汉字是“五十”,即语义信息是数值,则在清洗规则库中提取文本转换策略,以将“五十”转换为“50”。若汉字是“正常”,即当前汉字的语义信息不是数值,与字段类型不对应,则确定发生数据异常,然后从清洗规则库中提取异常处理策略,以修复或报出异常。

类似的,若字段内容是数字“260”,而电能表的测量区间为(100,220),则确定当前的电压值(字段内容)超出了正常范围,即确定发生数据异常,进一步从清洗规则库中提取异常处理策略。

具体地,在一实施例中,由于电力系统中的电能表的设备型号等属性信息存在差异,导致不同的电能表所输出的测量数据的格式不统一,为了便于后续的数据管理和分析工作,可以判断目标字段的内容格式是否符合预设的标准格式;当目标字段的内容格式不符合预设的标准格式时,从清洗规则库中选取对应的内容格式转换策略。

示例性的,若目标字段是时间字段,时间的记录格式有多种,例如日-月-年、xx年xx月xx日和年-月-日等,设定的标准格式为年-月-日。则将不符合标准格式的时间记录(字段内容)统一为标准格式,对于本身就符合标准格式的时间记录,不对其进行内容格式转换操作。其中,标准格式也可以为utc时间标准格式,标准格式具体不做限定。

进一步地,在一实施例中,为了提高内容格式转换效率,可以获取内容格式转换策略对应的正则表达式或格式转换函数;利用正则表达式或格式转换函数,将待清洗数据中目标字段的内容格式转换为标准格式。

示例性的,若字段内容是时间(日期),原日期格式为“9-10-2021”,即其日月的位置和可识别utc格式相反,则使用正则表达式将其处理为“2021-09-10,00:00:00”。

类似的,若字段内容是数值,如“13”,而标准格式是二进制(或utf格式),则利用lambda函数(格式转换函数)进行进制转换,即将十进制转换为二进制“1101”。

需要说明的是,本申请实施例所提供的正则表达式和格式转换函数可以根据实际情况设定。其中,若针对某一字段内容(如数值),正则表达式、格式转换函数及目标数据清洗策略对应的静态转换(默认规则)均可以满足其转换需求,为了避免出现重复清洗等情况下,可以预先根据三者的转换效率,设定三者的优先级,如格式转换函数>正则表达式>默认规则,即优先采用格式转换函数进行格式转换。若格式转换函数实际无法满足需求,按照优先级采取其他手段。

具体地,在一实施例中,判断目标字段是否保存有两个或多个数值;当目标字段保存有两个或多个数值时,从清洗规则库中选取对应的去冗余策略。

需要说明的是,字段在正常情况下仅保存一个数值,若出现了两个及以上数值,则确定目标字段出现了冗余值。因此,为了保障记录的合法性,需要剔除冗余值。例如,当前目标字段中保存有两个值,且两个值相同,则随机剔除冗余值,即仅保留一个指。其中,若两个值不同,则可以剔除非最大值,即仅保留最大值。具体的去冗余策略可以根据实际情况设定,本申请实施例不做限定。

具体地,在一实施例中,为了满足多种数据清洗需求,还可以判断目标字段的字段内容是否为空;当目标字段的字段内容为空时,删除待清洗数据。

示例性的,当目标字段是计量字段时,计量字段通常记载关键测量数据,若待清洗数据中没有关键测量数据,则可以确定该待清洗数据不具备分析价值和存储价值,为了避免浪费数据清洗资源和、数据分析资源和数据存储资源,可以直接删除这条待清洗数据。

具体地,在一实施例中,若当前是同时对多个待清洗数据进行数据清洗,即同时提取多个待清洗数据的目标字段,而所提取的目标字段中存在重复字段,即待清洗数据对应的设备标识字段和数据生成时刻对应的时间字段(时间戳)相同,则确定电能表发生了数据重复发送,此时可以仅保留一个待清洗数据,剔除其他重复的待清洗数据。

在上述实施例的基础上,为了提高整个数据清洗系统的数据吞吐量,作为一种可实施的方式,在一实施例中,获取待清洗数据包括:

步骤2011,获取电能表的原始测量数据;

步骤2012,将原始测量数据转换为分布式文件系统hdfs对应的hdfs文件;

步骤2013,将hdfs文件,确定为待清洗数据。

需要说明的是,本申请实施例所提供的数据清洗系统是分布式架构的,数据吞吐量较大,适用于大规模的数据清洗。其中,为了适应系统架构,也是为了提高数据清洗效率,在对不同格式的原始测量数据进行数据清洗之前,首先将其转换为hdfs文件。

示例性的,若电能表的原始测量数据包括csv文件、数据库数据文件或者hdfs文件。其中,csv文件和数据库数据文件是一种文本文件,数据以文本的形式按照一定的格式储存。hadoop分布式文件系统(hdfs)是一种大数据分布式的文件系统,hdfs文件是hdfs系统按其格式保存数据的文件。应用接口数据是从外部系统提供开放接口获取的数据。需要清洗的数据都要先导入到hdfs文件系统中,再进行清洗加工。csv文本文件是以“,”和换行符为分隔符的文本文件,可以使用hdfs提供的管理页面导入到系统中。数据库数据文件需要借助sqoop组件,sqoop是一个用来将hadoop和关系型数据库中的数据相互转移的工具,可以将一个关系型数据库(例如:mysql,oracle,postgres等)中的数据导入到hadoop的hdfs中,也可以将hdfs的数据导入到关系型数据库中。原始测量数据也可以使用外部应用接口,应用接口数据是外部系统提供的接口地址,如”https://hostname/api”,数据清洗系统直接向外部应用接口接收原始测量数据。

进一步地,在完成数据清洗工作后,可导出清洗后数据,具体可以将清洗后的数据导出至指定设备。例如可以通过可视界面配置数据仓库的地址,如”user@hostname:password”,或者外部大数据分析系统的应用接口地址,如”https://hostname/api”。

具体地,在一实施例中,可以将上述实施例提供的数据清洗方法封装为可执行的java脚本,使数据清洗程序在spark集群中以一个事务的形式执行。数据清洗中使用hdfs系统作为已清洗数据文件的缓存位置,已清洗数据以批处理或者流处理的方式导出到指定设备,从而完成数据清洗。为了实现数据定期清洗,即按照预设清洗周期,对电能表测量数据进行数据清洗,可以在数据清洗系统中设置定时任务,以实现自动化的定期清洗。

本申请实施例提供的数据清洗方法,通过获取待清洗数据;从待清洗数据提取目标字段;其中,目标字段包括设备标识字段、时间字段和/或计量字段;根据目标字段的字段内容与字段类型之间的对应关系,清洗待清洗数据。上述方案提供的方法是一种自动化的数据清洗方法,根提高了数据清洗效率,为提高后续的数据分析效率奠定了基础。并且,数据清洗规则方便扩充和更新,即本申请实施例所提供的数据清洗方法的普适性性。

本申请实施例提供了一种数据清洗装置,用于执行上述实施例提供的数据清洗方法。

如图4所示,为本申请实施例提供的数据清洗装置的结构示意图。该数据清洗装置40包括获取模块401、字段提取模块402和清洗模块403。

其中,获取模块,用于获取待清洗数据;字段提取模块,用于从待清洗数据提取目标字段;其中,目标字段包括设备标识字段、时间字段和/或计量字段;清洗模块,用于根据目标字段的字段内容与字段类型之间的对应关系,清洗待清洗数据。

具体地,在一实施例中,清洗模块,具体用于:

根据目标字段的字段内容与字段类型之间的对应关系,从预设的清洗规则库中选取目标清洗策略;

按照目标清洗策略,清洗待清洗数据。

具体地,在一实施例中,清洗模块,具体用于:

判断目标字段的内容格式是否符合预设的标准格式;

当目标字段的内容格式不符合预设的标准格式时,从清洗规则库中选取对应的内容格式转换策略。

具体地,在一实施例中,清洗模块,具体用于:

获取内容格式转换策略对应的正则表达式或格式转换函数;

利用正则表达式或格式转换函数,将待清洗数据中目标字段的内容格式转换为标准格式。

具体地,在一实施例中,清洗模块,具体用于:

判断目标字段是否保存有两个或多个数值;

当目标字段保存有两个或多个数值时,从清洗规则库中选取对应的去冗余策略。

具体地,在一实施例中,清洗模块,还用于:

判断目标字段的字段内容是否为空;

当目标字段的字段内容为空时,删除待清洗数据。

具体地,在一实施例中,获取模块,具体用于:

获取电能表的原始测量数据;

将原始测量数据转换为分布式文件系统hdfs对应的hdfs文件;

将hdfs文件,确定为待清洗数据。

关于本实施例中的数据清洗装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

本申请实施例提供的数据清洗装置,用于执行上述实施例提供的数据清洗方法,其实现方式与原理相同,不再赘述。

本申请实施例提供了一种电子设备,用于执行上述实施例提供的数据清洗方法。

如图5所示,为本申请实施例提供的电子设备的结构示意图。该电子设备50包括:至少一个处理器51和存储器52;

存储器存储计算机执行指令;至少一个处理器执行存储器存储的计算机执行指令,使得至少一个处理器执行如上实施例提供的数据清洗方法。

本申请实施例提供的一种电子设备,用于执行上述实施例提供的数据清洗方法,其实现方式与原理相同,不再赘述。

本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当处理器执行计算机执行指令时,实现如上任一实施例提供的数据清洗方法。

本申请实施例的包含计算机可执行指令的存储介质,可用于存储前述实施例中提供的数据清洗方法的计算机执行指令,其实现方式与原理相同,不再赘述。

本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1