一种数据清洗方法及装置与流程

文档序号:18360868发布日期:2019-08-06 23:49阅读:158来源:国知局
本说明书属于计算机
技术领域
:,尤其涉及一种数据清洗方法及装置。
背景技术
::数据清洗可以理解为发现并纠正数据文件中可识别的错误的最后一道程序,包括检查数据一致性,处理无效值和缺失值等,或者根据一定的数据清洗规则筛选出满足清洗规则的数据。例如:在返佣等业务场景下,通常需要针对海量的交易数据进行清洗以得到最终的待返佣对象以及对应的待返佣交易相关数据。现有技术中,数据清洗通常是通过多个表之间进行联接,然后通过编写sql(structuredquerylanguage,结构化查询语言)语法中的where表达式来实现离线数据的过滤清洗。这种数据清洗方式对sql代码的侵入性比较强,维护成本高,灵活性比较差。技术实现要素:本说明书实施例的目的在于提供一种数据清洗方法及装置,提高了数据清洗的灵活性。一方面本说明书实施例提供了一种数据清洗方法,包括:接收数据清洗请求;根据所述数据清洗请求确定数据清洗规则,所述数据清洗规则包括:清洗特征因子和所述清洗特征因子满足的清洗条件;获取待清洗数据,根据所述待清洗数据确定所述清洗特征因子对应的特征因子值;根据所述数据清洗规则和所述特征因子值对所述待清洗数据进行清洗,将满足所述数据清洗规则的待清洗数据作为清洗结果数据。另一方面,本说明书提供了一种数据清洗装置,包括:请求接收模块,用于接收数据清洗请求;清洗规则定义模块,用于根据所述数据清洗请求确定数据清洗规则,所述数据清洗规则包括:清洗特征因子和所述清洗特征因子满足的清洗条件;特征因子值获取模块,用于获取待清洗数据,根据所述待清洗数据确定所述清洗特征因子对应的特征因子值;数据清洗模块,用于根据所述数据清洗规则和所述特征因子值对所述待清洗数据进行清洗,将满足所述数据清洗规则的待清洗数据作为清洗结果数据。再一方面,本说明书提供了数据清洗处理设备,包括:至少一个处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现本说明书实施例中的数据清洗方法。又一方面,本说明书提供了一种数据清洗系统,包括至少一个处理器以及用于存储处理器可执行指令的存储器,用于实现本说明书实施例中的数据清洗方法。本说明书提供的数据清洗方法、装置、处理设备、系统,针对不同的数据清洗场景,配置一条或多条的数据清洗规则,将数据清洗规则中涉及到的清洗特征定义成一个清洗特征因子,清洗出各个清洗特征因子的特征因子值。根据数据清洗规则和清洗特征因子的特征因子值,对数据进行清洗。不同的业务场景可以定义不同的数据清洗规则,通过数据清洗规则以及清洗特征因子的定义,将数据清洗逻辑通过结构化的方式表达出来,提升了整个数据清洗过程的灵活性和可维护性。附图说明为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1是本说明书一个实施例中数据清洗方法的流程示意图;图2是本说明书一些实施例中分层数据清洗的流程示意图;图3是本说明书有一个实施例中数据清洗流程示意图;图4是本说明书提供的数据清洗装置一个实施例的模块结构示意图;图5是本说明书实施例中一种数据清洗服务器的硬件结构框图。具体实施方式为了使本
技术领域
:的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。很多业务场景下都需要对数据进行清洗,数据清洗可以理解为根据一定的清洗规则或条件,筛选出满足条件的数据。不同的数据可能需要使用不同的清洗规则进行清洗,业务场景和政策的改变,清洗规则可能需要不断的变换,清洗逻辑也可能比较复杂。本说明书实施例中提供了一种数据清洗方法,根据数据清洗需求,定义数据清洗规则和清洗特征因子,根据待清洗数据确定出清洗特征因子的特征因子值。基于数据清洗规则和清洗特征因子的特征因子值,对待清洗数据进行清洗,筛选出满足数据清洗规则的数据。实现了基于数据清洗规则的数据清洗,提高了数据清洗的灵活性和适用性。本说明书中数据清洗方法可以应用在客户端或服务器中,客户端可以是智能手机、平板电脑、智能可穿戴设备(智能手表、虚拟现实眼镜、虚拟现实头盔等)、智能车载设备等电子设备。具体的,图1是本说明书一个实施例中数据清洗方法的流程示意图,如图1所示,本说明书一个实施例中提供的数据清洗方法可以包括:步骤102、接收数据清洗请求。在具体的实施过程中,不同的业务场景都可能需要进行数据清洗,如:某购物平台需要对一笔交易数据进行数据清洗,用户可以通过购物平台或其他客户端向数据清洗装置发送数据清洗请求。数据清洗请求中可以包括一些数据清洗关键信息,如:若要对某个交易数据进行数据清洗,则数据清洗请求中可以包括该笔交易的交易流水号、订单号、交易双方的用户名等信息。数据清洗请求中还可以包括数据清洗的需求,如:将什么样的数据清洗出来。数据清洗请求还可以对应有数据清洗场景如:返佣业务数据清洗场景、订单数据清洗场景等。本说明书实施例中的数据清洗请求可以包括离线数据清洗请求,离线数据清洗可以实现大数据量的清洗,如:针对过去一个月的交易数据进行清洗,清洗出符合返佣条件的交易数据。步骤104、根据所述数据清洗请求确定数据清洗规则,所述数据清洗规则包括:清洗特征因子和所述清洗特征因子满足的清洗条件。在具体的实施过程中,不同的数据清洗请求可以有对应的业务场景,不同的业务场景对应有数据需要满足的规则或条件。例如:对于返佣业务场景,通常返佣政策会设置一定的门槛,只有达到这个门槛的交易才会进行返佣,或者,购物平台的促销活动,也需要满足一定的条件才能参与促销活动。本说明书实施例可以根据数据清洗请求,确定出数据清洗的业务场景,获取对应业务场景的业务需求,根据业务需求定义对应的数据清洗规则,数据清洗规则中可以包括清洗特征因子和清洗特征因子满足的清洗条件。其中,清洗特征因子可以表示数据清洗的关键特征,如:交易金额、交易类型、交易来源、交易时间等。例如:根据数据清洗请求确定出数据清洗请求对应的业务场景是返佣业务,该返佣业务的业务要求返佣的交易需要满足以下条件:1、单笔交易金额大于10元;2、剔除虚假交易;3、交易来源是线下扫码支付。只有同时满足上面三个条件的交易,才能最终参与返佣。则可以确定清洗特征因子可以包括:单笔交易金额、单笔交易是否是虚假交易、单笔交易所属来源,数据清洗规则可以定义为:规则一:交易金额大于10(tradeamount>10);规则二:非虚假交易(iswashtrade=n);规则三:交易来源为线下扫码支付,假设线下扫码支付的来源标识为offline_qr_pay_a和offline_qr_pay_b。可以定义规则三如下:tradesourcein(offline_qr_pay_a,offline_qr_payb)。步骤106、获取待清洗数据,根据所述待清洗数据确定所述清洗特征因子对应的特征因子值。定义好数据清洗规则后,可以获取待清洗数据,如:可以根据数据清洗请求从数据库中获取对应的原始数据,再根据待清洗数据确定出清洗特征因子对应的特征因子值。例如:若对某笔交易进行数据清洗,则可以根据数据清洗请求获取到该笔交易的订单号,根据订单号可以获取到与该笔交易有关的原始数据即待清洗数据。再根据待清洗数据可以获取到清洗特征因子对应的特征因子值,如:交易金额的具体取值、是否为虚假交易、是否为线下扫码支付等。需要说明的是,本说明书实施例中,还可以在接收到数据清洗请求时,即获取数据清洗请求对应的待清洗数据,具体获取的时间可以根据实际需要进行设置,本说明书实施例不作具体限定。步骤108、根据所述数据清洗规则和所述特征因子值对所述待清洗数据进行清洗,将满足所述数据清洗规则的待清洗数据作为清洗结果数据。确定出清洗特征因子对应的特征因子值后,可以根据数据清洗规则进行数据清洗,判断待清洗数据中的各条数据是否满足数据清洗规则,若满足,则保留,若不满足,则可以将该数据删除,将保留下来满足数据清洗规则的数据作为清洗结果数据。例如:若要对近1个月内的返佣业务的交易数据进行清洗,筛选出符合返佣条件的交易数据。在接收到数据清洗请求后,可以定义数据清洗规则,数据清洗规则的具体定义可以参考上述实施例的记载的规则一、规则二、规则三的内容。根据数据清洗请求获取近一个月的交易数据作为待清洗数据,根据待清洗数据确定出每一条交易数据的清洗特征因子对应的特征因子值,如:某笔交易的交易金额=15,该交易不是虚假交易,该交易是线下扫码支付,依次获取每一笔交易对应的清洗特征因子的特征因子值。可以将每一笔交易的清洗特征因子的特征因子值添加到待清洗数据中,根据数据清洗规则和清洗特征因子的特征因子值对每一笔交易数据进行数据清洗,即判断每一笔交易数据是否符合返佣的条件即是否满足数据清洗规则,筛选出符合返佣条件的交易数据,完成数据清洗。本说明书实施例提供的数据清洗方法,针对不同的数据清洗场景,配置一条或多条的数据清洗规则,将数据清洗规则中涉及到的清洗特征定义成一个清洗特征因子,清洗出各个清洗特征因子的特征因子值。根据数据清洗规则和清洗特征因子的特征因子值,对数据进行清洗。不同的业务场景可以定义不同的数据清洗规则,通过数据清洗规则以及清洗特征因子的定义,将数据清洗逻辑通过结构化的方式表达出来,提升了整个数据清洗过程的灵活性和可维护性。在上述实施例的基础上,本说明书一些实施例中,所述根据所述数据清洗请求确定数据清洗规则,包括:根据所述数据清洗请求确定数据清洗层,各所述数据清洗层对应有至少一条数据清洗规则。在具体的实施过程中,本说明书实施例提供的数据清洗方法可以实现多层数据清洗,在接收到数据清洗请求后,可以根据数据清洗请求对应的业务场景和业务需求,确定数据清洗层,再确定各个数据清洗层对应的数据清洗规则,每一层数据清洗层可以对应有一个或多个数据清洗规则。多层数据清洗层可以属于不同的清洗维度,实现多维度的数据清洗。每一层数据清洗层对应的数据清洗规则,可以根据业务场景和业务需求进行设置,也可以预先设置好不同的业务场景和业务需求对应的数据清洗规则库,当需要进行数据清洗时,从数据清洗规则库中获取对应的数据清洗规则。在本说明书一些实施例中,定义好数据清洗层和数据清洗层对应的数据清洗规则后,可以根据所述数据清洗层对应的数据清洗规则和特征因子值,逐层对待清洗数据进行清洗,直至清洗到最后一层数据清洗层。例如:某个业务场景需要对近一个月的交易数据进行清洗,清洗出符合返佣条件的交易数据中,一天的交易金额大于一定阈值的交易用户的交易数据。可以根据清洗数据请求定义两层数据清洗层,第一层数据清洗层用于清洗出符合返佣条件的交易数据,第二层数据清洗层用于清洗出符合单日交易总金额大于一定阈值的交易用户的交易数据。可以根据对应的业务需求,分别定义第一层清洗层的数据清洗规则和第二层清洗层的数据清洗规则。根据第一层清洗层的数据清洗规则,先清洗出符合返佣条件的交易数据,再对符合返佣条件的交易数据进行数据处理,计算同一个交易用户在同一天的交易总金额,利用第二层数据清洗层的数据清洗规则,清洗出单日交易总金额符合要求的交易用户的交易数据。需要说明的是,本说明书实施例中利用不同的数据清洗层对数据进行分层清洗,不同的数据清洗层可以对待清洗数据中的某些数据进行清洗,如:第一层数据清洗层用于对待清洗数据中部分数据进行数据处理后,再进行清洗,第二层数据清洗层用于对待清洗数据中的另一部分数据进行数据处理后,再进行清洗。或者,可能下一层的数据清洗需要对上一层筛选出的数据进行一定规则的计算,再进行清洗。本说明书实施例,根据数据清洗请求对应的业务需求,可以定义多层数据清洗层,并定义每一层数据清洗层对应的数据清洗规则。根据各层数据清洗层对应的数据清洗规则,逐层的对待清洗数据进行分层清洗。数据清洗逻辑清晰,可以实现数据的分层清洗,提高数据清洗的准确性,能够实现数据的多维度分层清洗。在上述实施例的基础上,本说明书一些实施例中,可以根据所述数据清洗规则和所述特征因子值,对所述待清洗数据进行离线清洗,如:将所述数据清洗规则和所述特征因子值发送至离线规则判断模块,以使得所述离线规则判断模块根据所述数据清洗规则和所述特征因子值,对所述待清洗数据进行离线数据清洗。在具体的实施过程中,本说明书实施例在进行数据清洗时,可以利用数据清洗规则和清洗特征因子,将数据清洗的过程与sql解耦。如:可以预先定义离线规则判断模块,离线规则判断模块中可以包括通过java等编程语言实现的能够嵌入在sql语法当中,并且完成复杂规则判断逻辑的用户自定义的判断函数。离线规则判断模块可以理解为通过高级语言实现的,能够基于规则和变量进行规则判断,并且能够在离线sql环境中执行的计算机程序。其中,高级语言,包括但不仅限于java,c,c++、python等。并且,离线规则判断模块中涉及到的规则表达式,可以支持不同的表达式语法,规则表达式的语法格式并非唯一固定,可以根据实际需要进行选择,本说明书实施例不作具体限定。需要说明的是,本说明书实施例中的规则表达式配置,根据不同的规则判断引擎的实现方式,对应的语法格式可能不一致的。例如上述实施例中的规则三的定义:交易来源为线下扫码支付。可以将规则表达式写成:tradesourcein(offline_qr_pay_a,offline_qr_payb);也可以写成:[offline_qr_pay_a,offline_qr_payb].contains(tradesource),具体可以根据实际需要进行选择。本说明书实施例提供的数据清洗方法,将数据清洗规则的确定或定义,清洗特征因子的定义从sql层面解耦,通过离线规则判断引擎即离线规则判断模块进行规则判断,在引擎中实现数据的清洗过滤。将复杂的数据清洗规则从sql层面抽象出来,放到离线规则判断引擎中进行,极大的简化了整个sql逻辑的复杂度,提升了数据清洗逻辑变更的灵活性,降低了清洗逻辑出错的风险。在上述实施例的基础上,本说明书一些实施例中,所述根据所述数据清洗请求确定数据清洗规则,包括:根据业务场景,定义清洗特征因子,获得清洗特征因子集合,所述清洗特征因子集合包括清洗特征因子对应的编号;根据所述数据清洗请求,确定所述数据清洗规则以及所述数据清洗规则所需的清洗特征因子的因子编号;根据所述因子编号,从所述特征因子集合中获取对应的清洗特征因子。在具体的实施过程中,本说明书实施例中可以预先根据各种业务场景对应的业务需求,或者也可以根据数据清洗请求对应的业务场景,定义出清洗特征因子,确定出清洗特征因子集合,清洗特征因子集合中可以包括各个清洗特征因子对应的因子编号即每个清洗特征因子对应有一个因子id(identity)。例如:业务场景1可能需要的清洗特征因子为a、b、c,业务场景2可能需要的清洗特征因子为d、e,则可以将a、b、c、d、e进行编号,确定每个清洗特征因子的因子id,将a、b、c、d、e以及对应的编号存储在清洗特征因子集合中。表1表1是本说明书一些实施例中数据清洗规则的定义表格,如表1所示,在根据数据清洗请求确定出数据清洗规则后,数据清洗规则中可以包括需要的清洗特征因子的因子编号即关联因子id。再根据因子编号,从特征因子集合中获取对应的清洗特征因子,数据清洗过程中,可以根据数据清洗规则中的因子编号,确定需要哪些清洗特征因子的特征因子值。此外,如表1所示,数据清洗规则的定义中还可以包括:规则描述,规则表达式,表达式引擎,关联外键。其中,规则描述可以理解为用于说明具体的规则信息,规则表达式部分可以理解为在规则判断的时候直接传递到离线规则判断引擎中进行判断,表达式引擎可以理解为指定了具体使用何种表达式来进行表达式的判断,针对不同的业务场景可以实现多个不同的表达式引擎。关联外键,可以理解为用于关联该条数据清洗规则对应的具体的一个数据清洗场景,在实际数据清洗过程中可以通过关联外键获取到该清洗场景下对应的一条或多条判断规则。图2是本说明书一些实施例中分层数据清洗的流程示意图,如图2所示,本说明书一些实施例中定义了2层数据清洗层,每一层数据清洗层对应有自己的数据清洗规则集,每一个数据清洗规则集对应有多个数据清洗规则。每一个数据清洗规则中可以对应有多个清洗特征因子的因子编号,根据因子编号可以从特征因子集合获取到对应的清洗特征因子。再利用上述实施例的方法,从原始数据即待清洗数据中获取各个清洗特征因子的特征因子值,将数据清洗规则以及对应的特征因子值发送到离线规则判断模块,利用离线规则判断模块中的判断函数,对待清洗数据进行清洗,获得清洗结果数据即图2中的目标数据。本说明书实施例,通过清洗特征因子的因子编号,将数据清洗规则和清洗特征因子关联起来,确定好数据清洗规则后,可以根据数据清洗规则中的因子编号,确定出需要准备的清洗特征因子。方便数据管理,提高了数据处理的效率。在上述实施例的基础上,本说明书一些实施例中,所述清洗特征因子集合中还包括:清洗特征因子的来源信息和清洗特征因子的来源类型;相应地,所述根据所述待清洗数据确定所述清洗特征因子对应的特征因子值,包括:根据所述清洗特征因子的来源信息和所述清洗特征因子的来源类型,从对应的待清洗数据中确定所述清洗特征因子对应的特征因子值。表2表2是本说明书一些实施例中特征因子集合表,如表2所示,在具体的实施过程中,本说明书实施例中的清洗特征因子定义了一个具体因子的信息,可以包括因子编号即因子id、因子字段、因子描述、因子来源类型即清洗特征因子的来源类型,因子来源信息即清洗特征因子的来源信息。其中因子id可以作为数据清洗规则定义的外键,用于数据清洗规则关联到具体的清洗特征因子上。因子描述可以理解为对清洗特征因子的具体说明,因子字段可以理解为作为在数据清洗规则表达式中真实使用的一个变量名。因子来源类型可以理解为清洗特征因子的具体来源,不同清洗特征因子的获取方式有可能不一致,可以从离线表中获取,也可以从某个系统查询获取到。关联来源即因子来源信息可以理解为清洗特征因子的具体获取来源。在获取清洗特征因子的特征因子值时,可以根据清洗特征因子的来源信息和清洗特征因子的来源类型,从对应的待清洗数据中确定清洗特征因子对应的特征因子值。如:若清洗特征因子从离线表中获取,并且因子来源信息中给出了具体的离线表,则可以直接从待清洗数据的对应离线表中获取到清洗特征因子对应的特征因子值。本说明书实施例,在定义清洗特征因子时,定义了因子来源信息和因子来源类型,可以从待清洗数据中按照清洗特征因子对应的来源获得特征因子值,提高了特征因子值获取的准确性和速度。在上述实施例的基础上,本说明书一些实施例中,所述根据所述待清洗数据确定所述清洗特征因子对应的特征因子值,包括:从所述待清洗数据中直接确定所述清洗特征因子对应的特征因子值;或,根据所述待清洗数据,计算获得所述清洗特征因子对应的特征因子值。在具体的实施过程中,清洗特征因子对应的特征因子值,可以是一个已经存在的变量值,可以直接从待清洗数据中获取到,也可以是一个需要经过累加计算后得到的变量值,需要对待清洗数据进行计算后获得。例如:交易金额可以直接从交易表中提取到,但是如果是某个商户本月的交易量总和,则需要通过累加计算以后得到。通过清洗特征因子可以定义数据清洗规则中的每一个变量的数据来源和清洗方案,提升了数据清洗的灵活性。图3是本说明书有一个实施例中数据清洗流程示意图,下面结合图3,以一个具体的返佣业务数据清洗场景为例,整体介绍本说明书实施例中的数据清洗流程。通常返佣政策会设置一定的门槛,只有达到这个门槛的交易我们才会进行返佣,这个过程中需要涉及到具体的离线数据清洗逻辑,数据清洗的流程可以包括:1、接收离线数据清洗请求,根据离线数据清洗请求,确定具体的离线数据清洗场景以及业务需求。例如:业务要求返佣的交易需要满足如下几个条件:1)、单笔交易金额大于10元;2)、剔除虚假交易;3)、交易来源是线下扫码支付。只有同时满足上面三个条件的交易,才能最终参与返佣。需要针对全量的交易数据,通过离线数据清洗将最终符合条件,并且需要进行返佣的交易数据清洗出来。2、根据业务场景逻辑和业务需求,抽象出该场景下的一条或多条数据清洗规则。根据上面场景下可以抽象出如下的三条数据清洗规则:规则一:交易金额大于10(tradeamount>10);规则二:非虚假交易(iswashtrade=n);规则三:交易来源为线下扫码支付,假设线下扫码支付的来源标识为offline_qr_pay_a和offline_qr_pay_b。规则三定义如下tradesourcein(offline_qr_pay_a,offline_qr_payb)。3、根据具体的数据清洗规则描述,抽象出每一条数据清洗规则中的清洗特征因子。针对上述三条数据清洗规则,可以得到具体的清洗特征因子如下:单笔交易金额:tradeamount;单笔交易是否虚假交易:iswashtrade;单笔交易所属来源:tradesource。4、获取原始数据清洗表即获取待清洗数据,并且清洗得到的原始数据清洗表中,每条数据记录对应的各数据清洗规则中的清洗特征因子的特征因子值。如:得到的原始数据清洗表为ods_trade_origin_table,并针对上述步骤3中的每一个清洗特征因子进行清洗得到每一条交易记录对应的tradeamount、iswashtrade、tradesource清洗特征因子的特征因子值。可以将获得的清洗特征因子的特征因子值跟原始数据清洗表进行合并,得到最终的规则清洗基础表ods_trade_rule_cleaning_table。5、对于规则清洗基础表中的每一条记录数据,拿到其对应关联到本层清洗规则的列表,以及每条数据清洗规则中涉及到的清洗特征因子的特征因子值,传递到离线规则判断模块中。6、离线规则判断模块接收到具体的数据清洗规则和特征因子值,针对每一条数据,执行判断逻辑。如果各条规则都满足,则返回成功;反之返回失败。对于离线规则判断模块返回失败的数据,可以过滤掉。这里的离线规则判断模块,可以理解为是一种通过java等编程语言实现的能够嵌入在sql语法当中,并且完成复杂规则判断逻辑的用户自定义函数。7、如果该业务场景下存在多层数据清洗逻辑,则会重复上面步骤6的步骤,对数据进行分层数据清洗。8、上述步骤5和步骤6执行完以后,最终实现规则配置化的离线分层数据清洗。本说明书实施例提供的数据清洗方法,针对不同的数据清洗场景,配置一条或多条的数据清洗规则。将数据清洗规则中涉及到的每一个清洗特征定义成一个清洗特征因子,并且约定清洗特征因子的具体取数逻辑。然后清洗出对应数据关联规则中各个清洗特征因子的特征因子值。再将原始数据清洗表的各条数据跟其涉及到的数据清洗规则中的因子字段进行合并,产生一张待清洗数据表。针对待清洗数据表中的每一条记录数据,将这条数据对应的数据清洗规则,以及各条数据清洗规则中涉及到的各个清洗特征因子对应的具体值,传入到离线规则判断引擎中进行规则判断。离线规则判断引擎根据数据清洗规则以及特征因子值最终决策该条数据记录是否满足规则。如果满足规则,则该条数据记录保留;如果不满足规则,则该条数据记录会被过滤掉。针对原始数据清洗表,在不同层次的清洗需求,可以定义多组数据清洗规则,并实现对数据的分层清洗。通过数据清洗规则以及清洗特征因子的定义,将数据清洗逻辑通过结构化的方式表达出来,提升整个数据清洗过程的灵活性和可维护性。并且,将清洗数据规则的获取,清洗特征因子的准备从sql层面解耦,然后通过离线规则判断引擎进行规则判断,在引擎中实现数据的清洗过滤。将复杂的数据清洗规则从sql层面抽象出来,放到离线规则判断引擎中进行,极大的简化了整个sql逻辑的复杂度,提升了数据清洗逻辑变更的灵活性,降低了清洗逻辑出错的风险。本说明书中上述方法的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参加即可,每个实施例重点说明的都是与其他实施例的不同之处。相关之处参加方法实施例的部分说明即可。基于上述所述的数据清洗方法,本说明书一个或多个实施例还提供一种数据清洗装置。所述的装置可以包括使用了本说明书实施例所述方法的系统(包括分布式系统)、软件(应用)、模块、组件、服务器、客户端等并结合必要的实施硬件的装置。基于同一创新构思,本说明书实施例提供的一个或多个实施例中的装置如下面的实施例所述。由于装置解决问题的实现方案与方法相似,因此本说明书实施例具体的装置的实施可以参加前述方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。具体地,图4是本说明书提供的数据清洗装置一个实施例的模块结构示意图,如图4所示,本说明书中提供的数据清洗装置可以包括:请求接收模块41、清洗规则定义模块42、特征因子值获取模块43、数据清洗模块44,其中:请求接收模块41,可以用于接收数据清洗请求;清洗规则定义模块42,可以用于根据所述数据清洗请求确定数据清洗规则,所述数据清洗规则包括:清洗特征因子和所述清洗特征因子满足的清洗条件;特征因子值获取模块43,可以用于获取待清洗数据,根据所述待清洗数据确定所述清洗特征因子对应的特征因子值;数据清洗模块44,可以用于根据所述数据清洗规则和所述特征因子值对所述待清洗数据进行清洗,将满足所述数据清洗规则的待清洗数据作为清洗结果数据。本说明书实施例提供的数据清洗装置,针对不同的数据清洗场景,配置一条或多条的数据清洗规则,将数据清洗规则中涉及到的清洗特征定义成一个清洗特征因子,并且约定因子的具体取数逻辑,清洗出各个清洗特征因子的特征因子值。根据数据清洗规则和清洗特征因子的特征因子值,对数据进行清洗。不同的业务场景可以定义不同的数据清洗规则,通过数据清洗规则以及清洗特征因子的定义,将数据清洗逻辑通过结构化的方式表达出来,提升了整个数据清洗过程的灵活性和可维护性。在上述实施例的基础上,所述清洗规则定义模块具体用于:根据所述数据清洗请求确定数据清洗层,各所述数据清洗层对应有至少一条数据清洗规则。本说明书实施例,根据数据清洗请求对应的业务需求,可以定义多层数据清洗层,并定义每一层数据清洗层对应的数据清洗规则,数据清洗规则逻辑清楚,提升了数据处理效率,并且能够实现数据的多维度分层清洗。在上述实施例的基础上,所述数据清洗模块具体用于:根据所述数据清洗层对应的数据清洗规则和特征因子值,逐层对所述待清洗数据进行清洗。本说明书实施例,根据数据清洗请求对应的业务需求,可以定义多层数据清洗层,并定义每一层数据清洗层对应的数据清洗规则。根据各层数据清洗层对应的数据清洗规则,逐层的对待清洗数据进行分层清洗。数据清洗逻辑清晰,可以实现数据的分层清洗,提高数据清洗的准确性。在上述实施例的基础上,所述数据清洗模块具体用于:将所述数据清洗规则和所述特征因子值发送至离线规则判断模块,以使得所述离线规则判断模块根据所述数据清洗规则和所述特征因子值,对所述待清洗数据进行离线数据清洗。本说明书实施例,将数据清洗规则的确定或定义,清洗特征因子的定义从sql层面解耦,通过离线规则判断引擎即离线规则判断模块进行规则判断,在引擎中实现数据的清洗过滤。将复杂的数据清洗规则从sql层面抽象出来,放到离线规则判断引擎中进行,极大的简化了整个sql逻辑的复杂度,提升了数据清洗逻辑变更的灵活性,降低了清洗逻辑出错的风险。在上述实施例的基础上,所述清洗规则定义模块包括:清洗因子定义单元,用于根据业务场景,定义清洗特征因子,获得清洗特征因子集合,所述清洗特征因子集合包括清洗特征因子对应的编号;清洗规则定义单元,用于根据所述数据清洗请求,确定所述数据清洗规则以及所述数据清洗规则所需的清洗特征因子的因子编号;清洗因子关联单元,用于根据所述因子编号,从所述特征因子集合中获取对应的清洗特征因子。本说明书实施例,通过清洗特征因子的因子编号,将数据清洗规则和清洗特征因子关联起来,确定好数据清洗规则后,可以根据数据清洗规则中的因子编号,确定出需要准备的清洗特征因子。方便数据管理,提高了数据处理的效率。在上述实施例的基础上,所述清洗因子定义单元确定的所述清洗特征因子集合中还包括:清洗特征因子的来源信息和清洗特征因子的来源类型;相应地,所述清洗因子关联单元具体用于:根据所述清洗特征因子的来源信息和所述清洗特征因子的来源类型,从对应的待清洗数据中确定所述清洗特征因子对应的特征因子值。本说明书实施例,在定义清洗特征因子时,定义了因子来源信息和因子来源类型,可以从待清洗数据中按照清洗特征因子对应的来源获得特征因子值,提高了特征因子值获取的准确性和速度。在上述实施例的基础上,所述特征因子值获取模块具体用于:从所述待清洗数据中直接确定所述清洗特征因子对应的特征因子值;或,根据所述待清洗数据,计算获得所述清洗特征因子对应的特征因子值。本说明书实施例,通过清洗特征因子可以定义数据清洗规则中的每一个变量的数据来源和清洗方案,提升了数据清洗的灵活性。需要说明的,上述所述的装置根据方法实施例的描述还可以包括其他的实施方式。具体的实现方式可以参照上述的方法实施例的描述,在此不作一一赘述。本说明书实施例还提供一种数据清洗处理设备,包括:至少一个处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现上述实施例的数据清洗方法,如:接收数据清洗请求;根据所述数据清洗请求确定数据清洗规则,所述数据清洗规则包括:清洗特征因子和所述清洗特征因子满足的清洗条件;获取待清洗数据,根据所述待清洗数据确定所述清洗特征因子对应的特征因子值;根据所述数据清洗规则和所述特征因子值对所述待清洗数据进行清洗,将满足所述数据清洗规则的待清洗数据作为清洗结果数据。需要说明的,上述所述的处理设备根据方法实施例的描述还可以包括其他的实施方式。具体的实现方式可以参照相关方法实施例的描述,在此不作一一赘述。本说明书实施例还提供了一种数据清洗系统,包括至少一个处理器以及用于存储处理器可执行指令的存储器,用于实现上述实施例中数据清洗方法。本说明书提供的数据清洗系统,也可以应用在多种数据分析处理系统中。所述系统可以包括上述实施例中任意一个数据清洗装置。所述的系统可以为单独的服务器,也可以包括使用了本说明书的一个或多个所述方法或一个或多个实施例装置的服务器集群、系统(包括分布式系统)、软件(应用)、实际操作装置、逻辑门电路装置、量子计算机等并结合必要的实施硬件的终端装置。所述核对差异数据的检测系统可以包括至少一个处理器以及存储计算机可执行指令的存储器,所述处理器执行所述指令时实现上述任意一个或者多个实施例中所述方法的步骤。本说明书实施例所提供的方法实施例可以在移动终端、计算机终端、服务器或者类似的运算装置中执行。以运行在服务器上为例,图5是本说明书实施例中一种数据清洗服务器的硬件结构框图,该服务器可以是上述实施例中的数据清洗装置或数据清洗系统。如图5所示,服务器10可以包括一个或多个(图中仅示出一个)处理器100(处理器100可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)、用于存储数据的存储器200、以及用于通信功能的传输模块300。本邻域普通技术人员可以理解,图5所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,服务器10还可包括比图5中所示更多或者更少的组件,例如还可以包括其他的处理硬件,如数据库或多级缓存、gpu,或者具有与图5所示不同的配置。存储器200可用于存储应用软件的软件程序以及模块,如本说明书实施例中的数据清洗方法对应的程序指令/模块,处理器100通过运行存储在存储器200内的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器200可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器200可进一步包括相对于处理器100远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。传输模块300用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端的通信供应商提供的无线网络。在一个实例中,传输模块300包括一个网络适配器(networkinterfacecontroller,nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输模块300可以为射频(radiofrequency,rf)模块,其用于通过无线方式与互联网进行通讯。上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。本说明书提供的上述实施例所述的方法或装置可以通过计算机程序实现业务逻辑并记录在存储介质上,所述的存储介质可以计算机读取并执行,实现本说明书实施例所描述方案的效果。所述存储介质可以包括用于存储信息的物理装置,通常是将信息数字化后再以利用电、磁或者光学等方式的媒体加以存储。所述存储介质有可以包括:利用电能方式存储信息的装置如,各式存储器,如ram、rom等;利用磁能方式存储信息的装置如,硬盘、软盘、磁带、磁芯存储器、磁泡存储器、u盘;利用光学方式存储信息的装置如,cd或dvd。当然,还有其他方式的可读存储介质,例如量子存储器、石墨烯存储器等等。本说明书实施例提供的上述数据清洗方法或装置可以在计算机中由处理器执行相应的程序指令来实现,如使用windows操作系统的c++语言在pc端实现、linux系统实现,或其他例如使用android、ios系统程序设计语言在智能终端实现,以及基于量子计算机的处理逻辑实现等。需要说明的是说明书上述所述的装置、计算机存储介质、系统根据相关方法实施例的描述还可以包括其他的实施方式,具体的实现方式可以参照对应方法实施例的描述,在此不作一一赘述。本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参加即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于硬件+程序类实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参加方法实施例的部分说明即可。本说明书实施例并不局限于必须是符合行业通信标准、标准计算机数据处理和数据存储规则或本说明书一个或多个实施例所描述的情况。某些行业标准或者使用自定义方式或实施例描述的实施基础上略加修改后的实施方案也可以实现上述实施例相同、等同或相近、或变形后可预料的实施效果。应用这些修改或变形后的数据获取、存储、判断、处理方式等获取的实施例,仍然可以属于本说明书实施例的可选实施方案范围之内。在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(programmablelogicdevice,pld)(例如现场可编程门阵列(fieldprogrammablegatearray,fpga))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片pld上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logiccompiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(hardwaredescriptionlanguage,hdl),而hdl也并非仅有一种,而是有许多种,如abel(advancedbooleanexpressionlanguage)、ahdl(alterahardwaredescriptionlanguage)、confluence、cupl(cornelluniversityprogramminglanguage)、hdcal、jhdl(javahardwaredescriptionlanguage)、lava、lola、myhdl、palasm、rhdl(rubyhardwaredescriptionlanguage)等,目前最普遍使用的是vhdl(very-high-speedintegratedcircuithardwaredescriptionlanguage)与verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(applicationspecificintegratedcircuit,asic)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:arc625d、atmelat91sam、microchippic18f26k20以及siliconelabsc8051f320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、车载人机交互设备、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。虽然本说明书一个或多个实施例提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或终端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书一个或多个时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。本发明是参照根据本发明实施例的方法、装置(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储、石墨烯存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。本领域技术人员应明白,本说明书一个或多个实施例可提供为方法、系统或计算机程序产品。因此,本说明书一个或多个实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。本说明书一个或多个实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本本说明书一个或多个实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参加即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参加方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。以上所述仅为本说明书一个或多个实施例的实施例而已,并不用于限制本说明书一个或多个实施例。对于本领域技术人员来说,本说明书一个或多个实施例可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在权利要求范围之内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1