一种数据清理的方法及系统的制作方法

文档序号:6636952阅读:236来源:国知局
一种数据清理的方法及系统的制作方法
【专利摘要】本发明公开了一种数据清理的方法及系统,该方法包括:导出待校验的目标数据文件;加载所述目标数据文件对应的描述文件;利用所述描述文件对所述目标数据文件进行校验;从而能够准确、高效的完成数据清理工作。
【专利说明】一种数据清理的方法及系统

【技术领域】
[0001]本发明涉及电子信息【技术领域】,特别是涉及一种数据清理的方法及系统。

【背景技术】
[0002]随着电子化办公的普及,各行各业的办公系统也越来越多,以及随着各行各业的业务扩展,相对应的所需要的各种系统的功能越来越多以及各系统之间的相互联系也越来越紧密;这样就会出现新的系统取代老的系统或者和一部分取代同时又和另一部分系统共存,多个旧系统的存量数据必须要移植到新的系统中,又由于新系统数据来源多样、种类众多、数量庞大、信息繁多、地域广、参与人员众多、参与人员技术水平参差不齐,为使数据清理工作准确高效完成,就需要有一个数据清理系统。
[0003]目前是通过在线的方式导入数据表,但是这样做存在一定缺点,比如效率低,需要大量的数据库访问操作,耗费资源,时效性差,不能满足源文件数据的复杂关系校验;或者通过2x061 公式或者78八(7181131 08810 ^01-VI81181 8381。的一种宏语言),这样也存在缺点,例如公式编写量大,易出错,可复用性差,普通人员不方便使用,效率低且需要版权许可。
[0004]因此,如何能高效、准确的进行数据清理,是本领域技术人员需要解决的技术问题。


【发明内容】

[0005]本发明的目的是提供一种数据清理的方法,该方法能够高效、准确的进行数据清理;本发明的另一目的是提供一种数据清理的系统。
[0006]为解决上述技术问题,本发明提供如下技术方案:
[0007]一种数据清理的方法,该方法包括:
[0008]导出待校验的目标数据文件;
[0009]加载所述目标数据文件对应的描述文件;
[0010]利用所述描述文件对所述目标数据文件进行校验。
[0011]其中,所述目标数据文件还包括:经过离线数据清理的数据文件作为目标数据文件,其中离线数据清理的方法包括:
[0012]导出基础数据文件;
[0013]加载所述基础数据文件对应的描述文件,并利用所述基础数据文件对应的描述文件进行校验;
[0014]当校验通过时,导出待校验的数据文件;
[0015]加载所述数据文件对应的描述文件;
[0016]利用所述数据文件对应的描述文件对所述数据文件进行校验,校验通过的所述数据文件作为目标数据文件。。
[0017]其中,利用描述文件对目标数据文件或数据文件进行校验的方法包括:
[0018]校验待校验的目标数据文件或数据文件的标题行各列的名称,并确定起始行;
[0019]校验所述待校验的目标数据文件或数据文件的单元格的基本数据类型;
[0020]根据填充规则对所述待校验的目标数据文件或数据文件的填充类型进行校验;
[0021]根据数据规则对所述待校验的目标数据文件或数据文件的数据进行校验。
[0022]其中,所述校验待校验的目标数据文件或数据文件的标题行各列名称,并确定起始行包括:
[0023]读取所述待校验的目标数据文件或数据文件对应的描述文件;
[0024]获取所述描述文件中表单定义的行数;
[0025]依次获取所述待校验的目标数据文件或数据文件的一行,并将获取的该行与描述文件中列定义的描述文字分别进行比较;
[0026]当比较后每列描述文字都相同时,则该列为标题行,且所述标题行的下一行为起始行。
[0027]其中,所述根据填充规则对所述待校验的目标数据文件或数据文件的填充类型进行校验包括:
[0028]初始化缓存,确定起始行,并实例化所述待校验的目标数据文件或数据文件的规则类对象;
[0029]从起始行开始,依次获取所述待校验的目标数据文件或数据文件的一行;
[0030]逐列扫描所述描述文件中对应列定义的填充规则;
[0031]当所述描述文件中存在用户定义的填充规则,则获取所述填充规则实例对象;
[0032]当所述填充规则实例对象通过校验,则进行下一行检验。
[0033]其中,所述逐列扫描描述文件中对应列定义的填充规则包括:
[0034]当所述对应列定义的填充规则为主键或者联合主键时,判断扫描到的所述列中的字段是否存在缓存中,当存在时,报错;
[0035]当不存在时,则将该字段加入缓存中。
[0036]其中,所述根据数据规则对所述待校验的目标数据文件或数据文件的数据进行校验在离线数据清理中包括:
[0037]当所述待校验的数据文件的数据为数据字典型字段,则在建立校验时,创建逆向枚举缓存。
[0038]其中,数据清理的方法还包括校验错误反馈,其中校验错误反馈包括错误记录和反馈结果,
[0039]其中,所述错误记录包括:
[0040]创建错误记录对象;
[0041]设置所述错误记录对象的行号属性;
[0042]设置所述错误记录对象的当前校验失败的错误属性;
[0043]插入错误记录对象队列;
[0044]所述反馈结果包括:
[0045]获取数据文件对应的描述文件;
[0046]当成功获取错误记录对象队列头节点时,根据所述描述文件的描述,将错误记录对象写入结果文件;
[0047]当失败成功获取错误记录对象队列头节点时,将结果文件反馈给用户。
[0048]其中,离线数据清理的方法还包括校验错误反馈,其中校验错误反馈包括错误记录和反馈结果,
[0049]其中,所述错误记录包括:
[0050]创建错误记录对象;
[0051]设置所述错误记录对象的行号属性;
[0052]设置所述错误记录对象的当前校验失败的错误属性;
[0053]插入错误记录对象队列;
[0054]所述反馈结果包括:
[0055]当成功获取错误记录对象队列头节点时,将错误记录对象写入结果表格中;
[0056]当失败成功获取错误记录对象队列头节点时,将结果表格反馈给用户。
[0057]本发明实施例还提供一种数据清理的系统,该系统包括:
[0058]导出模块,加载模块,校验模块,其中,
[0059]导出模块,用于导出待校验的目标数据文件;
[0060]加载模块,用于加载所述目标数据文件对应的描述文件;
[0061]校验模块,用于利用所述描述文件对所述目标数据文件进行校验。
[0062]基于上述技术方案,本发明实施例所提供的数据清理的方法及系统,导出待校验的目标数据文件;加载所述目标数据文件对应的描述文件;利用所述描述文件对所述目标数据文件进行校验;从而能够准确、高效的完成数据清理工作,为新系统的使用争取了时间,也降低了劳动的复杂性,具有重要的现实意义。

