数据清洗方法和装置与流程

文档序号:11177238阅读:316来源:国知局
数据清洗方法和装置与流程

本发明涉及信息技术,尤其涉及一种数据清洗方法和装置。



背景技术:

数据清洗是在数据产出后对数据进行重新审查和校验的过程,目的在于识别出脏数据。因为数据仓库中的数据是从多个业务系统中抽取而来,而且包含历史数据和预测数据等多种类型,这样就避免不了有的数据是错误数据、有的数据相互之间有冲突,这些错误的或有冲突的数据显然是下一环节所不希望出现的,可以称为脏数据。数据清洗就是要按照一定的清洗规则识别出这些脏数据。

现有技术中的数据清洗是在数据产出后,针对所有的数据遍历全部的清洗规则进行清洗,该清洗规则是各业务间通用的,主要针对数据是否残缺、数据格式是否有误等方面进行清洗,显然,这种方式仅能够清洗出数据中的较为明显的脏数据,当脏数据为存在取值有误等情况时,则无法清洗出该脏数据,从而清洗后所获得的干净数据中仍存在有脏数据,清洗效果较差。



技术实现要素:

本发明提供一种数据清洗方法和装置,用于提高清洗效果。

为达到上述目的,本发明的实施例采用如下技术方案:

第一方面,提供了一种数据清洗方法,包括:

根据目标数据的数据特征匹配清洗规则;

利用匹配中的清洗规则对所述目标数据进行清洗。

第二方面,提供了一种数据清洗装置,包括:

匹配模块,用于根据目标数据的数据特征匹配清洗规则;

清洗模块,用于利用匹配中的清洗规则对所述目标数据进行清洗。

本发明实施例提供的数据清洗方法和装置,通过预先根据不同的数据特征,设置多种清洗规则,当需要对目标数据进行清洗时,根据目标数据的数据特征匹配清洗规则,继而利用匹配中的清洗规则对该目标数据进行清洗,从而保证了清洗规则与数据特征相适应,能够更加有针对性的对目标数据进行清洗,有效清洗出更多的脏数据,同时也减少了将干净数据误识别为脏数据的概率,改善了清洗的效果。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1为本发明实施例一提供的一种数据清洗方法的流程示意图;

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

图3为本发明实施例三提供的一种数据清洗装置的结构示意图;

图4为本发明实施例四提供的一种数据清洗装置的结构示意图;

图5为本发明实施例五提供的一种数据清洗装置的结构示意图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

下面结合附图对本发明实施例提供的数据清洗方法和装置进行详细描述。

实施例一

图1为本发明实施例一提供的一种数据清洗方法的流程示意图,如图1所示,包括:

步骤101、根据目标数据的数据特征匹配清洗规则。

其中,数据特征用于对目标数据进行描述。

具体的,可以从请求对目标数据进行清洗的请求端获取到数据相关信息。例如:产生目标数据的原业务、目标数据所需用于的目标业务、原业务中产生目标数据的原计算任务和/或目标业务中目标数据所需用于的目标计算任务等数据相关信息。

将产生目标数据的原业务、目标数据所需用于的目标业务、原业务中产生目标数据的原计算任务和/或目标业务中目标数据所需用于的目标计算任务作为数据特征,采用数据特征匹配预设的清洗规则。

由于将与目标数据相关的任务和/或计算任务作为数据特征,能够准确对目标数据进行描述,从而使得清洗规则与目标数据更加匹配,保证了清洗的效果。

步骤102、利用匹配中的清洗规则对目标数据进行清洗。

其中,清洗规则可以包括至少两个清洗子规则。

作为一种可能的实现形式,各清洗子规则之间为串行关系。具体来说,可以按照匹配中的清洗子规则之间的层级顺序,获取上一层级清洗子规则清洗获得的干净数据;让后采用本层级清洗子规则对上一层级所清洗获得的干净数据进行清洗。

作为另一种可能的实现形式,各清洗子规则之间为并行关系。具体来说,各清洗子规则均遍历目标数据,针对目标数据中的每一条数据进行清洗。当一条数据被至少一个清洗子规则标记为脏数据时,则将该数据标记为目标数据的脏数据;当一条数据被全部的清洗子规则标记为干净数据时,则将该数据标记为目标数据的干净数据。

可见,由于在第二种实现形式中,需要各清洗子规则均遍历目标数 据,因此,执行时间较长,而第一种实现形式中,逐层清洗的方式仅对上一层获得的干净数据进行清洗,因而相较于第二种实现形式能够减少运算量,同时节省执行时间和运行资源。

