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

数据表处理方法、装置及设备

文献发布时间:2023-06-19 09:29:07


数据表处理方法、装置及设备

技术领域

本发明涉及数据处理技术领域,尤其涉及一种数据表处理方法、装置及设备。

背景技术

目前,大数据已经得到广泛的重视。通过对大数据的分析,可以获得很多有价值的信息。然而,受到数据记录和管理过程中的各种影响,大数据中的各种数据不可避免地存在各种质量问题,例如数据丢失、数据重复、数据不符合标准、数据不完整、数据过期等等。大数据的价值与数据质量之间呈现正相关的关系,因此,为了从大数据中挖掘出价值高的信息,需要对大数据进行必要的处理,以提高大数据的数据质量。

数据清洗是提高大数据的数据质量的方法之一。相关技术中,数据清洗的过程是:对于原始数据库中的每一张数据表,通过人工方式手动配置该数据表的清洗任务,将清洗任务通过结构化查询语言(Structured Query Language,SQL)语句写入原始数据表对应的人工编写的SQL脚本中,再针对每张表分别运行对应SQL脚本,以生成标准表并存储在原始数据库中。这种技术中,数据清洗过程需要人工手动配置每张数据表的清洗任务,耗时长,因此效率低。

发明内容

为克服相关技术中存在的问题,本发明提供了一种数据表处理方法、装置及设备。

根据本发明实施例的第一方面,提供一种数据表处理方法,所述方法包括:

将指定数据库中目标数据表的目标元数据信息发送给数据清洗设备,以便所述数据清洗设备根据所述目标元数据信息,将所述目标数据表的内容复制到数据仓库中的中间表;所述目标元数据信息包括表字段指定属性;

所述复制完成后,向所述数据清洗设备发送元数据修改指令,以便所述数据清洗设备根据所述元数据修改指令修改所述中间表的元数据信息中的表字段指定属性;

在修改完后,向所述数据清洗设备发送元数据确认指令,以便所述数据清洗设备根据所述元数据确认指令确认所述中间表的元数据信息。

根据本发明实施例的第二方面,提供一种数据表处理装置,所述装置包括:

元数据信息发送模块,用于将指定数据库中目标数据表的目标元数据信息发送给数据清洗设备,以便所述数据清洗设备根据所述目标元数据信息,将所述目标数据表的内容复制到数据仓库中的中间表;所述目标元数据信息包括表字段指定属性;

元数据修改模块,用于所述复制完成后,向所述数据清洗设备发送元数据修改指令,以便所述数据清洗设备根据所述元数据修改指令修改所述中间表的元数据信息中的表字段指定属性;

元数据确认模块,用于在修改完后,向所述数据清洗设备发送元数据确认指令,以便所述数据清洗设备根据所述元数据确认指令确认所述中间表的元数据信息。

根据本发明实施例的第三方面,提供一种数据表处理设备,包括处理器以及用于存储所述处理器的可执行指令的存储器;

所述处理器被配置为:

将指定数据库中目标数据表的目标元数据信息发送给数据清洗设备,以便所述数据清洗设备根据所述目标元数据信息,将所述目标数据表的内容复制到数据仓库中的中间表;所述目标元数据信息包括表字段指定属性;

所述复制完成后,向所述数据清洗设备发送元数据修改指令,以便所述数据清洗设备根据所述元数据修改指令修改所述中间表的元数据信息中的表字段指定属性;

在修改完后,向所述数据清洗设备发送元数据确认指令,以便所述数据清洗设备根据所述元数据确认指令确认所述中间表的元数据信息。

本发明实施例提供的技术方案可以包括以下有益效果:

本发明实施例提供的数据表处理方法,通过将指定数据库中目标数据表的目标元数据信息发送给数据清洗设备,以便所述数据清洗设备根据所述目标元数据信息,将所述目标数据表的内容复制到数据仓库中的中间表,所述复制完成后,向所述数据清洗设备发送元数据修改指令,以便所述数据清洗设备根据所述元数据修改指令修改所述中间表的元数据信息中的表字段指定属性在修改完后,向所述数据清洗设备发送元数据确认指令,以便所述数据清洗设备根据所述元数据确认指令确认所述中间表的元数据信息,能够在数据仓库中修改中间表的主键列,以满足同一数据表在不同业务场景中的需求。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本说明书的实施例,并与说明书一起用于解释本说明书的原理。

