本发明涉及数据处理技术领域,尤其涉及一种具有修正功能的数据清洗方法、设备和存储介质。
背景技术:
在信息大数据时代,对企业的数据进行收集与处理已成为一件必不可少的事情。目前,我们通过采集系统(例如爬虫)采集到的原始数据多为不规整数据,这些数据的格式无法满足我们对数据处理的基本要求,十分不利于后期将数据在页面上进行展示。
因此,现有技术中,会针对上述情况对原始数据进行预处理,转化为后面工作所需要的较为规整的数据,所以这里的数据清洗,其实指的就是对原始数据进行基本的预处理,以使原始数据符合页面展示的标准形式。
但是,当采集系统采集到的原始数据出现错误(例如某个法人之前被限制高消费,但是后续被法院取消了限制,裁判文书已经生效,但是网上的公示文书较慢,所以采集系统采集到的数据还是之前的错误数据),如何在清洗过程中对上述这种错误数据进行修正,并且修正后的数据不被采集系统新采集到的错误数据重新覆盖,是目前亟待解决的问题。
技术实现要素:
本发明的目的在于提供一种具有修正功能的数据清洗方法、设备和存储介质。
为实现上述发明目的之一,本发明一实施方式提供一种具有修正功能的数据清洗方法,所述方法包括:
将符合预设清洗规则的数据进行字段清洗后,每条数据清洗为带有主键id的数据表;
根据预设的更新规则,将每个所述数据表以对应主键id为索引更新至基础数据库中;其中,所述预设的更新规则包括:
在根据主键id判定待更新的数据表已存入所述基础数据库中,且已存入的数据表中包括有修正字段后,将所述修正字段覆盖所述待更新的数据表对应的字段后,将所述待更新的数据表以覆盖已存入数据表的方式存入所述基础数据库中。
作为本发明一实施方式的进一步改进,所述预设的更新规则还包括:
在根据主键id判定待更新的数据表已存入所述基础数据库中,且已存入的数据表中不包括有修正字段后,将所述待更新的数据表以覆盖已存入数据表的方式存入所述基础数据库中。
作为本发明一实施方式的进一步改进,所述预设的更新规则还包括:
在根据主键id判定待更新的数据表没有存入所述基础数据库中后,以对应主键id为索引将所述待更新的数据表存入所述基础数据库中。
作为本发明一实施方式的进一步改进,所述方法还包括:
根据后端反馈的错误数据,获取所述错误数据对应的数据表的主键id和所述错误数据在所述数据表中的字段号;
根据所述主键id和字段号,从所述基础数据库中获取相应的字段内容进行修正并打上修正标记,得到具有修正标记的修正字段;
根据所述主键id和字段号,从所述基础数据库中获取所述主键id对应的数据表的其它字段内容,并与所述修正字段进行合并,得到合并数据表;
将所述合并数据表以覆盖原始数据表的方式存入所述基础数据库中。
作为本发明一实施方式的进一步改进,所述“字段清洗”包括:
对每条数据中的各个字段进行清洗,使各个字段的展现形式符合页面展示的标准形式。
作为本发明一实施方式的进一步改进,所述方法还包括:
获取待清洗数据,判断所述待清洗数据是否符合预设清洗规则;所述预设清洗规则是指每条数据包括指定的n个字段,所述n为正整数。
作为本发明一实施方式的进一步改进,所述方法还包括:
将所述基础数据库中的数据进行业务清洗,并将业务清洗后的数据更新至业务数据库中;
以日志同步的方式,将所述业务数据库中的更新数据同步至线上数据库中。
作为本发明一实施方式的进一步改进,所述“将所述基础数据库中的数据进行业务清洗,并将业务清洗后的数据更新至业务数据库中”包括:
从所述基础数据库中获取与具体业务具有关联关系的数据表,提取所述数据表中与所述具体业务具有关联关系的字段,将只包括有关联关系的字段的数据表存入对应业务的业务数据库中。
为实现上述发明目的之一,本发明一实施方式提供一种电子设备,包括存储器和处理器,所述存储器存储有可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任意一项所述具有修正功能的数据清洗方法中的步骤。
为实现上述发明目的之一,本发明一实施方式提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述具有修正功能的数据清洗方法中的步骤。
与现有技术相比,本发明的具有修正功能的数据清洗方法,在数据清洗的过程中,通过数据合并的方式,将最新的清洗数据和修正后的数据进行合并,从而即保证了对最新的清洗数据的更新,又能确保更新后的清洗数据的正确性。
附图说明
图1是本发明的具有修正功能的数据清洗方法的流程示意图。
具体实施方式
以下将结合附图所示的具体实施方式对本发明进行详细描述。但这些实施方式并不限制本发明,本领域的普通技术人员根据这些实施方式所做出的结构、方法、或功能上的变换均包含在本发明的保护范围内。
本发明提供一种具有修正功能的数据清洗方法,在数据清洗的过程中,通过数据合并的方式,将最新的清洗数据和修正后的数据进行合并,从而即保证了对最新的清洗数据的更新,又能确保更新后的清洗数据的正确性。
如图1所示,所述方法包括:
步骤s110:将符合预设清洗规则的数据进行字段清洗后,每条数据清洗为带有主键id的数据表。
所述符合预设清洗规则的数据是指待清洗的每条数据都包括指定的n个字段(n为正整数)。所述字段为一条数据中的一个独立单元,可以是公司名称、司法案件的案件号、立案日期、法人名称、法人状态等等。所述字段清洗是指对每条数据中的各个字段进行清洗,使各个字段的展现形式符合页面展示的标准形式。
当一条数据清洗完成后,这条数据会生成带有唯一主键id的数据表,所述数据表中包括有多个字段,每个字段都有字段号。
需要说明的是,所述数据表的主键id可以根据这个数据表中的具有唯一性的字段内容生成(例如根据数据表的案件号所述数据表的主键id),后续采集系统采集到了相同的案件号的数据(此时的数据是有更新的数据)后,会生成具有相同的主键id的数据表,此表明这两个具有相同主键id的数据表为同一个数据记录。
在一个优选的实施方式中,所述方法还包括:
获取待清洗数据,判断所述待清洗数据是否符合预设清洗规则;所述预设清洗规则是指每条数据包括指定的n个字段,所述n为正整数。
可以通过采集系统(例如爬虫)获取原始的待清洗数据,然后判断每条所述原始的待清洗数据是否包括有n个字段。一般情况下采集系统都可以采集到n个字段。但是若存在不符合预设清洗规则的原始待清洗数据,则可以直接将所述数据过滤掉,或者通过人工将字段补齐,然后将补齐后的待清洗字段进行字段清洗。
步骤s120:根据预设的更新规则,将每个所述数据表以对应主键id为索引更新至基础数据库中;其中,所述预设的更新规则包括:
在根据主键id判定待更新的数据表已存入所述基础数据库中,且已存入的数据表中包括有修正字段后,将所述修正字段覆盖所述待更新的数据表对应的字段后,将所述待更新的数据表以覆盖已存入数据表的方式存入所述基础数据库中。
由于根据错误数据对存储在数据库中的数据表进行修正,是以字段为基础单位进行的,因此,在字段清洗之后得到的数据表要更新至基础数据库中时,需要先判断基础数据库中是否已存入这个数据表(根据主键id来判断),若基础数据库中已存入这个数据表,还需要判断已存入的数据表中是否包含有修正字段(即具有修正标记的字段),若包含修正字段,则将修正字段与待更新字段进行合并后存入基础数据库中,即将修正字段覆盖待更新的数据表对应的字段,然后将待更新的数据表以覆盖已存入数据表的方式存入所述基础数据库中。
进一步的,所述预设的更新规则还包括:
在根据主键id判定待更新的数据表已存入所述基础数据库中,且已存入的数据表中不包括有修正字段后,将所述待更新的数据表以覆盖已存入数据表的方式存入所述基础数据库中。
进一步的,所述预设的更新规则还包括:
在根据主键id判定待更新的数据表没有存入所述基础数据库中后,以对应主键id为索引将所述待更新的数据表存入所述基础数据库中。
在一个具体的实施方式中,根据待更新数据表的主键id(即索引)判断基础数据库中是否已存入所述主键id对应的数据表,若没有存入,以对应主键id为索引将所述待更新的数据表存入所述基础数据库中。若已存入,再判断已存入的数据表中是否包括有修正字段(通过判断已存入的数据表中的字段是否有修正标记),若没有,将所述待更新的数据表以覆盖已存入数据表的方式存入所述基础数据库中;否则,将所述修正字段覆盖所述待更新的数据表对应的字段后,将所述待更新的数据表以覆盖已存入数据表的方式存入所述基础数据库中。
具体的,待更新的数据表list1的主键id为100,且包括字段a~字段f,查找基础数据库,发现已存入一个主键id为100的数据表list0,逐一查找所述数据表list0的字段a~字段f,发现字段a包括有修正标记,即字段a为修正字段。将修正字段a与待更新的数据表list1的其它字段(字段b~字段f)进行合并,得到合并后的待更新的数据表list2,然后将数据表list2以覆盖list0的方式存入基础数据库中。
在一个优选的实施方式中,所述方法还包括:
根据后端反馈的错误数据,获取所述错误数据对应的数据表的主键id和所述错误数据在所述数据表中的字段号;根据所述主键id和字段号,从所述基础数据库中获取相应的字段内容进行修正并打上修正标记,得到具有修正标记的修正字段;根据所述主键id和字段号,从所述基础数据库中获取所述主键id对应的数据表的其它字段内容,并与所述修正字段进行合并,得到合并数据表;将所述合并数据表以覆盖原始数据表的方式存入所述基础数据库中。
所述后端反馈的错误数据,可以是客户反馈的错误数据,也可以内部检查的时候发现的错误数据。根据错误数据获取对应的数据表的主键id和所述错误数据在所述数据表中的字段号,然后从基础数据库中获取相应的字段内容进行修正并打上修正标记,得到具有修正标记的修正字段;然后从所述基础数据库中获取数据表的其它字段内容(除修正字段外的其它字段),并与所述修正字段进行合并,得到合并数据表;将所述合并数据表以覆盖原始数据表的方式存入所述基础数据库中。
具体的,客户反馈,给客户提供的清洗数据中法人张三是被限制高消费的,但是实际上法院已经取消了限制,即字段“法人状态”是错误的(张三之前被限制高消费,但是后续被法院取消了限制,裁判文书已经生效,但是网上的公示文书较慢,所以采集系统采集到的数据还是之前的错误数据)。根据错误数据获取到所述错误数据对应的数据表的主键id为200,字段号为b,然后对从基础数据库中获取主键id为200、字段号为b的字段内容进行修正,再打上修正标记,得到修正字段b。然后从所述基础数据库中获取主键id为200对应的数据表的其它字段内容,与所述修正字段b进行合并,得到合并数据表,将所述合并数据表以覆盖原始数据表的方式存入所述基础数据库中。
在一个优选的实施方式中,所述方法还包括:
将所述基础数据库中的数据进行业务清洗,并将业务清洗后的数据更新至业务数据库中;以日志同步的方式,将所述业务数据库中的更新数据同步至线上数据库中。
所述基础数据库为全量数据库,业务数据库存在多个,一个具体的业务对应一个业务数据库,业务清洗就是从基础数据库中获取与具体业务相关的数据,并存入对应的业务数据库中。业务清洗还可能对从基础数据库中获取的业务数据进行进一步的清洗,使所述业务数据的展现形式能够符合对应业务个性化的展示要求。
由于业务数据库中的数据发生变更后,会将相关的变更操作记录到日志中,因此,所述日志同步的方式,是指将业务数据库的日志记录的变更操作同步到线上数据库,从而能够将业务数据库中的更新数据同步至线上数据库中,供客户使用。所述线上数据库可以是类似阿里云mysql的云数据库。
进一步的,所述“将所述基础数据库中的数据进行业务清洗,并将业务清洗后的数据更新至业务数据库中”具体包括:
从所述基础数据库中获取与具体业务具有关联关系的数据表,提取所述数据表中与所述具体业务具有关联关系的字段,将只包括有关联关系的字段的数据表存入对应业务的业务数据库中。具体的,从基础数据库中获取与业务a具有关联关系的数据表list1~list20,然后提取所述数据表list1~list20中与业务a具有关联关系的字段(例如提取list1~list20中的字段a至字段c),将只包括具有关联关系的字段的list1~list20存入业务a对应的业务数据库中。
在一个具体的实施方式中,在收到采集系统采集的某条数据之后,先判断这条数据是否符合预设清洗规则,若符合,则对所述数据进行字段清洗,得到主键id为m的数据表t1,然后查找基础数据库,发现不存在主键id为m的数据表,直接以m为索引将所述数据表t1存入基础数据库中。然后所述数据表t1被提取至业务b的业务数据库、并同步更新至线上数据库,供客户使用。客户在使用后反馈所述数据表t1的字段c是错误的,因此从基础数据库中获取所述错误字段的内容进行修正并在字段c打上修正记录,然后与所述数据表t1的其它字段的内容进行合并,将合并后的数据表t2以覆盖原始数据表t1的方式存入基础数据库中。在收到采集系统采集的最新的符合预设清洗规则的数据后,再次经过字段清洗,得到新的主键id为m的数据表t3(所述数据表t3与数据表t2相比,字段a、字段c和字段e有更新)。然后查找基础数据库,发现存在主键id为m的数据表t2,且数据表t2中包含有修正字段c,将修正字段c替换数据表t3中的字段c后得到数据表t4,将数据表t4以覆盖数据表t2的方式存入所述基础数据库中。最后,基础数据库中的数据表t4即保留了修正字段c(即确保更新后的清洗数据的正确性),又将字段a和字段e进行了更新(即保证了对最新的清洗数据的更新)。
本发明还提供一种电子设备,包括存储器和处理器,所述存储器存储有可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现上述所述具有修正功能的数据清洗方法中的任意一个步骤,也就是说,实现上述所述具有修正功能的数据清洗方法中任意一个技术方案中的步骤。
本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述所述具有修正功能的数据清洗方法中的任意一个步骤,也就是说,实现上述所述具有修正功能的数据清洗方法中的任意一个技术方案中的步骤。
应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施方式中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。
1.一种具有修正功能的数据清洗方法,其特征在于,所述方法包括:
将符合预设清洗规则的数据进行字段清洗后,每条数据清洗为带有主键id的数据表;
根据预设的更新规则,将每个所述数据表以对应主键id为索引更新至基础数据库中;其中,所述预设的更新规则包括:
在根据主键id判定待更新的数据表已存入所述基础数据库中,且已存入的数据表中包括有修正字段后,将所述修正字段覆盖所述待更新的数据表对应的字段后,将所述待更新的数据表以覆盖已存入数据表的方式存入所述基础数据库中。
2.根据权利要求1所述具有修正功能的数据清洗方法,其特征在于,所述预设的更新规则还包括:
在根据主键id判定待更新的数据表已存入所述基础数据库中,且已存入的数据表中不包括有修正字段后,将所述待更新的数据表以覆盖已存入数据表的方式存入所述基础数据库中。
3.根据权利要求1所述具有修正功能的数据清洗方法,其特征在于,所述预设的更新规则还包括:
在根据主键id判定待更新的数据表没有存入所述基础数据库中后,以对应主键id为索引将所述待更新的数据表存入所述基础数据库中。
4.根据权利要求1所述具有修正功能的数据清洗方法,其特征在于,所述方法还包括:
根据后端反馈的错误数据,获取所述错误数据对应的数据表的主键id和所述错误数据在所述数据表中的字段号;
根据所述主键id和字段号,从所述基础数据库中获取相应的字段内容进行修正并打上修正标记,得到具有修正标记的修正字段;
根据所述主键id和字段号,从所述基础数据库中获取所述主键id对应的数据表的其它字段内容,并与所述修正字段进行合并,得到合并数据表;
将所述合并数据表以覆盖原始数据表的方式存入所述基础数据库中。
5.根据权利要求1所述具有修正功能的数据清洗方法,其特征在于,所述“字段清洗”包括:
对每条数据中的各个字段进行清洗,使各个字段的展现形式符合页面展示的标准形式。
6.根据权利要求1所述具有修正功能的数据清洗方法,其特征在于,所述方法还包括:
获取待清洗数据,判断所述待清洗数据是否符合预设清洗规则;所述预设清洗规则是指每条数据包括指定的n个字段,所述n为正整数。
7.根据权利要求1所述具有修正功能的数据清洗方法,其特征在于,所述方法还包括:
将所述基础数据库中的数据进行业务清洗,并将业务清洗后的数据更新至业务数据库中;
以日志同步的方式,将所述业务数据库中的更新数据同步至线上数据库中。
8.根据权利要求7所述具有修正功能的数据清洗方法,其特征在于,所述“将所述基础数据库中的数据进行业务清洗,并将业务清洗后的数据更新至业务数据库中”包括:
从所述基础数据库中获取与具体业务具有关联关系的数据表,提取所述数据表中与所述具体业务具有关联关系的字段,将只包括有关联关系的字段的数据表存入对应业务的业务数据库中。
9.一种电子设备,包括存储器和处理器,所述存储器存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1-8任意一项所述具有修正功能的数据清洗方法中的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-8任意一项所述具有修正功能的数据清洗方法中的步骤。
技术总结