【专利附图】

【附图说明】
[0063]为了更清楚的说明本发明实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0064]图1为本发明实施例提供的数据清理方法的流程图;
[0065]图2为本发明实施例提供的数据清理方法中离线数据清理的方法的流程图;
[0066]图3为本发明实施例提供的数据清理方法中描述文件对目标数据文件或数据文件进行校验的方法流程图;
[0067]图4为本发明实施例提供的数据清理方法中校验目标数据文件或数据文件的标题行各列名称,确定起始行的方法流程图;
[0068]图5为本发明实施例提供的数据清理方法中根据填充规则对所述待校验的目标数据文件或数据文件的填充类型进行校验的流程图;
[0069]图6为本发明实施例提供的数据清理方法中错误记录的流程图;
[0070]图7为本发明实施例提供的数据清理方法中反馈结果的流程图;
[0071]图8为本发明实施例提供的数据清理方法中离线数据清理中错误记录的流程图;
[0072]图9为本发明实施例提供的数据清理方法中离线数据清理中反馈结果的流程图;
[0073]图10为本发明实施例提供的数据清理的系统的结构框图;
[0074]图11为本发明实施例提供的另一数据清理的系统的结构框图;
[0075]图12为本发明实施例提供的校验错误反馈模块的结构框图。

【具体实施方式】
[0076]本发明的核心是提供一种数据清理的方法,该方法能够准确、高效的完成数据清理工作;本发明的另一目的是提供一种数据清理的系统。
[0077]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0078]数据清理是将已有系统数据按照新系统要求进行规范化的过程;其中要包括数据校验,其中,数据校验是检查数据清理后的结果是否满足新系统规范化要求。
[0079]请参考图1,图1为本发明实施例提供的数据清理方法的流程图;,该方法可以包括,其中此处的数据清理方法可以是在线数据清理:
[0080]步骤8100、导出待校验的目标数据文件;
[0081]这里的目标数据文件可以是将原始数据文档,经过加工(盘点、数据清理、人工梳理)形成数据清理文档包括经过离线数据清理的数据文件;也可以是没有经过处理的原始数据文档;但是大多数的情况下这里的目标数据文件是经过经过离线数据清理的数据文件来作为目标数据清理文件,此时目标数据文件中的数据已经规范化,目标数据文件的质量大大提高,只是这些校验还是有局部性质的,因此还需要进行在线数据清理,例如:当数据量巨大,受主机系统资源的限制,无法对所有数据进行缓存;或者受数据权限等因素的限制,不能获取部分数据;或者某些早些时候所使用的数据已经过时;因此进行在线校验是对最终移植入系统前的一个必要环节。
[0082]这里将需要进行校验的目标数据文件进行导出加载,其中,目标数据文件和其他数据文件一般是2X061文件的格式存在。
[0083]步骤8110、加载所述目标数据文件对应的描述文件;
[0084]每个待校验目标数据文件都对应一个解释其内容的描述文件即文件,在这里通过文件来描述数据清理时相应的2X061文件,文件中定义了与其对应的2x061文件中每行表示的业务对象的信息,以及对应的数据清理规则文件示例如下:
[0085]? ? XIII1 ^61*51011 = ^1.=? ?
[0086]
[0087]〈1(1〉以丽^〈八心一工作簿标识
[0088]〈II應6?以丽應6?—工作簿名称
[0089]〈4一8(31*1的1011〉实物资产卡片工作簿〈化一8(31*1的1011〉一工作簿描述
[0090]?51166^5?—表单
[0091]〈311661068(31*1 的 1011?—表单描述的开始
[0092]1^?—本表单的标识
[0093]?1181116?实物资产卡片?^11加16?—本表单的名称
[0094]—表单序号
[0095]<dataClassName>AssetCardVO</dataClassName〉
[0096]—表单每行封装成的类
[0097]〈columns〉一表单列的定义
[0098]〈Co IumnDescript 1n>—参见后续描述
[0099]< i d>rowNum</i d>
[0100]<index>0</index〉
[0101]<propertyName>rowNum</propertyName>
[0102]〈descript1n〉行号〈/descript1n〉
[0103]<dataType>int</dataType〉
[0104]〈/Co IumnDescript 1n>
[0105]〈Co IumnDescript 1n>
[0106]<id>assetLabel</id>
[0107]<index>l</index〉
[0108]<propertyName>assetLabel</propertyName>
[0109]〈descript1n〉实物资产标签号〈/descript1n〉
[0110]<dataType>string</dataType〉
[0111]<fillType>key</fillType>
[0112]<ruleName>MyRule.Service.1mp.AssetLabelRule</ruleName>
[0113]</ColumnDescript1n>
[0114]......
[0115]<Co IumnDescript 1n>
[0116]<id>serialNo</id>
[0117]<index>14</index〉
[0118]<propertyName>serialNo</propertyName>
[0119]〈descript1n〉产品序列号〈/descript1n〉
[0120]<dataType>string(200)</dataType〉
[0121]<fillType>dep (targetType == I) </fillType>
[0122]<ruleName>MyRule.Service.1mp.SerialNoRule</ruleName>
[0123]</ColumnDescript1n>
[0124]......
[0125]<Co IumnDescript 1n>
[0126]<id>purchaseDate</id>
[0127]<index>23</index〉
[0128]<propertyName>purchaseDate</propertyName>
[0129]〈descript1n〉购置日期〈/descript1n〉
[0130]<dataType>date</dataType〉
[0131 ]</Co IumnDescript 1n>
[0132]......
[0133]Xml标签说明:
[0134]00111111111)6801-11)1:1011 描述一个 2x061 文件表单的一列。
[0135]1(1表示对象的属性标记,可以使用该标记获取该列的所有属性;
[0136]表示2X061表单中列的序号,可以使用该序号获取该列的所有属性;
[0137]1)1*01)61*1:5^肅6表示对象属性名;
[0138]表不标题列名称;
[0139]表示数据类型;
[0140]丨丨111沖6表示填充类型;
[0141]1-1116^81116表示应用的规则名,通过该名字映射到规则处理程序;
[0142]其中,也1:811??6、丨丨11 了和”丨一版皿?标签定义了数据规则:
[0143]数据类型:
[0144]也七&了沖一:=181^1^6| 1111: | 10118 I 也1:6 I (1011)316}// 字符串、整数、长整数、日期、双精度浮点数
[0145]811^1^6: =//胍表不最大长度
[0146]填充类型:
[0147]丁7?6: = {1^67 | 111110111(67 I^81: | 02?空白)// 主键、双主键、必填、依赖于表达式的值必填
[0148]02?: =(161)(1^01)61^5^^111162^^688) //如果表达式值为真则必填,否则忽略;
[0149]1)1-01)61-1:7^11162x1)1-688: = 1^1-01)61-1:7^1116^01-111812x1)1-688 |
688) |)
[0150]1)1-01)61-1:7^1116^01-111812x1)1-688: =1:7^1116 ==
[0151]: =1 1^^01)61-1:7^11162^1)1-688 //或关系
[0152]1)1-01)61-1:7^1116^11(12x1)1-688: =1-688(^,^1-01)61-1:7^11162x1)1-688 //与关系
[0153]用户自定义规则:
[0154]1-1116^.116:=用户自定义的规则处理类路径//该规则对应一个服务类,在对2x061文件进行校验时,为每个2X061文件中的列实例化一个与该规则对应类的对象,用以实现该列的规则检查。
[0155]其中,源数据文件是来源系统的存量数据文件,需要按照新系统要求进行数据清理;
[0156]基础数据文件是新系统的基本信息文件,包括组织机构信息、数据字典等;
[0157]目标数据文件是将源数据文件进行盘点与数据清理后,需要移植入新系统的数据文件。
[0158]至此,可以使用观1描述任何一个源数据文件、数据文件、基础数据文件和目标数据文件。
[0159]步骤8120、利用所述描述文件对所述目标数据文件进行校验。
[0160]通过观1文件的配置对每个待校验的目标数据文件进行数据校验;
[0161]在进行在线数据清理时,有需要用到的一些基础数据不需要指定和加载,因为这些基础数据已经存在于系统中,且一般是按照数据库表的形式存在,在校验的过程中需要的时候可以通过访问数据库进行获取。
[0162]本发明公开了一种数据清理的方法及系统包括:导出待校验的目标数据文件;力口载所述目标数据文件对应的描述文件;利用所述描述文件对所述目标数据文件进行校验;从而能够准确、高效的完成数据清理工作;采用上述方法进行数据清理,优点是,在线数据清理系统使用的基础数据来源于本在线系统数据库,能够保证是最新的、反映现实情况的。
[0163]可选的,在完成目标数据文件的校验时,可以选择是否将此目标数据文件移植入新的系统,当选择移植入新系统,则进行移植操作;将已经通过在线数据清理的数据移植入新的系统,即创建数据库表项;当不选择移植入新系统,输出校验通过。
[0164]优选的,在对各种数据文件进行校验的过程中任何发现任何错误都可以进行一个反馈。
[0165]但是,也可以看到在进行在线数据清理的时候需要通过数据库查询来对数据进行校验,需要大量的数据库的访问操作,从而影响系统中其他用户的正常使用;且在线数据清理不能够满足对于多来源文件数据的复杂关系校验,很难不重复、不遗漏。
[0166]可选的,图2给出了本发明实施例提供的数据清理方法中离线数据清理的方法的流程图;参照图2,离线数据清理的方法可以包括:
[0167]步骤S200、导出基础数据文件;
[0168]这些基础数据文件包括所有在校验文件时会用到的excel/csv等格式的文件,都是从各系统中导出的,如从实物资产管理系统、财会管理系统、固定资产管理系统、设备信息管理系统、用友固定资产管理系统、佳克固定资产管理系统、以及手工台帐中导出的。
[0169]步骤S210、加载所述基础数据文件对应的描述文件,并利用所述基础数据文件对应的描述文件进行校验;
[0170]每个基础数据文件都对应一个解释其内容的xml文件(xml文件内容如“规则定义”部分所示),先按照xml文件的规则对基础数据文件进行校验,只有整个文件内容校验都通过,才会使用这些文件作为基础数据文件对后续待校验的数据文件进行校验;如果在校验过程中发现错误给出可以给出提示信息。与在线数据清理系统不同的是,基础数据文件可以是对象的快速查询表hashMap或者链表等数据结构,而非数据库表结构。
[0171]步骤s220、当校验通过时,导出待校验的数据文件;
[0172]这里的数据文件可以是没有进行过盘点和数据清理的最原始的数据;也可以是经过实物资产盘点并进行数据清理后的数据文件,这里需要按照企业资产管理系统EAM标准进行规范化,其中,当校验通过后在经过在线数据清理过程可以将这些数据导入EAM中;这里将数据文件导出。
[0173]步骤S230、加载所述数据文件对应的描述文件;
[0174]每个待校验数据文件在不同阶段校验规则有可能会有所差异,例如:在下发给各实际盘点单位之前,数据校验规则可能比较宽松;在从各实际盘点单位上收之后,数据校验规则会最强;因此,每个待校验数据文件都对应一个或者多个解释其内容的xml文件(xml文件内容如“规则定义”部分所示),通过指定校验类型,对每个待校验数据文件进行数据校验。因此在离线数据清理过程中相比在线数据清理过程,离线数据清理过程中的xml文件会更多。
[0175]将所述数据文件对应的描述文件都进行加载。
[0176]步骤s240、利用所述数据文件对应的描述文件对所述数据文件进行校验,校验通过的所述数据文件作为目标数据文件。
[0177]这里利用所述数据文件对应的描述文件对所述数据文件进行校验,当所述数据文件通过校验后,所述数据文件可以作为在线系统进行数据清理的目标数据文件。
[0178]从上述描述可以看出离线数据清理具有在线数据清理不可比拟的优点,比如效率高,因为其在本机运行离线的系统进行校验,充分的利用了本地计算机资源来进行校验工作,不需要对数据库进行大量访问,因此就不会影响其他在线系统的正常使用,也不会耗费在线系统的宝贵资源;且离线数据清理的时效性好,反馈结果速度快,这样就提高了效率节约了时间。由于离线清理中的数据文件来源比较广泛,和进行复杂关系的校验,数据文件通过离线数据清理系统的校验,可以使用在线系统进行校验并移植。
[0179]可选的,将上述的在线数据清理和离线数据清理结合在一起,离线清理通过的数据文件可以作为在线系统的目标文件进行在线校验即将步骤s240得到的目标文件导入到步骤SlOO中进行一次在线检测,通过检测的目标数据文件,可以选择移植入新的系统,也可以不进行移植。
[0180]可选的,图3给出了本发明实施例提供的数据清理方法中描述文件对目标数据文件或数据文件进行校验的方法流程图;参照图3,描述文件对目标数据文件或数据文件进行校验的方法可以包括:
[0181]步骤S300、校验待校验的目标数据文件或数据文件的标题行各列的名称,并确定起始行;
[0182]无论是在线数据清理还是离线数据清理,在对目标数据文件或数据文件进行校验的时,首先就是要根据所述待校验的目标数据文件或数据文件对应的xml文件对目标数据文件或数据文件的标题行的各列的名称进行匹配比较,这样目的是为了避免人为因素导致使用不匹配的校验模板,即确定描述文件xml文件的匹配性,在确定了标题行后,就可以进而确定数据的起始行,因为标题行的下一行即为数据行,也即数据的起始行。
[0183]步骤S310、校验所述待校验的目标数据文件或数据文件的单元格的基本数据类型;
[0184]再通过校验确定起始行后,开始进行基本数据类型的校验,其本数据类型可上述描述文件中的dataType数据类型;通过基本数据类型的校验可以为之后进行关联校验做好准备,由于数据类型的错误比关联性的错误更容易发现,也是一些基本的错误,这样也可以在尽量早的时间内发现文件错误,提高校验的效率。
[0185]步骤s320、根据填充规则对所述待校验的目标数据文件或数据文件的填充类型进行校验;
[0186]在基本数据类型的校验通过后,对所述待校验的目标数据文件或数据文件的填充类型进行校验,这是比基本数据类型校验更深层次的校验,属于深度校验,填充规则可详见上述描述文件中的filIType填充类型。
[0187]步骤S330、根据数据规则对所述待校验的目标数据文件或数据文件的数据进行校验。
[0188]在基本数据类型的校验通过后,对所述待校验的目标数据文件或数据文件的数据规则进行校验,数据规则的校验也属于深度校验,数据规则可详见上述描述文件中的1-1116^81116应用的规则名,通过该名字映射到规则处理程序;
[0189]1-1116^1116是用户自定义的校验规则,十分灵活。例如:对于所属机构编码和所属机构名称,希望校验一致性,即可定义数据规则。对于基础数据类型的字段,例如品牌、供应商,建立有效缓存匕8碰叩,当扫描到了该列的字段,先判断是否在该缓存中。如果在,说明该值是有效的,不需要到数据库中进行查询;如果不在,使用该值查找数据库,如果没有查至I』,则说明此值是无效的,记录行号和错误信息,否则加入有效缓存匕8111叩。这样的做法,以空间换时间,大大减轻了数据库的访问量。
[0190]可选的,图4给出了本发明实施例提供的数据清理方法中校验目标数据文件或数据文件的标题行各列名称,确定起始行的方法流程图;参照图4,校验目标数据文件或数据文件的标题行各列名称,确定起始行的方法可以包括:
[0191]步骤8400、读取所述待校验的目标数据文件或数据文件对应的描述文件;
[0192]步骤8410、获取所述描述文件中表单定义的行数;
[0193]获取所述描述文件中表单定义的行数,找到标题行。这里可以用一个变量~来表示所述描述文件中表单定义的行,这里领1。
[0194]步骤8420、依次获取所述待校验的目标数据文件或数据文件的一行,并将获取的该行与描述文件中列定义的描述文字分别进行比较;
[0195]首先获取所述待校验的目标数据文件或数据文件的第一行,将第一行与描述文件中列定义的描述文字分别进行比较,若每列都是一样的,则进入步骤8430,若每列不都是一样的,则获取所述待校验的目标数据文件或数据文件的第二行,重复上述过程,直到所述待校验的目标数据文件或数据文件的所有的行都对比完终止校验。
[0196]步骤8430、当比较后每列描述文字都相同时,则该列为标题行,且所述标题行的下一行为起始行。
[0197]可选的,图5给出了本发明实施例提供的数据清理方法中根据填充规则对所述待校验的目标数据文件或数据文件的填充类型进行校验的流程图;参照图5,根据填充规则对所述待校验的目标数据文件或数据文件的填充类型进行校验的方法可以包括:
[0198]步骤8500、初始化缓存,确定起始行,并实例化所述待校验的目标数据文件或数据文件的规则类对象;
[0199]初始化缓存叩,确定起始行的行号,并进行实例化所述待校验的目标数据文件或数据文件的规则类的对象,入步骤8110中对文件中描述的那样,为每个2X061文件中的列实例化一个与该规则对应类的对象,用以实现该列的规则检查。
[0200]步骤8510、从起始行开始,依次获取所述待校验的目标数据文件或数据文件的一行;
[0201]校验时一行一行的进行的,因此此处,从待校验的目标数据文件或数据文件的起始行开始。
[0202]步骤8520、逐列扫描所述描述文件中对应列定义的填充规则;
[0203]首先,当从所述待校验的目标数据文件或数据文件的起始行开始,逐列扫描描述文件中的起始行的对应列中相应的,此处的对应列是与待校验的目标数据文件或数据文件各行的列相对应的,即待校验的目标数据文件或数据文件中各行的同一列是有一致的丨丨111??6,但是各列的丨丨111沖6不一定是相同的,因此要将待校验的目标数据文件或数据文件中各行的每一列都与对应的描述文件中相应列的fillType进行检验。
[0204]步骤S530、当所述描述文件中存在用户定义的填充规则,则获取所述填充规则实例对象;
[0205]在校验的过程中看是否存在用户自定义的填充规则,当存在用户自定义的填充规则时,要获取填充规则实例对象。
[0206]步骤S540、当所述填充规则实例对象通过校验,则进行下一行检验。
[0207]这里的填充规则的校验时依据描述文件中fillType的类型进行的,fillType中每有一个对应的类型则都会对应有一个对此类型进行校验的对象,例如必填Must校验、条件必填Dep校验、主键Key校验、联合主键un1nKey校验等等,他们的大概流程都是如图5所示,但是每一个特定类型的校验又必然会存在于其类型相应的特定的条件,也都有其特定的含义和准则,例如表达式等,因此每一类都有一个校验程序进行支持;
[0208]例如在对Must校验进行时,在扫描完一列的定义的fillType后,就会进行是否在Must校验中有填写的内容,当必填项是空白的时候,则就报错,进行下一行的校验;当必填项是空白的时候,接下来的流程与图5对应位置的流程一致。
[0209]又例如条件必填Dep校验,在对条件必填Dep校验的时候,条件的表现形式一般都是表达式,所以要检测此表达式的值是否为真,当不是真实的,则报错,进行下一行的校验;当表达式的值为真时,则检验结果是否填写,当没有填写时,报错;当填写时按照接下来图5的相应位置的流程一致。
[0210]可选的,其中,所述逐列扫描所述描述文件中对应列定义的填充规则包括:
[0211]当所述对应列定义的填充规则为主键或者联合主键时,判断扫描到的所述列中的字段是否存在缓存中,当存在时,报错;
[0212]当不存在时,则将该字段加入缓存中。
[0213]其中,在线数据清理中对于key和un1nKey,建立已扫描缓存hashMap,当扫描到了该列的字段,先判断是否在该缓存中。如果在,说明该值在excel文件中重复,可以记录行号和错误提示信息;如果不在,则将改值加入缓存hashMap中,并且查找数据库,如果没有查到,则说明没有与数据库已有数据冲突,满足主键的唯一性要求,否则说明该值与数据库已有数据重复,不满足主键的唯一性要求;
[0214]在离线数据清理中,对于key和un1nKey,建立已扫描缓存hashMmap,当扫描到了该列的字段,先判断是否在该缓存中。如果在,说明该值在excel中重复,记录行号和错误提示信息;如果不在,将改值加入缓存hashMmap中,继续数据规则的判断。
[0215]这里在线数据清理和离线数据清理有不同,其中,离线系统在基础数据hashMap表中查找系统中key值是否存在,而在线系统在基础数据数据库表中查找系统中key值是否存在。
[0216]可选的,其中,所述根据数据规则对所述待校验的目标数据文件或数据文件的数据进行校验在离线数据清理中包括:
[0217]当所述待校验的数据文件的数据为数据字典型字段,则在建立校验时,创建逆向枚举缓存。
[0218]其中,数据规则参见ruleName,是用户自定义的校验规则,十分灵活。例如:对于所属机构编码和所属机构名称,希望校验一致性,即可定义数据规则。
[0219]对于数据字典型字段,在建立校验时,会创建逆向枚举匕8碰叩,例如对于用途字段,0表示未知,1表示公用,2表示自用、3表示专用,即是整数到字符串型的匕也此?,在创建该数据规则时,将建立字符串到整数的逆向,用于对字段的规则校验。
[0220]而对于在线数据清理中数据规则参见!'1116^^6。是用户自定义的校验规则,十分灵活。例如:对于所属机构编码和所属机构名称,希望校验一致性,即可定义数据规则。对于基础数据类型的字段,例如品牌、供应商,建立有效缓存匕8碰叩,当扫描到了该列的字段,先判断是否在该缓存中。如果在,说明该值是有效的,不需要到数据库中进行查询;如果不在,使用该值查找数据库,如果没有查到,则说明此值是无效的,记录行号和错误信息,否则加入有效缓存这样的做法,以空间换时间,大大减轻了数据库的访问量。
[0221]优选的可以将发生错误时的行号,类型等进行记录,以方便以后的查找与改正。
[0222]可选的,图6给出了本发明实施例提供的数据清理方法中错误记录的流程图;参照图6,错误记录的方法可以包括:
[0223]步骤8600、仓I」建错误记录对象;
[0224]即当前目标数据文件对应的类对象。
[0225]步骤8610、设置所述错误记录对象的行号属性;
[0226]这里可以用?=数字,这样的形式进行记录。
[0227]步骤8620、设置所述错误记录对象的当前校验失败的错误属性;
[0228]其中,所述错误属性的值即为错误的原因。
[0229]步骤8630、插入错误记录对象队列。
[0230]可选的,图7给出了本发明实施例提供的数据清理方法中反馈结果的流程图;参照图7,反馈结果的方法可以包括:
[0231]步骤8700、获取数据文件对应的描述文件;
[0232]步骤8710、当成功获取错误记录对象队列头节点时,根据所述描述文件的描述,将错误记录对象写入结果文件;
[0233]步骤8720、当失败成功获取错误记录对象队列头节点时,将结果文件反馈给用户。
[0234]其中,通过上述方法,错误的记录以及反馈结果是有很大好处,方便对于错误的直观认识,直到哪里出错,出了什么错误等,对于提高数据清理的速度也是十分有好处,且在于团队协作时,这样可以很好地避免重复劳动,且能够还能容易铰接,使得用户可以方便、直观的找到错误,也可以对清理的进度有一定的掌握;利用反馈结果还可以输出一个错误结果的6X061文件。
[0235]可选的,图8给出了本发明实施例提供的数据清理方法中离线数据清理中错误记录的流程图;参照图8,离线数据清理中错误记录的方法可以包括:
[0236]步骤8800、仓I」建错误记录对象;
[0237]其中,这里的对象属性可以为,行号、错误列、错误原因。
[0238]步骤8810、设置所述错误记录对象的行号属性;
[0239]这里可以用?=数字,这样的形式进行记录。
[0240]步骤8820、设置所述错误记录对象的当前校验失败的错误属性;
[0241〕 其中,所述错误属性的值为出错列的列名称。
[0242] 步骤8830、插入错误记录对象队列。
[0243]可选的,图8给出了本发明实施例提供的数据清理方法中离线数据清理中反馈结果的流程图;参照图8,离线数据清理中反馈结果的方法可以包括:
[0244]步骤S900、当成功获取错误记录对象队列头节点时,将错误记录对象写入结果表格中;
[0245]步骤s910、当失败成功获取错误记录对象队列头节点时,将结果表格反馈给用户。
[0246]同在线数据处理一样这里的错误记录以及反馈结果是有很大好处,方便对于错误的直观认识,直到哪里出错,出了什么错误等,对于提高数据清理的速度也是十分有好处,且在于团队协作时,这样可以很好地避免重复劳动,且能够还能容易铰接,使得用户可以方便、直观的找到错误,也可以对清理的进度有一定的掌握;利用反馈结果还可以输出一个错误结果的表格。
[0247]基于上述技术方案,本发明所提供的数据清理的方法,导出待校验的目标数据文件;加载所述目标数据文件对应的描述文件;利用所述描述文件对所述目标数据文件进行校验;可复用度高,扩展性强;离线和在线数据清理系统可以共享Excel文件处理机制,共享数据校验规则。离线与在线数据清理系统相比,增加了解释基础数据文件和源数据文件的xml描述文件,实现了多文件关联关系的校验处理;更改了获取数据的方式(不采用访问数据库而采用读取Excel文件的方式),但未改变与在线系统的数据接口 ;具备了在线数据处理的实时性;从而能够准确、高效的完成数据清理工作,为新系统的使用争取了时间,也降低了劳动的复杂性,具有重要的现实意义。
[0248]本发明所提供的数据清理的方法,可以通过上述方法进行数据清理。
[0249]下面对本发明所提供的数据清理的系统进行介绍,下文描述的数据清理的系统与上文描述的数据清理的方法可相互对应参照。
[0250]图10为本发明实施例提供的数据清理的系统的结构框图;参照图10数据清理的系统可以包括:
[0251]导出模块100,用于导出待校验的目标数据文件;
[0252]加载模块200,用于加载所述目标数据文件对应的描述文件;
[0253]校验模块300,用于利用所述描述文件对所述目标数据文件进行校验。
[0254]可选的,本发明实施例提供的另一数据清理的系统还可以包括校验错误反馈模块400,如图11所示,图11为本发明实施例提供的另一数据清理的系统的结构框图;
[0255]其中,校验错误反馈模块400,用于记录反馈的原因、位置等信息。
[0256]可选的,图12为本发明实施例提供的校验错误反馈模块的结构框图;参照图10校验错误反馈模块可以包括:
[0257]错误记录单元410,用于记录错误的一些常见属性;
[0258]反馈结果单元420,用于以excel文件或者表格的形式反馈错误的详细情况。
[0259]其中,在系统的设计中,在线数据清理系统和离线数据清理系统的结构是有一定的区别,其一,在线数据清理系统可以使用网页进行,而离线数据清理系统则可以使用Java的Swing/AWT组件;其二,在线数据清理系统可以使用数据库表,而离线数据清理系统则可以使用Excel文件;其三,在线数据清理系统可以不用加载对于基础数据文件以及源数据文件的xml描述文件,而离线数据清理系统则需要增加对基础数据文件和源数据文件的xml描述文件;其四,离线系统增加了更多的数据清理规则,以便实现更全面复杂的校验。
[0260]其中,离线数据清理系统应用于单机客户端,所需要的数据来自本地计算机,而在线数据清理系统具有浏览器。这里可以将离线数据清理系统分为单机客户端和服务层,在线数据清理系统可以分为浏览器/客户端层、服务层、应用逻辑层、业务层,其中业务层可以具有领域对象、数据访问对象;这样也可以清楚地看到,离线数据清理系统分层较少,省去了与应用逻辑层和业务层,但是与在线系统服务层的接口不变,在线系统的某些数据清理规则的服务查询数据库,而离线系统相应的数据清理规则的服务查询本地内存数据。
[0261]本发明所提供的数据清理系统,可以通过上述系统进行数据清理。
[0262]说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0263]专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0264]结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(狀的、内存、只读存储器¢01)、电可编程801、电可擦除可编程801、寄存器、硬盘、可移动磁盘、⑶-801、或【技术领域】内所公知的任意其它形式的存储介质中。
[0265]以上对本发明所提供的数据清理的方法及系统进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本【技术领域】的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
【权利要求】
1.一种数据清理的方法,其特征在于,该方法包括: 导出待校验的目标数据文件; 加载所述目标数据文件对应的描述文件; 利用所述描述文件对所述目标数据文件进行校验。
2.如权利要求1所述的数据清理的方法,其特征在于,所述目标数据文件还包括:经过离线数据清理的数据文件作为目标数据文件,其中离线数据清理的方法包括: 导出基础数据文件; 加载所述基础数据文件对应的描述文件,并利用所述基础数据文件对应的描述文件进行校验; 当校验通过时,导出待校验的数据文件; 加载所述数据文件对应的描述文件; 利用所述数据文件对应的描述文件对所述数据文件进行校验,校验通过的所述数据文件作为目标数据文件。
3.如权利要求1或2所述的数据清理的方法,其特征在于,利用描述文件对目标数据文件或数据文件进行校验的方法包括: 校验待校验的目标数据文件或数据文件的标题行各列的名称,并确定起始行; 校验所述待校验的目标数据文件或数据文件的单元格的基本数据类型; 根据填充规则对所述待校验的目标数据文件或数据文件的填充类型进行校验; 根据数据规则对所述待校验的目标数据文件或数据文件的数据进行校验。
4.如权利要求3所述的数据清理的方法,其特征在于,所述校验待校验的目标数据文件或数据文件的标题行各列名称,并确定起始行包括: 读取所述待校验的目标数据文件或数据文件对应的描述文件; 获取所述描述文件中表单定义的行数; 依次获取所述待校验的目标数据文件或数据文件的一行,并将获取的该行与描述文件中列定义的描述文字分别进行比较; 当比较后每列描述文字都相同时,则该列为标题行,且所述标题行的下一行为起始行。
5.如权利要求3所述的数据清理的方法,其特征在于,所述根据填充规则对所述待校验的目标数据文件或数据文件的填充类型进行校验包括: 初始化缓存,确定起始行,并实例化所述待校验的目标数据文件或数据文件的规则类对象; 从起始行开始,依次获取所述待校验的目标数据文件或数据文件的一行; 逐列扫描所述描述文件中对应列定义的填充规则; 当所述描述文件中存在用户定义的填充规则,则获取所述填充规则实例对象; 当所述填充规则实例对象通过校验,则进行下一行检验。
6.如权利要求5所述的数据清理的方法,其特征在于,所述逐列扫描所述描述文件中对应列定义的填充规则包括: 当所述对应列定义的填充规则为主键或者联合主键时,判断扫描到的所述列中的字段是否存在缓存中,当存在时,报错; 当不存在时,则将该字段加入缓存中。
7.如权利要求3所述的数据清理的方法,其特征在于,所述根据数据规则对所述待校验的目标数据文件或数据文件的数据进行校验在离线数据清理中包括: 当所述待校验的数据文件的数据为数据字典型字段,则在建立校验时,创建逆向枚举缓存。
8.如权利要求1所述的数据清理的方法,其特征在于,还包括校验错误反馈,其中校验错误反馈包括错误记录和反馈结果, 其中,所述错误记录包括: 创建错误记录对象; 设置所述错误记录对象的行号属性; 设置所述错误记录对象的当前校验失败的错误属性; 插入错误记录对象队列; 所述反馈结果包括: 获取数据文件对应的描述文件; 当成功获取错误记录对象队列头节点时,根据所述描述文件的描述,将错误记录对象写入结果文件; 当失败成功获取错误记录对象队列头节点时,将结果文件反馈给用户。
9.如权利要求2所述的数据清理的方法,其特征在于,还包括校验错误反馈,其中校验错误反馈包括错误记录和反馈结果, 其中,所述错误记录包括: 创建错误记录对象; 设置所述错误记录对象的行号属性; 设置所述错误记录对象的当前校验失败的错误属性; 插入错误记录对象队列; 所述反馈结果包括: 当成功获取错误记录对象队列头节点时,将错误记录对象写入结果表格中; 当失败成功获取错误记录对象队列头节点时,将结果表格反馈给用户。
10.一种数据清理的系统,其特征在于,该系统包括: 导出模块,加载模块,校验模块,其中, 导出模块,用于导出待校验的目标数据文件; 加载模块,用于加载所述目标数据文件对应的描述文件; 校验模块,用于利用所述描述文件对所述目标数据文件进行校验。
【文档编号】G06F17/30GK104361119SQ201410721032
【公开日】2015年2月18日 申请日期:2014年12月2日 优先权日:2014年12月2日
【发明者】佟伟 申请人:中国农业银行股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1