图1是本发明实施例提供的数据清洗方法的一个应用场景示例图。

图2是本发明实施例提供的数据清洗方法的一个流程示例图。

图3是本发明实施例提供的数据清洗装置的功能方块图。

图4是本发明实施例提供的数据清洗设备的一个硬件结构图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明实施例的一些方面相一致的装置和方法的例子。

在本发明实施例使用的术语是仅仅出于描述特定本发明实施例的目的,而非旨在限制本发明实施例。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本发明实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

大数据在各个方面都具有重要的应用价值。企业客户会利用大数据的分析结果来做决策,这些决策可以辅助企业调整营销策略;普通的消费者对大数据的需求主要体现在信息能按需搜索,并能提供友好、可信的信息推荐,其次是提供高阶服务;针对和谐社会,大数据能够带来全新的生活方式—智慧城市,智慧城市建设是一项复杂的系统工程,而大数据将为其提供数据支持。

为了从大数据中获得价值高的信息,需要对大数据进行治理,提高大数据的数据质量。数据清洗即为大数据进行治理的方式之一。

数据清洗指发现并纠正数据表中可识别的数据错误。数据清洗可以包括检查数据一致性,处理无效值和缺失值等。数据仓库中的数据是面向某一主题的数据的集合,这些数据从多个业务系统中抽取而来而且包含历史数据,这样就避免不了有的数据是错误数据、有的数据相互之间有冲突,这些错误的或有冲突的数据是不符合要求的数据,称为“脏数据”。数据清洗的任务是过滤不符合要求的数据,将符合要求的数据放在标准表中返回到原数据库中进行保存。不符合要求的数据主要有不完整的数据、错误的数据、重复的数据三大类。

目前很多政府、机构、企业的数据仍然保存在传统事务型数据库中,例如Mysql数据库、Oracle数据库、Pgsql数据库等等。相关技术中,在执行数据清洗时,以SQL脚本方式直接在原始数据库上建设数据仓库。这一方面会降低原始数据库的性能,另一方面也不便于对数据进行系统化的维护和跟踪。并且,由于需要开发人员为每一张数据表人工手动配置清洗任务,而且多数情况下开发人员必须不断的尝试才能明确的知道这张数据表需要做哪些清洗操作,因此处理效率十分低下。此外,由于数据表不同,对应的清洗任务也不同,所以只能是对每张表单独配置清洗任务,无法同时为多张数据表批量配置清洗任务,这进一步降低了处理效率。

在实际应用中,需要处理的数据量是非常巨大的,清洗的对象往往是数万张表、数十万分区、几百TB的数据,这么多的数据如果按照相关技术的方式处理,需要相当多的开发人员,人力成本很高。

本发明实施例提供了一种能够根据数据表的元数据信息自动生成清洗任务的数据清洗方法,不需要人工手动配置清洗任务,整个清洗过程自动化进行,大大缩短了清洗过程所需的时间,提高了处理效率。并且由于清洗过程不需要人工参与,因此可以减少对开发人员的需求,从而节约人力成本。

图1是本发明实施例提供的数据清洗方法的一个应用场景示例图。请参见图1,服务器A中设置有原始数据库1,服务器B用于创建数据仓库,例如使用Hive(基于Hadoop的一个数据仓库工具)创建数据仓库,将原始数据库1中的数据表复制到数据仓库中,在数据仓库中对表数据进行清洗操作,生成标准表和/或问题表。其中,标准表用于存储符合要求的数据和/或不符合要求的数据(本文中也称为问题数据),问题表用于存储问题数据。

服务器B可以采用本发明实施例提供的数据清洗方法流程进行数据清洗。在进行清洗之前,服务器B中预先配置有如下内容:

1、数据源连接信息(数据源所在设备的地址、用户名、密码等,例如图1中数据源为原始数据库1,则数据源连接信息为服务器A的地址、访问原始数据库1的用户名和密码)。

2、表字段与标准数据元的对应关系;标准数据元与清洗规则的对应关系;表字段与指定属性的对应关系;属性与清洗规则的对应关系。

根据上述的第一项配置内容,服务器B可以访问原始数据库1,以便从原始数据库1中抽取数据表的元数据信息以及复制数据表的内容到服务器B本地的数据仓库中。

根据上述的第二项配置内容,服务器B可以根据抽取的元数据信息自动生成数据表对应的清洗任务,以便服务器B根据生成的清洗任务自动对本地数据仓库中的数据表执行清洗操作。