另外,根据目标数据的数据特征匹配清洗规则之后,利用匹配中的清洗规则对该目标数据进行清洗,保证了清洗规则与数据特征相匹配,能够更加有针对性的对目标数据进行清洗,有效清洗出更多的脏数据,改善了清洗的效果。

实施例二

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

步骤201、对清洗规则进行配置。

具体的,可以预先对清洗规则进行配置,配置的过程可以由用户手动完成,也可以由数据清洗平台根据已存在的清洗规则自动生成。

作为一种可能的实现形式,清洗规则包括三个层级:分别为第一层级清洗子规则、第二层级清洗子规则和第三层级清洗子规则。下面分别对三个层级进行说明:

a、第一层级清洗子规则,由各业务通用的规则构成,主要用于识别出残缺、重复和明显错误的脏数据。

例如,第一层级清洗子规则可以包括:数据中某个字段不能为空、数据已经完结态但是没有完结时间、数据产生时间在民国前、判断a字段加b字段是否等于c字段、某日期字段数据存储格式有误等。

b、第二层级清洗子规则,由针对业务的规则构成,主要用于识别出不同业务所特有的脏数据。

例如,以报警监控系统为例,报警监控系统接入的业务方是确定的,如接入了元数据中心meta、交易系统pay、离线数据处理中心datax,则报警监控系统产出的数据中,调用方字段的取值只能属于三种枚举值,一旦出现其他的调用方,数据应该被清洗出来。

第二级清洗规则不仅可以针对不同业务设置清洗规则,还可以进一 步,设置根据该业务的历史数据进行清洗的清洗规则。

例如:计算业务数据中的特定字段相对历史数据的波动范围是否超出预设阈值,若超出,则作为脏数据。

c、第三级清洗子规则,可供用户自定义使用。

前两个层级的清洗子规则是预置在数据清洗平台中的,第三级清洗子规则可以基于数据清洗平台所设置的接口,从用户端获取该第三层级清洗子规则,从而实现用户自定义设置清洗规则。

作为一种可能的应用场景,高德业务方可以采用用户端定义清洗规则。例如:连续轨迹中,以数据起点为圆心,某一长度为半径,确定一个圆,具体半径取值可以参照数据产生的快慢,如果用户是走路,则正常速度不会超过2m/s,折算到平面地图比例即可。识别落在圆外的数据,如果是个别则忽略,若连续超过预设数目条的数据均落在圆外,则视这些落在圆外的数据为脏数据。这是由于,基于移动速度可以判断出用户不可能在这个时间段内处于数据所指示的位置,因而确定数据为脏数据。

第三层级清洗子规则相似与第二层级清洗子规则,同样可以是基于历史数据进行数据清洗。例如:根据历史数据确定出某用户周末去了某商场,那么推荐商品信息的数据中将衣服和美食相关数据作为干净数据,而将健身和郊游相关数据作为脏数据。

步骤202、接收用于请求对目标数据进行数据清洗的消息,查询是否存在与请求中所指示的目标数据的数据特征匹配的清洗规则,若存在则执行步骤203-205,否则执行步骤206。

其中,该消息中可以携带有目标数据的基本信息:目标数据所存储在的分区和表名。

具体的,在接收到消息之后,首先提取目标数据的数据特征,然后根据所提取的数据特征匹配清洗规则。作为一种可能的实现形式,消息中还可以携带有产生目标数据的原业务的标识。作为另一种可能的实现形式,根据目标数据当前所在位置确定产生该目标数据的原业务。

步骤203、若存在,对匹配中的清洗规则进行解析,获得采样规则和各层级清洗子规则。

若确定存在与目标数据的数据特征匹配的清洗规则,则对该目标匹配中的清洗规则进行解析,获得采样规则和各层级清洗子规则。其中,采样规则指示了所需进行采样的字段。这里所说的需要进行采样的字段是根据各层级清洗子规则中涉及到的历史数据中的字段进行设置的。

步骤204、根据采样规则对目标数据进行采样,获得历史数据。

根据解析所获得的采样规则对目标数据进行采样,将采样所获得的样本值持久化到数据库中作为历史数据,以便下一次进行数据清洗过程中使用。

由于有些脏数据是需要基于历史数据进行判别的,例如:当基于数据的波动性进行判别是,需要将数据与历史数据的平均值进行比较,从而确定两者之差是否高于阈值。因此,需要维护一个用于记录历史数据的数据库,便于采用涉及历史数据的清洗规则进行数据清洗。