下面通过实施例对本发明提供的数据清洗方法进行详细说明。

图2是本发明实施例提供的数据清洗方法的一个流程示例图。如图2所示,数据清洗方法可以包括:

S201,从指定数据库中抽取目标数据表的目标元数据信息,并将目标数据表的内容复制到数据仓库中的中间表。

S202,根据目标元数据信息,确定目标数据表的目标清洗任务,目标清洗任务包括至少一个清洗规则。

S203,按照目标清洗任务中的各清洗规则对中间表执行清洗操作,得到目标标准表,目标标准表中至少包括目标数据表中符合要求的数据。

S204,将目标标准表发送给指定数据库所在的设备,以由改设备将目标标准表存储至指定数据库。

本发明实施例的数据清洗方法可以应用于前述的服务器B中。

在步骤S201中,元数据信息可以包括一般元数据信息,例如数据表的表名、字段名、字段描述等,也可以包括表字段指定属性,例如字段是否为主键、字段可否为空等。

每个数据表的元数据信息都包括一般元数据信息,但不一定包括表字段指定属性。有的数据表中有一个或多个字段具有指定属性,则该数据表的元数据信息中包括表字段指定属性;有的数据表中所有字段都不具有指定属性,则该数据表的元数据信息中不包括表字段指定属性。

这里对元数据信息进行举例说明。表1为用户表,表1的内容如下:

表1用户表

则表1的元数据信息如下:

表名:用户表;

字段名:用户身份证号;类型:字符串String;长度:0-18;

字段名:用户名称;类型:字符串String;长度:0-20;

字段名:用户年龄;类型:字符串String;长度:0-20。

在一个示例性的实现过程中,步骤S201中,从指定数据库中抽取目标数据表的目标元数据信息,可以包括:根据用户配置的指定数据库的连接信息,调用java数据库连接(Java DataBase Connectivity,JDBC)接口,与指定数据库建立连接;调用JDBC驱动包提供的DatabaseMetaData接口,查询目标数据表的列,获取目标数据表的表名、字段名、字段描述、字段指定属性。

例如,字段指定属性可以是:是否为主键、字段可否为空等。

在一个示例性的实现过程中,步骤S201中,将目标数据表的内容复制到数据仓库中的中间表,可以包括:

按照目标元数据信息,使用数据仓库工具在本地创建与目标数据表所在的指定数据库同名的中间数据库、在中间数据库中创建与目标数据表具有相同表名和相同表结构的中间表;

读取目标数据表存储的内容数据,将读取的内容数据写入中间表。

其中,数据仓库工具可以为Hive。

需要说明的是,对于一个原始数据库中的所有数据表,只需创建一个中间数据库。

在将目标数据表的内容全部复制到中间表后,还要在本地(例如前述的服务器B中)存储中间表的元数据信息。当元数据信息中不包括表字段指定属性时,中间表的元数据信息与目标数据表的元数据信息是完全相同的。当元数据信息中包括表字段指定属性时,如果用户没有对中间表的表字段指定属性进行修改,则中间表的元数据信息与目标数据表的元数据信息仍然是完全相同的;如果用户没对中间表的表字段指定属性进行了修改,则中间表的元数据信息中的一般元数据信息与目标数据表的元数据信息中的一般元数据信息相同,中间表的元数据信息中的表字段指定属性与目标数据表的元数据信息中的表字段指定属性不同。

在数据清洗设备(例如前述的服务器B)中,可以将表的一般元数据信息与表字段指定属性分别存储。数据清洗设备中保存有目标数据表的一般元数据信息、中间表的一般元数据信息、目标数据表的表字段指定属性、中间表的表字段指定属性。其中,表字段指定属性保存在表字段与指定属性的对应关系中。

在一个示例性的实现过程中,将目标数据表的内容复制到数据仓库中的中间表之后,还可以根据用户的元数据确认指令确认元数据信息。此时,用户没有修改表的表字段指定属性。

在一个示例性的实现过程中,将目标数据表的内容复制到数据仓库中的中间表之后,还可以根据用户的元数据修改指令修改中间表的元数据信息中的表字段指定属性;并在修改完后,根据用户的元数据确认指令确认元数据。

在很多传统事务型数据库中,很多数据表都是以自增列为主键的,这些主键本身没有业务意义和价值,而数据表中的非主键字段,例如证件号、纳税人编号、发票编号等,才是行业中的主数据。此时,用户可以根据本示例在数据仓库中修改中间表的主键列。特殊情况下,某张原始数据表在不同的建模操作中被引用时,被作为主键的字段是不同的,因此可以在主键的配置中新增一个场景标识位,场景标识位用于区别不同应用场景(GroupId)。

此外,除了主键,用户还可以通过元数据修改指令增加设置中间表的指定列为非空。

在一个示例性的实现过程中,读取目标数据表存储的内容数据,将读取的内容数据写入中间表,可以包括:通过java命名接口(JDBC Data Source)抽取目标数据表中的数据,通过Hive文本插入(HiveContext Insert Into)SQL语句将抽取的数据导入到中间表中。该复制数据的功能可以用一个Spark应用程序(App)实现。

在步骤S202中,每个数据表对应一个清洗任务,不同数据表对应不同的清洗任务。

清洗任务中包括了至少一个清洗规则。清洗规则用于指示对数据表进行清洗的操作方式。

例如,清洗规则可以是非数值取值过滤规则、日期标准化规则、值域过滤规则等等。

在一个示例性的实现过程中,步骤S202可以包括:

从已建立的表字段与标准数据元的对应关系中,查找出与目标元数据信息中的各字段匹配的目标数据元;

从已建立的标准数据元与清洗规则的对应关系中,查找出与目标数据元匹配的第一清洗规则;

根据第一清洗规则,生成清洗任务。

数据元可以是国家规定的行业标准数据元,也可以是企业或政府机关单位按照历史数据和业务场景定义的自身专有的数据元。数据元中定义了字段应该满足的如下要求:数据类型、数据格式、取值范围等,这些要求最终通过标准数据元与清洗规则的对应关系被解析为各种标准化的清洗规则。

举例说明。上述的表1的元数据信息包括3个字段:用户身份证号、用户名称、用户年龄。假设表字段与标准数据元的对应关系如表2所示:

表2表字段与标准数据元的对应关系

则从表2可以查找出,字段“用户身份证号”对应的标准数据元为“身份证号”,字段“用户名称”对应的标准数据元为“字符串长度”,字段“用户年龄”对应的标准数据元为“数值最大最小”。

假设标准数据元与清洗规则的对应关系如表3所示。

表3标准数据元与清洗规则的对应关系

从表3中可以查找出,标准数据元“身份证号”对应的清洗规则是“身份证15位转18位规则”和“身份证合法性过滤规则”,标准数据元“字符串长度”对应的清洗规则是“字符串长度过滤”,标准数据元“数值最大最小”对应的清洗规则是“值域过滤规则”。

则表1对应的清洗任务包括4个第一清洗规则:身份证15位转18位规则、身份证合法性过滤规则、字符串长度过滤和值域过滤规则。

清洗规则可以包括两种类型:过滤规则和标准化规则。例如,标准化规则有日期标准化规则、同义词标准化规则、身份证标准化规则等。

在一个示例性的实现过程中,目标元数据信息中包括表字段指定属性,则步骤S202还可以包括:

从已建立的表字段与指定属性的对应关系中,查找出与目标元数据信息中的各字段匹配的目标属性;

从已建立的属性与清洗规则的对应关系中,查找出与目标属性匹配的第二清洗规则;

根据第一清洗规则,生成目标数据表的目标清洗任务,包括:根据第一清洗规则和第二清洗规则,生成目标数据表的目标清洗任务。

例如,假设表字段与指定属性的对应关系如表4所示。

表4表字段与指定属性的对应关系

则从表4中可以查找出,表1的字段“用户身份证号”对应的指定属性为“主键字段”,表1的字段“用户名称”对应的指定属性为“取值可否为空”。即表1的目标属性有2个:主键字段和取值可否为空。

假设属性与清洗规则的对应关系如表5所示。

表5属性与清洗规则的对应关系

从表5中可以查找出,属性“主键字段”对应的清洗规则为“去重规则”,属性“取值可否为空”对应的清洗规则为“空值过滤规则”。

则表1对应的清洗任务还包括2个第二清洗规则:去重规则和空值过滤规则。

这样,最终表1对应的清洗任务共包括6个清洗规则:身份证15位转18位规则、身份证合法性过滤规则、字符串长度过滤、值域过滤规则、去重规则和空值过滤规则。