步骤205、按照各层级清洗子规则之间的层级顺序,依次采用各层级清洗子规则对目标数据进行清洗。

目标数据先经过本层级清洗子规则进行清洗,由下一层级清洗子规则对本层级清洗所获得的干净数据进行清洗,也就是说,各级清洗是串行执行的,上一层级的清洗结果作为下一层级的输入,经过最后一层级清洗获得干净数据,将各层级清洗所识别出的数据进行汇总获得脏数据。

对干净数据正常存储,例如存储于表a,不符合清洗规则的脏数据分离存储,例如存储于表a_dirty,从而方便后期针对脏数据进行分析。

步骤206、若不存在,则结束流程。

实施例三

图3为本发明实施例三提供的一种数据清洗装置的结构示意图,如图3所示,包括:匹配模块31和清洗模块32。

匹配模块31,用于根据目标数据的数据特征匹配清洗规则。

清洗模块32,用于利用匹配中的清洗规则对所述目标数据进行清洗。

本实施例中,通过根据目标数据的数据特征匹配清洗规则之后,利用匹配中的清洗规则对该目标数据进行清洗,从而保证了清洗规则与数 据特征相匹配,能够更加有针对性的对目标数据进行清洗,有效清洗出更多的脏数据,改善了清洗的效果。

实施例四

图4为本发明实施例四提供的一种数据清洗装置的结构示意图,在图3所提供的数据清洗装置的基础上,本实施例中,清洗模块32进一步包括:历史数据单元321和数据清洗单元322。

历史数据单元321,用于获取所述匹配中的清洗规则所涉及的历史数据。

数据清洗单元322,用于依据所述历史数据,采用所匹配中的清洗规则对所述目标数据进行清洗。

进一步,数据清洗装置,还包括:提取模块33和历史数据生成模块34。

提取模块33,用于当确定存在匹配中的清洗规则时,根据所述匹配中的清洗规则所涉及的字段,从所述目标数据中提取所述字段的取值。

历史数据生成模块34,用于将所提取到的字段的取值,作为下一次清洗所需的历史数据。

由于有些脏数据是需要基于历史数据进行判别的,例如:当基于数据的波动性进行判别是,需要将数据与历史数据的平均值进行比较,从而确定两者之差是否高于阈值。因此,需要维护一个用于记录历史数据的数据库,便于采用涉及历史数据的清洗规则进行数据清洗。

实施例五

图5为本发明实施例五提供的一种数据清洗装置的结构示意图,在图3所提供的数据清洗装置的基础上,本实施例中,匹配模块31进一步包括:获取单元311和匹配单元312。

获取单元311,用于将产生所述目标数据的原业务、所述目标数据所需用于的目标业务、所述原业务中产生所述目标数据的原计算任务和/或所述目标业务中所述目标数据所需用于的目标计算任务作为所述数据特 征。

匹配单元312,用于采用所述数据特征匹配预设的清洗规则。

进一步,清洗规则包括至少两个清洗子规则,则清洗模块32,包括:输入单元323和清洗单元324。

输入单元323,用于按照所述匹配中的清洗子规则之间的层级顺序,获取上一层级清洗子规则清洗获得的干净数据。

清洗单元324,用于采用本层级清洗子规则对所述干净数据进行清洗。

逐层清洗的方式仅对上一层获得的干净数据进行清洗,因而相较于第二种实现形式能够节省执行时间,同时减少了运算量,节省了运行资源。

进一步,数据清洗装置还包括:生成模块35。

生成模块35,用于针对各业务和/或计算任务生成所述清洗规则。

若清洗规则包括三个清洗子规则,则生成模块35,包括:第一生成单元351、第二生成单元352和第三生成单元353。

第一生成单元351,用于将各业务通用的规则作为第一层级清洗子规则。

第二生成单元352,用于将针对业务和/或计算任务设置的规则作为第二层级清洗子规则。

第三生成单元353,用于将用户自定义规则作为第三层级清洗子规则。

本实施例中,通过预先根据不同的数据特征,设置多种清洗规则,当需要对目标数据进行清洗时,根据目标数据的数据特征匹配清洗规则,继而利用匹配中的清洗规则对该目标数据进行清洗,从而保证了清洗规则与数据特征相适应,能够更加有针对性的对目标数据进行清洗,有效清洗出更多的脏数据,同时也减少了将干净数据误识别为脏数据的概率,改善了清洗的效果。另外,逐层清洗的方式仅对上一层获得的干净数据进行清洗,因而能够减少运算量,同时节省执行时间和运行资源。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上 述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

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

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