可见,在步骤S202中,清洗任务中的清洗规则是根据抽取到的元数据信息自动得到的,无需用户在人机交互界面拖动不同清洗规则或通过SQL命令进行清洗任务的配置,从而使得整个清洗过程能够自动化进行,并可以多个数据表批量清洗,非常灵活。

需要说明的是,上述已建立的表字段与指定属性的对应关系是指中间表的表字段与指定属性的对应关系。在用户修改中间表的表字段指定属性的情况下,上述已建立的表字段与指定属性的对应关系是指修改后的表字段与指定属性的对应关系。

因此,在一个示例性的实现过程中,在从已建立的表字段与指定属性的对应关系中,查找出与目标元数据信息中的各字段匹配的目标属性之前,所述方法还包括:

接收对所述目标元数据信息中指定字段的属性修改信息,所述属性修改信息用于指示将所述指定字段的指定属性修改为指定属性;

根据所述属性修改信息修改中间表中所述指定字段的指定属性;

根据对所述指定字段的指定属性的修改,更新所述中间表对应的表字段与指定属性的对应关系;

所述从已建立的表字段与指定属性的对应关系中,查找出与目标元数据信息中的各字段匹配的目标属性,包括:从更新后的表字段与指定属性的对应关系中,查找出与目标元数据信息中的各字段匹配的目标属性。

在步骤S203中,清洗是对数据仓库中的中间表进行的,中间表的内容与目标数据表相同,因此对中间表执行清洗操作就相当于对目标数据表进行清洗操作,对中间表所得的清洗结果即为目标数据表的清洗结果。

按照清洗任务中的各清洗规则对中间表执行清洗操作,指对于中间表中的每一行数据,分别用清洗任务中的各清洗规则进行清洗,如果根据任一清洗规则判断为脏数据,将该行数据写入问题表中,或者携带问题标识字段写入标准表中;如果根据所有清洗规则判断不为脏数据,将该行数据写入标准表中。

在一个示例中,对目标数据表对应的中间表的目标行的清洗过程可以是:

针对目标清洗任务中的每一清洗规则,从中间表的目标行读取与该清洗规则对应的字段的数据;

若该清洗规则为过滤规则,根据该清洗规则确定读取的数据是否合法;若该清洗规则为标准化规则,根据该清洗规则确定读取的数据是否需要标准化;

若目标清洗任务中的所有过滤规则均确定数据合法,且目标行的数据经目标清洗任务中的所有标准化规则进行了标准化或者确定为不需要标准化,则确定目标行的数据不为脏数据,将目标行的数据写入标准表中;

若目标清洗任务中的任一过滤规则确定数据不合法,则确定目标行的数据为脏数据,将目标行的数据写入问题表中,或者将目标行的数据携带问题标识字段写入问题表中。

例如,上述表1对应的清洗任务包括6个清洗规则。以上述表1第一行数据和身份证合法性过滤规则、身份证15位转18位规则为例说明清洗过程:

读取表1第一行用户身份证号字段的数据“xxxxxxxxxxxxxxxxx1”,根据身份证合法性过滤规则判断“xxxxxxxxxxxxxxxxx1”是否合法,如果合法执行下一步操作,如果不合法则将表1的第一行数据全部写入问题表中,结束对第一行的数据清洗过程;

读取表1第一行用户身份证号字段的数据“xxxxxxxxxxxxxxxxx1”,根据身份证15位转18位规则判断“xxxxxxxxxxxxxxxxx1”是否需要转换,如果需要,则将“xxxxxxxxxxxxxxxxx1”转换为18位身份证号,转换后执行下一步操作;如果不需要转换,直接执行下一步操作;

……

在步骤S204中,可以通过另一个Spark App将目标标准表发送给指定数据库所在的设备。例如,在一个示例中,步骤S204可以包括:

通过Hive文本选择(HiveContext Select)SQL语句抽取数据仓库的标准表中的数据,通过java命名接口(JDBC Data Source)的插入(Insert into)SQL语句将抽取的数据写入指定数据库。

经过步骤S204后,指定数据库中至少新增一个表:目标标准表。在将问题数据写入问题表的情况下,将问题表也发送给指定数据库,此时指定数据库中新增两个表:目标标准表和问题表。

在一个示例性的实现过程中,目标数据表的数量为至少一个。

本示例允许对多个数据表批量进行清洗,有效缩短了对整个清洗目标数据的总体清洗时间,进一步提高了清洗过程的处理效率。

在一个示例性的实现过程中,数据清洗方法还可以包括:

在对中间表执行清洗操作的过程中,将中间表中的问题数据和问题数据对应的问题标识字段写入标准表中;或者,

在对中间表执行清洗操作的过程中,将中间表中的问题数据写入问题表中。

本示例中,针对问题数据提供了两种处理方式:一是,将问题数据丢弃到问题表中;二是,将问题数据携带问题标识字段写入标准表。

在一个示例中,问题标识字段可以有两个:脏标识(dirty_flag)、脏类型(dirty_type)。

dirty_flag的取值范围为0和1,通过过滤规则被判断为问题数据的数据以及通过标准化规则转换失败的数据,dirty_flag都会置为1。

dirty_type的取值为128位二进制字符串,默认为全0,每一位字符的取值为0和1,下标从左到右为0-127位。dirty_type的每一位字符都具有对应的规则,例如某一位字符被置为1表明某个特定的规则判定此值非法,被置为0表明某个特定的规则判定此值合法。

对于问题数据的处理不在数据仓库中进行。

当用户需要处理问题数据时,可以通过如下方式查询问题数据:

方式一,当问题数据存储在问题表中时,可以通过“Select*from问题

表”命令查询问题表中的数据;

方式二,当问题数据存储在标准表中时,可以通过“Select*from标准表wheredirty_flag=‘1’”命令查询标准表中的问题数据。

在一个示例性的实现过程中,数据清洗方法还可以包括:

在对中间表执行清洗操作的过程中,将中间表中的问题数据发送给问题数据回溯装置,以由问题数据回溯装置对问题数据进行修改,得到修正数据;

将修正数据写入目标标准表中。

本示例中,修正数据是对问题数据进行修改后得到的符合要求的数据。例如,某一条记录中的身份证号为15位,而符合要求的标准数据中身份证号应为18位,则对该记录的修改方式是:将身份证号修改为18位,得到修正数据。

本发明实施例提供的数据清洗方法,通过从指定数据库中抽取目标数据表的目标元数据信息,并将目标数据表的内容复制到数据仓库中的中间表,根据目标元数据信息,确定目标数据表的目标清洗任务,目标清洗任务包括至少一个清洗规则,在数据仓库中,按照目标清洗任务中的各清洗规则对中间表执行清洗操作,得到目标数据表对应的目标标准表,将目标标准表发送给指定数据库所在的设备,以由改设备将目标标准表存储至指定数据库,能够根据抽取的元数据信息自动化生成数据表的清洗任务,并按照清洗任务自动完成对数据表的清洗,整个清洗过程自动进行,无需人工干预,并可针对数据库或系统中的全部数据表批量进行清洗,有效缩短了清洗过程所需的时间,提高了数据清洗的处理效率。

基于上述的方法实施例,本发明实施例还提供了相应的装置、设备及存储介质实施例。关于本发明实施例的装置、设备及存储介质实施例的详细实现方式,请参见前述方法实施例部分的相应说明。

图3是本发明实施例提供的数据清洗装置的功能方块图。如图3所示,本实施例中,数据清洗装置可以包括:

抽取及复制模块310,用于从指定数据库中抽取目标数据表的目标元数据信息,并将所述目标数据表的内容复制到数据仓库中的中间表;

任务确定模块320,用于根据所述目标元数据信息,确定所述目标数据表的目标清洗任务,所述目标清洗任务包括至少一个清洗规则;

清洗模块330,用于按照所述目标清洗任务中的各清洗规则对所述中间表执行清洗操作,得到目标标准表;

发送模块340,用于将所述目标标准表发送给所述指定数据库所在的设备,以由所述设备将所述目标标准表存储至所述指定数据库。

在一个示例性的实现过程中,任务确定模块320具体用于:

从已建立的表字段与标准数据元的对应关系中,查找出与目标元数据信息中的各字段匹配的目标数据元;

从已建立的标准数据元与清洗规则的对应关系中,查找出与所述目标数据元匹配的第一清洗规则;

根据第一清洗规则和第二清洗规则,生成所述目标数据表的目标清洗任务。

在一个示例性的实现过程中,目标元数据信息中包括表字段指定属性,任务确定模块320还用于:

从已建立的表字段与指定属性的对应关系中,查找出与目标元数据信息中的各字段匹配的目标属性;

从已建立的属性与清洗规则的对应关系中,查找出与所述目标属性匹配的第二清洗规则;

任务确定模块320在用于根据第一清洗规则,生成所述目标数据表的目标清洗任务时,具体用于:根据第一清洗规则和第二清洗规则,生成所述目标数据表的目标清洗任务。

在一个示例性的实现过程中,所述装置还包括:

修改信息接收模块,用于接收对所述目标元数据信息中指定字段的属性修改信息,所述属性修改信息用于指示将所述指定字段的指定属性修改为指定属性;

属性修改模块,用于根据所述属性修改信息修改中间表中所述指定字段的指定属性;

关系更新模块,用于根据对所述指定字段的指定属性的修改,更新所述中间表对应的表字段与指定属性的对应关系;

任务确定模块320在用于从已建立的表字段与指定属性的对应关系中,查找出与目标元数据信息中的各字段匹配的目标属性时,具体用于:从更新后的表字段与指定属性的对应关系中,查找出与目标元数据信息中的各字段匹配的目标属性。

在一个示例性的实现过程中,目标数据表的数量为至少一个。

在一个示例性的实现过程中,所述装置还包括:

写数据模块,用于在对所述中间表执行清洗操作的过程中,将所述中间表中的问题数据和所述问题数据对应的问题标识字段写入所述标准表中;或者,用于在对所述中间表执行清洗操作的过程中,将所述中间表中的问题数据写入问题表中。

在一个示例性的实现过程中,所述装置还包括:

问题表发送模块,用于将所述问题表发送给所述指定数据库所在的设备,以由所述设备将所述问题表存储至所述指定数据库。

在一个示例性的实现过程中,所述装置还包括:

在对所述中间表执行清洗操作的过程中,将所述中间表中的问题数据发送给问题数据回溯装置,以由所述问题数据回溯装置对所述问题数据进行修改,得到修正数据;

将所述修正数据写入所述目标标准表中。

本发明实施例还提供了一种数据清洗设备。图4是本发明实施例提供的数据清洗设备的一个硬件结构图。如图4所示,数据清洗设备包括:内部总线401,以及通过内部总线连接的存储器402,处理器403和外部接口404。

所述处理器403,用于读取存储器402上的机器可读指令,并执行所述指令以实现如下操作:

从指定数据库中抽取目标数据表的目标元数据信息,并将所述目标数据表的内容复制到数据仓库中的中间表;

根据所述目标元数据信息,确定所述目标数据表的目标清洗任务,所述目标清洗任务包括至少一个清洗规则;

在所述数据仓库中,按照所述目标清洗任务中的各清洗规则对所述中间表执行清洗操作,得到目标标准表;

将所述目标标准表发送给所述指定数据库所在的设备,以由所述设备将所述目标标准表存储至所述指定数据库。

在一个示例性的实现过程中,处理器403还执行所述指令以实现如下操作:

从已建立的表字段与标准数据元的对应关系中,查找出与目标元数据信息中的各字段匹配的目标数据元;

从已建立的标准数据元与清洗规则的对应关系中,查找出与所述目标数据元匹配的第一清洗规则;

根据第一清洗规则,生成所述目标数据表的目标清洗任务。

在一个示例性的实现过程中,目标元数据信息中包括表字段指定属性,处理器403还执行所述指令以实现如下操作:

从已建立的表字段与指定属性的对应关系中,查找出与目标元数据信息中的各字段匹配的目标属性;

从已建立的属性与清洗规则的对应关系中,查找出与所述目标属性匹配的第二清洗规则;

根据第一清洗规则,生成所述目标数据表的目标清洗任务具体为:根据第一清洗规则和第二清洗规则,生成所述目标数据表的目标清洗任务。

在一个示例性的实现过程中,处理器403还执行所述指令以实现如下操作:

接收对所述目标元数据信息中指定字段的属性修改信息,所述属性修改信息用于指示将所述指定字段的指定属性修改为指定属性;

根据所述属性修改信息修改中间表中所述指定字段的指定属性;

根据对所述指定字段的指定属性的修改,更新所述中间表对应的表字段与指定属性的对应关系;

所述从已建立的表字段与指定属性的对应关系中,查找出与目标元数据信息中的各字段匹配的目标属性,具体为:从更新后的表字段与指定属性的对应关系中,查找出与目标元数据信息中的各字段匹配的目标属性。

在一个示例性的实现过程中,所述目标数据表的数量为至少一个。

在一个示例性的实现过程中,处理器403还执行所述指令以实现如下操作:

在对所述中间表执行清洗操作的过程中,将所述中间表中的问题数据和所述问题数据对应的问题标识字段写入所述标准表中;或者,

在对所述中间表执行清洗操作的过程中,将所述中间表中的问题数据写入问题表中。

在一个示例性的实现过程中,处理器403还执行所述指令以实现如下操作:

将所述问题表发送给所述指定数据库所在的设备,以由所述设备将所述问题表存储至所述指定数据库。

在一个示例性的实现过程中,处理器403还执行所述指令以实现如下操作:

在对所述中间表执行清洗操作的过程中,将所述中间表中的问题数据发送给问题数据回溯装置,以由所述问题数据回溯装置对所述问题数据进行修改,得到修正数据;

将所述修正数据写入所述目标标准表中。

本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有若干计算机指令,所述计算机指令被执行时进行如下处理:

从指定数据库中抽取目标数据表的目标元数据信息,并将所述目标数据表的内容复制到数据仓库中的中间表;

根据所述目标元数据信息,确定所述目标数据表的目标清洗任务,所述目标清洗任务包括至少一个清洗规则;

在所述数据仓库中,按照所述目标清洗任务中的各清洗规则对所述中间表执行清洗操作,得到目标标准表;

将所述目标标准表发送给所述指定数据库所在的设备,以由所述设备将所述目标标准表存储至所述指定数据库。

在一个示例性的实现过程中,所述计算机指令被执行时还进行如下处理:

从已建立的表字段与标准数据元的对应关系中,查找出与目标元数据信息中的各字段匹配的目标数据元;

从已建立的标准数据元与清洗规则的对应关系中,查找出与所述目标数据元匹配的第一清洗规则;

根据第一清洗规则,生成所述目标数据表的目标清洗任务。

在一个示例性的实现过程中,目标元数据信息中包括表字段指定属性,所述计算机指令被执行时还进行如下处理:

从已建立的表字段与指定属性的对应关系中,查找出与目标元数据信息中的各字段匹配的目标属性;

从已建立的属性与清洗规则的对应关系中,查找出与所述目标属性匹配的第二清洗规则;

根据第一清洗规则,生成所述目标数据表的目标清洗任务具体为:根据第一清洗规则和第二清洗规则,生成所述目标数据表的目标清洗任务。

在一个示例性的实现过程中,所述计算机指令被执行时还进行如下处理:

接收对所述目标元数据信息中指定字段的属性修改信息,所述属性修改信息用于指示将所述指定字段的指定属性修改为指定属性;

根据所述属性修改信息修改中间表中所述指定字段的指定属性;

根据对所述指定字段的指定属性的修改,更新所述中间表对应的表字段与指定属性的对应关系;

所述从已建立的表字段与指定属性的对应关系中,查找出与目标元数据信息中的各字段匹配的目标属性,具体为:从更新后的表字段与指定属性的对应关系中,查找出与目标元数据信息中的各字段匹配的目标属性。

在一个示例性的实现过程中,所述目标数据表的数量为至少一个。

在一个示例性的实现过程中,所述计算机指令被执行时还进行如下处理:

在对所述中间表执行清洗操作的过程中,将所述中间表中的问题数据和所述问题数据对应的问题标识字段写入所述标准表中;或者,

在对所述中间表执行清洗操作的过程中,将所述中间表中的问题数据写入问题表中。

在一个示例性的实现过程中,所述计算机指令被执行时还进行如下处理:

将所述问题表发送给所述指定数据库所在的设备,以由所述设备将所述问题表存储至所述指定数据库。

在一个示例性的实现过程中,所述计算机指令被执行时还进行如下处理:

在对所述中间表执行清洗操作的过程中,将所述中间表中的问题数据发送给问题数据回溯装置,以由所述问题数据回溯装置对所述问题数据进行修改,得到修正数据;

将所述修正数据写入所述目标标准表中。

对于装置和设备实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

本领域技术人员在考虑说明书及实践这里申请的发明后,将容易想到本说明书的其它实施方案。本说明书旨在涵盖本说明书的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本说明书的一般性原理并包括本说明书未申请的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本说明书的真正范围和精神由下面的权利要求指出。

应当理解的是,本说明书并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本说明书的范围仅由所附的权利要求来限制。

以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。

相关技术
  • 基于数据表的信息处理方法、装置及电子设备
  • 数据表的处理方法、装置、存储介质和设备
技术分类

06120112180956