数据清洗方法、装置、计算机设备和存储介质与流程

文档序号:29793532发布日期:2022-04-23 18:15阅读:184来源:国知局
数据清洗方法、装置、计算机设备和存储介质与流程

1.本技术涉及计算机技术领域,特别是涉及一种数据清洗方法、装置、计算机设备、存储介质和计算机程序产品。


背景技术:

2.随着计算机技术的发展,数据的种类和规模以前未有的速度迅猛增长,在社会经济发展中起着至关重要的作用。例如,在医疗领域,医疗数据正在成为各医疗机构的重要资产。但是,随着数据的迅猛增长,海量数据中可能存在大量错误、重复、不一致的脏数据,怎样对大量脏数据进行清洗成为重要的问题。
3.传统技术中,在通过清洗程序对脏数据进行清洗时,如果一次清洗的数据量过大,会导致对数据进行清洗的清洗语句过长或者清洗程序占用空间过大,从而产生系统错误。如果将源数据表拆分为多个数据表再进行数据清洗,虽然可以避免系统错误,但在数据量较大时,拆分过程的操作复杂,效率较低。


技术实现要素:

4.基于此,有必要针对上述技术问题,提供一种既能够避免系统错误又可以提高效率的数据清洗方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
5.第一方面,本技术提供了一种数据清洗方法。所述方法包括:
6.获取用于存储医疗数据的源数据表;
7.在所述源数据表的字段中,选取目标字段;
8.对所述目标字段对应的数据进行数据清洗,并将清洗后的所述目标字段及对应的数据和所述源数据表中的剩余字段及对应的数据存储至目标数据表;
9.若所述目标数据表中具有尚未清洗的字段,将所述目标数据表作为源数据表并返回执行所述在所述源数据表的字段中,选取目标字段的步骤进行迭代,直到所述目标数据表中的所有字段均清洗完成。
10.第二方面,本技术还提供了一种数据清洗装置。所述装置包括:
11.获取模块,用于获取用于存储医疗数据的源数据表;
12.选取模块,用于在所述源数据表的字段中,选取目标字段;
13.数据清洗模块,用于对所述目标字段对应的数据进行数据清洗,并将清洗后的所述目标字段及对应的数据和所述源数据表中的剩余字段及对应的数据存储至目标数据表;
14.所述选取模块,还用于若所述目标数据表中具有尚未清洗的字段,将所述目标数据表作为源数据表并返回执行所述在所述源数据表的字段中,选取目标字段的步骤进行迭代,直到所述目标数据表中的所有字段均清洗完成。
15.在一个实施例中,所述装置还包括:
16.所述获取模块,还用于获取根据所述源数据表的探查信息生成的第一清洗程序;
17.所述选取模块,还用于若通过所述第一清洗程序对所述源数据表进行数据清洗时
产生系统错误,执行所述从所述源数据表的字段中,选取目标字段的步骤。
18.在一个实施例中,所述数据清洗模块,还用于:
19.获取根据所述目标字段生成的第二清洗程序;
20.通过所述第二清洗程序中的清洗语句,对所述目标字段对应的数据进行数据清洗;
21.通过所述第二清洗程序中的复制语句,对所述剩余字段对应的数据进行复制;
22.将清洗后的所述目标字段和复制的所述剩余字段及对应的数据存储至所述目标数据表。
23.在一个实施例中,所述装置还包括:
24.判断模块,用于判断所述第二清洗程序是否满足运行条件;
25.所述数据清洗模块,若所述第二清洗程序满足所述运行条件,还用于执行所述通过所述第二清洗程序中的清洗语句对所述目标字段对应的数据进行数据清洗的步骤。
26.在一个实施例中,所述装置还包括:
27.调整模块,若所述第二清洗程序不满足所述运行条件,用于对所述目标字段进行调整;
28.获取模块,还用于获取新的第二清洗程序;所述新的第二清洗程序是根据调整后的所述目标字段生成的;
29.所述数据清洗模块,还用于:通过新的第二清洗程序中的清洗语句,对目标字段对应的数据进行数据清洗;通过所述新的第二清洗程序中的复制语句,对所述剩余字段及对应的数据进行复制。
30.在一个实施例中,所述数据清洗模块,还用于:
31.对所述目标字段对应的数据进行数据清洗,得到清洗后的所述目标字段对应的数据;
32.查找与所述源数据表对应的目标数据表;
33.将清洗后的所述目标字段对应的数据和所述源数据表中的剩余字段对应的数据存储至所述目标数据表。
34.第三方面,本技术还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
35.获取用于存储医疗数据的源数据表;
36.在所述源数据表的字段中,选取目标字段;
37.对所述目标字段对应的数据进行数据清洗,并将清洗后的所述目标字段及对应的数据和所述源数据表中的剩余字段及对应的数据存储至目标数据表;
38.若所述目标数据表中具有尚未清洗的字段,将所述目标数据表作为源数据表并返回执行所述在所述源数据表的字段中,选取目标字段的步骤进行迭代,直到所述目标数据表中的所有字段均清洗完成。
39.第四方面,本技术还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
40.获取用于存储医疗数据的源数据表;
41.在所述源数据表的字段中,选取目标字段;
42.对所述目标字段对应的数据进行数据清洗,并将清洗后的所述目标字段及对应的数据和所述源数据表中的剩余字段及对应的数据存储至目标数据表;
43.若所述目标数据表中具有尚未清洗的字段,将所述目标数据表作为源数据表并返回执行所述在所述源数据表的字段中,选取目标字段的步骤进行迭代,直到所述目标数据表中的所有字段均清洗完成。
44.第五方面,本技术还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
45.获取用于存储医疗数据的源数据表;
46.在所述源数据表的字段中,选取目标字段;
47.对所述目标字段对应的数据进行数据清洗,并将清洗后的所述目标字段及对应的数据和所述源数据表中的剩余字段及对应的数据存储至目标数据表;
48.若所述目标数据表中具有尚未清洗的字段,将所述目标数据表作为源数据表并返回执行所述在所述源数据表的字段中,选取目标字段的步骤进行迭代,直到所述目标数据表中的所有字段均清洗完成。
49.上述数据清洗方法、装置、计算机设备、存储介质和计算机程序产品,获取用于存储医疗数据的源数据表,在源数据表的字段中,选取目标字段。对目标字段对应的数据进行数据清洗,并将清洗后的目标字段和源数据表中的剩余字段及对应的数据存储至目标数据表,若目标数据表中具有尚未清洗的字段,将目标数据表作为源数据表并返回执行在源数据表的字段中,选取待清洗的目标字段的步骤进行迭代,直到目标数据表中的所有字段均清洗完成。因此服务器可以一次仅对选取的部分目据字段进行数据清洗,并将剩余字段简单复制到目标数据表,而无需一次对全部的字段均进行数据清洗,降低了清洗程序所占用的存储空间,并且可以避免清洗程序中清洗语句调用的参数过多,从而可以避免由于医疗数据的数据量过大,而导致在数据清洗时产生系统错误。此外,服务器也无需对源数据表进行拆分即可完成数据清洗,操作简单,提高了数据清洗的效率。
附图说明
50.图1为一个实施例中数据清洗方法的应用环境图;
51.图2为一个实施例中数据清洗方法的流程示意图;
52.图3为一个实施例中源数据表和目标数据表的存储平台示意图;
53.图4为一个实施例中第一清洗程序的示意图;
54.图5为一个实施例中通过第二清洗程序进行数据清洗方法的流程示意图;
55.图6为一个实施例中第二清洗程序的示意图;
56.图7为另一个实施例中数据清洗方法的流程示意图;
57.图8为一个实施例中一级数据清洗程序和二级数据清洗程序的示意图;
58.图9为又一个实施例中数据清洗方法的流程示意图;
59.图10为一个实施例中数据清洗装置的结构框图;
60.图11为另一个实施例中数据清洗装置的结构框图;
61.图12为一个实施例中计算机设备的内部结构图。
具体实施方式
62.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
63.本技术实施例提供的数据清洗方法,可以应用于如图1所示的应用环境中。其中,数据存储系统可以存储服务器102需要处理的数据。数据存储系统可以集成在服务器102上,也可以放在云上或其他网络服务器上。服务器102获取用于存储医疗数据的源数据表;在源数据表的字段中,选取目标字段;对目标字段对应的数据进行数据清洗,并将清洗后的目标字段和源数据表中的剩余字段对应的数据存储至目标数据表;若目标数据表中具有尚未清洗的字段,将目标数据表作为源数据表并返回执行在源数据表的字段中,选取目标字段的步骤进行迭代,直到目标数据表中的所有字段均清洗完成。
64.其中,服务器102可以用独立的服务器或者是多个服务器组成的服务器集群来实现。此外,服务器也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(content delivery network,cdn)、以及大数据和人工智能平台等基础云计算服务的云服务器。
65.在一个实施例中,如图2所示,提供了一种数据清洗方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:
66.s202,获取用于存储医疗数据的源数据表。
67.其中,医疗数据是与医疗活动相关的数据,包括临床检验数据、临床诊断数据、患者基本信息数据等。临床检验数据可以包括血液、体液检验项目数据、化学检验项目数据、临床免疫学检验数据、临床生物学及细胞学检验项目数据等。临床诊断数据可以包括处方单据、病例等。患者基本信息数据可以包括患者姓名、年龄或者病史等。
68.其中,源数据表为用于存储医疗数据的关系型数据表。源数据表中可以包括多个字段,例如,源数据表中可以包括姓名、年龄、血常规、血压、身高、血脂、体重以及病史等多个字段。
69.在一个实施例中,服务器可以从lis(laboratory information management system,实验室信息管理系统)或者his(hospital information system,医院信息系统)获取用于存储医疗数据的源数据表。或者,服务器也可以从数据库、大数据平台、数据仓库或者数据湖获取源数据表。
70.s204,在源数据表的字段中,选取目标字段。
71.其中,字段对应的数据为源数据表中的一列数据。目标字段为从源数据表中选取的部分字段,可以是从源数据表中随机选取的部分字段,或者也可以是按照预设字段数量,从源数据表中选取的字段。例如,预设字段数量为5,服务器从源数据表中选取第1至5列字段作为目标字段。又例如,服务器随机从源数据表中选取第1、4、6列字段作为目标字段。
72.s206,对目标字段对应的数据进行数据清洗,并将清洗后的目标字段及对应的数据和源数据表中的剩余字段及对应的数据存储至目标数据表。
73.其中,数据清洗是对字段对应的数据中的脏数据进行清洗的过程,包括纠正字段对应的数据中的不一致数据、错误数据,去除重复数据以及补充缺失数据等。例如,第5列字段中的第三行数据和第四行数据重复,通过数据清洗将第四行数据删除。又例如,“姓名”字
段中增加了多余的“》”符号,则通过数据清洗将“》”符号替换为空格。又例如,“年龄”字段和“出生日期”字段不一致,则通过数据清洗对“出生日期”的数值进行纠正。
74.其中,剩余字段是源数据表中除目标字段之外的其它字段。例如,目标字段是源数据表中的第1至5列字段,剩余字段是源数据表中的第6至1000列字段。目标数据表是关系型数据表。目标数据表中的字段数量以及字段名称与源数据表中的字段数量以及字段名称相同。
75.在一个实施例中,服务器通过sql(structured query language,结构化查询语言)脚本或者sql程序对目标字段对应的数据进行数据清洗。sql脚本是包含多个sql语句的文本,例如,sql脚本中包含case when语句、repalce语句、dataset语句、insert into语句或者insert overwrite语句等。sql程序是用sql语言编译的可执行程序,具有结构简单、语义清晰、操作灵活的优点。服务器在通过sql脚本或者sql程序对目标字段进行数据清洗时,需要执行函数调用等操作。
76.在一个实施例中,如图3所示,服务器从数据库、大数据平台、数据仓库或者数据湖中获取源数据表,在对源数据表中的字段对应的数据进行清洗后,将清洗后的字段对应的数据存入数据库、大数据平台、数据仓库或者数据湖的目标数据表中。
77.s208,若目标数据表中具有尚未清洗的字段,将目标数据表作为源数据表并返回执行在源数据表的字段中,选取目标字段的步骤进行迭代,直到目标数据表中的所有字段均清洗完成。
78.服务器从源数据表中选取部分目标字段进行数据清洗,对目标字段之外的剩余字段对应的数据并不做数据清洗处理,而是简单复制到目标数据表。由于执行复制操作的语句占用空间较小,所以不会造成语句中函数调用的参数过长或者一次性执行的代码超过代码空间限制等系统错误。
79.服务器在执行一次数据清洗之后,如果目标数据表中具有尚未清洗的字段,则将目标数据表作为源数据表,并从该源数据表中选取目标字段继续进行数据清洗。服务器每次从源数据表中选取的目标字段的数量可以相同也可以不同。例如,服务器可以首先将数据表a作为源数据表,从数据表a的字段中,选取目标字段并对目标字段进行数据清洗。将清洗后的目标字段和源数据表中的剩余字段对应的数据存储至数据表b。如果数据表b中具有尚未清洗的字段,则将数据表b作为源数据表,然后从数据表b中选取待清洗的目标字段,并对目标字段进行数据清洗。
80.上述实施例中,获取用于存储医疗数据的源数据表,在源数据表的字段中,选取目标字段。对目标字段对应的数据进行数据清洗,并将清洗后的目标字段和源数据表中的剩余字段及对应的数据存储至目标数据表,若目标数据表中具有尚未清洗的字段,将目标数据表作为源数据表并返回执行在源数据表的字段中,选取待清洗的目标字段的步骤进行迭代,直到目标数据表中的所有字段均清洗完成。因此服务器可以一次仅对选取的部分目标字段进行数据清洗,并将剩余字段及对应的数据简单复制到目标数据表,而无需一次对全部的字段均进行数据清洗,降低了清洗程序所占用的存储空间,并且可以避免清洗程序中清洗语句调用的参数过多,从而可以避免由于医疗数据的数据量过大,而导致在数据清洗时产生系统错误。此外,服务器也无需对源数据表进行拆分即可完成数据清洗,操作简单,提高了数据清洗的效率。
81.在一个实施例中,s204之前还包括:获取根据源数据表的探查信息生成的第一清洗程序;s204具体包括:若通过第一清洗程序对源数据表进行数据清洗时产生系统错误,从源数据表的字段中,选取目标字段。
82.其中,探查信息是用于描述源数据表中的脏数据的信息,包括缺失、错误、重复或者不一致的字段数量、数据类型等。例如,探查信息为第1至5列字段中的第6行与第8行数据重复。又例如,探查信息为第3列字段与第8列字段的数据不一致。又例如,探查信息为第7列字段中有多余的“》”符号。
83.其中,第一清洗程序为根据源数据表的探查信息生成的可执行程序,包括多个sql语句,sql语句的数量与源数据表中脏数据的字段数量一致。第一清洗程序中的sql语句可以全部为复制语句;或者可以全部为执行复杂函数调用的清洗语句;或者也可以部分为复制语句,部分为清洗语句。例如,如图4所示,第一清洗程序中包括“s1 as t1”、“s2 as t2”等多条复制语句,sn表示源数据表中的第n列字段,tn表示目标数据表中的第n列字段,复制语句“sn as tn”表示将源数据表中的第n列字段对应的数据复制到目标数据表中的第n列字段。
84.其中,系统错误是因系统性能达不到程序执行要求而产生的错误。在程序执行时,如果通过函数调用的参数数量超过系统设置的参数阈值,或者一次性执行的代码大小超过系统设置的代码空间阈值,则会导致系统性能达不到程序执行要求,从而产生系统错误。若通过第一清洗程序对源数据表进行数据清洗时产生系统错误,则服务器对源数据表分级进行数据清洗,从源数据表中选取部分待清洗的目标字段,然后先对目标字段进行数据清洗,并将清洗后的目标字段对应的数据和源数据表中的剩余字段对应的数据存储至目标数据表。若目标数据表中具有尚未清洗的字段,将目标数据表作为下一级数据清洗操作的源数据表并在该源数据表的字段中,选取待清洗的目标字段继续进行数据清洗,直到目标数据表中的所有字段均清洗完成。
85.上述实施例中,服务器若通过第一清洗程序对源数据表进行数据清洗时产生系统错误,则服务器确定通过分级清洗的方法对源数据表进行数据清洗,每一级数据清洗操作仅对部分目标字段对应的数据进行数据清洗,并将清洗后的目标字段和剩余字段复制到目标数据表。从而可以避免由于医疗数据的数据量过大,而导致在数据清洗时产生系统错误。此外,服务器也无需对源数据表进行拆分即可完成数据清洗,操作简单,提高了数据清洗的效率。
86.在一个实施例中,如图5所示,s206具体包括如下步骤:
87.s502,获取根据目标字段生成的第二清洗程序。
88.其中,第二清洗程序为根据目标字段生成的可执行程序,包括清洗语句和复制语句。第二清洗程序中的清洗语句用于对目标字段进行数据清洗,复制语句用于对目标字段之外的其他字段进行复制。例如,目标字段为第1列至第3列字段,则第二清洗程序中的第1至3条语句为清洗语句,其余语句为复制语句。例如,如图6所示,第二清洗程序中包括三条case when清洗语句,剩余的语句为复制语句。
89.s504,通过第二清洗程序中的清洗语句,对目标字段对应的数据进行数据清洗。
90.服务器通过第二清洗程序中的清洗语句,对目标字段进行数据清洗。例如,服务器通过“case when sex=
‘1’
then


’”
语句将字段中的数字“1”替换为“男”。
91.在一个实施例中,s504之前还包括:服务器判断第二清洗程序是否满足运行条件。s504具体包括:若第二清洗程序满足运行条件,则通过第二清洗程序中的清洗语句对目标字段对应的数据进行数据清洗。
92.其中,运行条件是用于判断第二清洗程序是否可以运行的条件。例如,运行条件为第二清洗程序中函数调用的参数小于参数阈值;又例如,运行条件为第二清洗程序所占用的存储空间小于空间阈值。如果第二清洗程序满足运行条件,则在执行第二清洗程序时不会产生系统错误。因此,服务器在第二清洗程序满足运行条件时,通过第二清洗程序中的清洗语句对目标字段进行数据清洗,通过第二清洗程序中的复制语句,对剩余字段进行复制,保证了数据清洗操作的顺利执行,避免产生系统错误。
93.s506,通过第二清洗程序中的复制语句,对剩余字段对应的数据进行复制。
94.服务器通过第二清洗程序中的复制语句,对剩余字段对应的数据进行复制。例如,服务器通过“s4 as t4”语句,将源数据表中第4列字段中的数据复制到目标数据表的第4列字段。
95.s508,将清洗后的目标字段和复制的剩余字段对应的数据存储至目标数据表。
96.服务器将清洗后的目标字段和复制的剩余字段存储至目标数据表,以将源数据表中的所有字段一次性的存入目标数据表,保证了数据的完整性。
97.在一个实施例中,s508具体包括:对目标字段对应的数据进行数据清洗,得到清洗后的目标字段对应的数据;查找与源数据表对应的目标数据表;将清洗后的目标字段和源数据表中的剩余字段对应的数据存储至目标数据表。
98.服务器可以根据源数据表的标识,在映射表中查找与源数据表对应的目标数据表,映射表中存储了源数据表的标识以及与源数据表匹配的目标数据表的标识。服务器可以通过远程调用或者本地调用的方式在源数据表和目标数据表之间建立数据链路,通过建立的数据链路将清洗后的目标字段和源数据表中的剩余字段对应的数据存储至目标数据表。
99.上述实施例中,服务器获取根据目标字段生成的第二清洗程序,并通过第二清洗程序中的清洗语句,对目标字段进行数据清洗,从而可以选取部分字段进行数据清洗,避免由于一次性清洗的数据量过大而产生系统错误。并且通过第二清洗程序中的复制语句,对剩余字段进行复制。将清洗后的目标字段和复制的剩余字段对应的数据存储至目标数据表。从而可以一次性的将源数据表中的所有字段对应的数据均存入目标数据表,保证了数据的完整性。
100.在一个实施例中,s502之后还包括:若第二清洗程序不满足运行条件,对目标字段进行调整;获取新的第二清洗程序;新的第二清洗程序是根据调整后的目标字段生成的;s504具体包括:通过新的第二清洗程序中的清洗语句,对目标字段对应的数据进行数据清洗;s506具体包括:通过新的第二清洗程序中的复制语句,对剩余字段对应的数据进行复制。
101.若第二清洗程序不满足运行条件,服务器对目标字段进行调整,包括减少目标字段的数量或者重新选择其他字段作为目标字段等。例如,将目标字段从5个字段减少为3个字段。
102.服务器在对目标字段进行调整后,获取根据调整后的目标字段生成的新的第二清
洗程序,新的第二清洗程序中的清洗语句与调整后的目标字段相对应,并且新的第二清洗程序中的清洗语句数量与调整后的目标字段的字段数量相一致。
103.服务器在对目标字段进行调整后,根据调整后的目标字段重新生成新的第二清洗程序,以使新的第二清洗程序占用的存储空间小于第二清洗程序占用的存储空间,或者使新的第二清洗程序中函数调用的参数少于第二清洗程序中函数调用的参数,保证了新的第二清洗程序满足运行条件。如果在对目标字段进行调整后生成的新的第二清洗程序仍不满足清洗条件,则服务器可以继续对目标字段进行调整,并在调整后重新生成新的第二清洗程序。
104.上述实施例中,服务器在第二清洗程序不满足运行条件时,对目标字段进行调整;并获取根据调整后的目标字段生成的新的第二清洗程序。通过新的第二清洗程序中的清洗语句,对目标字段进行数据清洗,并通过新的第二清洗程序中的复制语句,对剩余字段对应的数据进行复制。从而可以避免在数据清洗过程中发生系统错误。
105.在一个实施例中,如图7所示,服务器获取用于存储医疗数据的源数据表,对源数据表中的脏数据进行统计,得到源数据表的探查信息,跟源数据表的探查信息生成一级数据清洗程序,如图8所示,一级数据清洗程序中包括三个case when语句,各case when语句分别用于对字段s1-s3进行数据清洗。如果一级数据清洗程序满足运行条件,则通过一级数据清洗程序进行一级数据清洗,并将清洗后的字段和源数据表中的剩余字段存入目标数据表。如果一级数据清洗程序不满足运行条件,则返回重新生成一级数据清洗程序。
106.如果进行一级数据清洗后,目标数据表中还有未完成清洗的字段,则生成二级数据清洗程序,如图8所示,二级数据清洗程序中包括三个case when语句,各case when语句分别用于对字段s4-s6进行数据清洗。在二级数据清洗程序满足运行条件时,通过二级数据清洗程序进行二级数据清洗,依次类推,直到所有的字段均完成数据清洗。
107.在一个实施例中,如图9所示,数据清洗方法包括如下步骤:
108.s902,获取用于存储医疗数据的源数据表。
109.s904,对源数据表中的脏数据进行统计,得到源数据表对应的探查信息。
110.s906,获取根据探查信息生成的第一清洗程序。
111.s908,若通过第一清洗程序对源数据表进行数据清洗时产生系统错误,在源数据表的字段中,选取目标字段。
112.s910,获取根据目标字段生成的第二清洗程序。
113.s912,若第二清洗程序满足运行条件,通过第二清洗程序中的清洗语句,对目标字段进行数据清洗。
114.s914,通过第二清洗程序中的复制语句,对剩余字段进行复制。
115.s916,查找与源数据表对应的目标数据表。
116.s918,将清洗后的目标字段和复制的剩余字段存储至目标数据表。
117.s920,若目标数据表中具有尚未清洗的字段,将目标数据表作为源数据表并返回执行在源数据表的字段中,选取待清洗的目标字段的步骤进行迭代,直到目标数据表中的所有字段均清洗完成。
118.上述s902至s920的具体内容可以参考上文所述的具体实现过程。
119.应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头
的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
120.基于同样的发明构思,本技术实施例还提供了一种用于实现上述所涉及的数据清洗方法的数据清洗装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个数据清洗装置实施例中的具体限定可以参见上文中对于数据清洗方法的限定,在此不再赘述。
121.在一个实施例中,如图10所示,提供了一种数据清洗装置,包括:获取模块1002、选取模块1004和数据清洗模块1006,其中:
122.获取模块1002,用于获取用于存储医疗数据的源数据表;
123.选取模块1004,用于在所述源数据表的字段中,选取目标字段;
124.数据清洗模块1006,用于对所述目标字段对应的数据进行数据清洗,并将清洗后的所述目标字段及对应的数据和所述源数据表中的剩余字段及对应的数据存储至目标数据表;
125.所述选取模块1004,还用于若所述目标数据表中具有尚未清洗的字段,将所述目标数据表作为源数据表并返回执行所述在所述源数据表的字段中,选取目标字段的步骤进行迭代,直到所述目标数据表中的所有字段均清洗完成。
126.上述实施例中,获取用于存储医疗数据的源数据表,在源数据表的字段中,选取目标字段。对目标字段进行数据清洗,并将清洗后的目标字段和源数据表中的剩余字段存储至目标数据表,若目标数据表中具有尚未清洗的字段,将目标数据表作为源数据表并返回执行在源数据表的字段中,选取待清洗的目标字段的步骤进行迭代,直到目标数据表中的所有字段均清洗完成。因此服务器可以一次仅对选取的部分目标字段进行数据清洗,并将剩余字段简单复制到目标数据表,而无需一次对全部的字段均进行数据清洗,降低了清洗程序所占用的存储空间,并且可以避免清洗程序中清洗语句调用的参数过多,从而可以避免由于医疗数据的数据量过大,而导致在数据清洗时产生系统错误。此外,服务器也无需对源数据表进行拆分即可完成数据清洗,操作简单,提高了数据清洗的效率。
127.在一个实施例中,装置还包括:
128.获取模块1002,还用于获取根据源数据表的探查信息生成的第一清洗程序;
129.选取模块1004,还用于若通过第一清洗程序对源数据表进行数据清洗时产生系统错误,执行从源数据表的字段中,选取目标字段的步骤。
130.在一个实施例中,数据清洗模块1006,还用于:
131.获取根据目标字段生成的第二清洗程序;
132.通过所述第二清洗程序中的清洗语句,对所述目标字段对应的数据进行数据清洗;
133.通过所述第二清洗程序中的复制语句,对所述剩余字段对应的数据进行复制;
134.将清洗后的所述目标字段和复制的所述剩余字段及对应的数据存储至所述目标
数据表。
135.在一个实施例中,如图11所示,装置还包括:
136.判断模块1008,用于判断第二清洗程序是否满足运行条件;
137.数据清洗模块1006,若第二清洗程序满足运行条件,还用于执行所述通过所述第二清洗程序中的清洗语句对所述目标字段对应的数据进行数据清洗的步骤。
138.在一个实施例中,装置还包括:
139.调整模块1010,若第二清洗程序不满足运行条件,用于对目标字段进行调整;
140.获取模块1002,还用于获取新的第二清洗程序;新的第二清洗程序是根据调整后的目标字段生成的;
141.数据清洗模块1006,还用于:通过新的第二清洗程序中的清洗语句,对目标字段对应的数据进行数据清洗;通过新的第二清洗程序中的复制语句,对剩余字段及对应的数据进行复制。
142.在一个实施例中,数据清洗模块1006,还用于:
143.对目标字段对应的数据进行数据清洗,得到清洗后的目标字段对应的数据;
144.查找与源数据表对应的目标数据表;
145.将清洗后的目标字段对应的数据和源数据表中的剩余字段对应的数据存储至目标数据表。
146.上述数据清洗装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
147.在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图12所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据清洗数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据清洗方法。
148.本领域技术人员可以理解,图12中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
149.在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:获取用于存储医疗数据的源数据表;在所述源数据表的字段中,选取目标字段;对所述目标字段对应的数据进行数据清洗,并将清洗后的所述目标字段及对应的数据和所述源数据表中的剩余字段及对应的数据存储至目标数据表;若所述目标数据表中具有尚未清洗的字段,将所述目标数据表作为源数据表并返回执行所述在所述源数据表的字段中,选取目标字段的步骤进行迭代,直到所述目标数据表中的所有字段均清洗完成。
150.在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取根据所述源数据表的探查信息生成的第一清洗程序;若通过所述第一清洗程序对所述源数据表进行数据
清洗时产生系统错误,执行所述从所述源数据表的字段中,选取目标字段的步骤。
151.在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取根据所述目标字段生成的第二清洗程序;通过所述第二清洗程序中的清洗语句,对所述目标字段对应的数据进行数据清洗;通过所述第二清洗程序中的复制语句,对所述剩余字段对应的数据进行复制;将清洗后的所述目标字段和复制的所述剩余字段及对应的数据存储至所述目标数据表。
152.在一个实施例中,处理器执行计算机程序时还实现以下步骤:判断所述第二清洗程序是否满足运行条件;若所述第二清洗程序满足所述运行条件,执行所述通过所述第二清洗程序中的清洗语句对所述目标字段对应的数据进行数据清洗的步骤。
153.在一个实施例中,处理器执行计算机程序时还实现以下步骤:若所述第二清洗程序不满足所述运行条件,对所述目标字段进行调整;获取新的第二清洗程序;所述新的第二清洗程序是根据调整后的所述目标字段生成的;通过所述新的第二清洗程序中的清洗语句,对所述目标字段对应的数据进行数据清洗;通过所述新的第二清洗程序中的复制语句,对所述剩余字段及对应的数据进行复制。
154.在一个实施例中,处理器执行计算机程序时还实现以下步骤:对所述目标字段对应的数据进行数据清洗,得到清洗后的所述目标字段对应的数据;
155.查找与所述源数据表对应的目标数据表;
156.将清洗后的所述目标字段对应的数据和所述源数据表中的剩余字段对应的数据存储至所述目标数据表。
157.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:获取用于存储医疗数据的源数据表;在所述源数据表的字段中,选取目标字段;对所述目标字段对应的数据进行数据清洗,并将清洗后的所述目标字段及对应的数据和所述源数据表中的剩余字段及对应的数据存储至目标数据表;若所述目标数据表中具有尚未清洗的字段,将所述目标数据表作为源数据表并返回执行所述在所述源数据表的字段中,选取目标字段的步骤进行迭代,直到所述目标数据表中的所有字段均清洗完成。
158.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取根据所述源数据表的探查信息生成的第一清洗程序;若通过所述第一清洗程序对所述源数据表进行数据清洗时产生系统错误,执行所述从所述源数据表的字段中,选取目标字段的步骤。
159.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取根据所述目标字段生成的第二清洗程序;通过所述第二清洗程序中的清洗语句,对所述目标字段对应的数据进行数据清洗;通过所述第二清洗程序中的复制语句,对所述剩余字段对应的数据进行复制;将清洗后的所述目标字段和复制的所述剩余字段及对应的数据存储至所述目标数据表。
160.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:判断所述第二清洗程序是否满足运行条件;若所述第二清洗程序满足所述运行条件,执行所述通过所述第二清洗程序中的清洗语句对所述目标字段对应的数据进行数据清洗的步骤。
161.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:若所述第二清洗程序不满足所述运行条件,对所述目标字段进行调整;获取新的第二清洗程序;所述新的第
二清洗程序是根据调整后的所述目标字段生成的;通过所述新的第二清洗程序中的清洗语句,对所述目标字段对应的数据进行数据清洗;通过所述新的第二清洗程序中的复制语句,对所述剩余字段及对应的数据进行复制。
162.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:对所述目标字段对应的数据进行数据清洗,得到清洗后的所述目标字段对应的数据;查找与所述源数据表对应的目标数据表;将清洗后的所述目标字段对应的数据和所述源数据表中的剩余字段对应的数据存储至所述目标数据表。
163.在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:获取用于存储医疗数据的源数据表;在所述源数据表的字段中,选取目标字段;对所述目标字段对应的数据进行数据清洗,并将清洗后的所述目标字段及对应的数据和所述源数据表中的剩余字段及对应的数据存储至目标数据表;若所述目标数据表中具有尚未清洗的字段,将所述目标数据表作为源数据表并返回执行所述在所述源数据表的字段中,选取目标字段的步骤进行迭代,直到所述目标数据表中的所有字段均清洗完成。
164.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取根据所述源数据表的探查信息生成的第一清洗程序;若通过所述第一清洗程序对所述源数据表进行数据清洗时产生系统错误,执行所述从所述源数据表的字段中,选取目标字段的步骤。
165.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取根据所述目标字段生成的第二清洗程序;通过所述第二清洗程序中的清洗语句,对所述目标字段对应的数据进行数据清洗;通过所述第二清洗程序中的复制语句,对所述剩余字段对应的数据进行复制;将清洗后的所述目标字段和复制的所述剩余字段及对应的数据存储至所述目标数据表。
166.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:判断所述第二清洗程序是否满足运行条件;若所述第二清洗程序满足所述运行条件,执行所述通过所述第二清洗程序中的清洗语句对所述目标字段对应的数据进行数据清洗的步骤。
167.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:若所述第二清洗程序不满足所述运行条件,对所述目标字段进行调整;获取新的第二清洗程序;所述新的第二清洗程序是根据调整后的所述目标字段生成的;通过所述新的第二清洗程序中的清洗语句,对所述目标字段对应的数据进行数据清洗;通过所述新的第二清洗程序中的复制语句,对所述剩余字段及对应的数据进行复制。
168.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:对所述目标字段对应的数据进行数据清洗,得到清洗后的所述目标字段对应的数据;查找与所述源数据表对应的目标数据表;将清洗后的所述目标字段对应的数据和所述源数据表中的剩余字段对应的数据存储至所述目标数据表。
169.需要说明的是,本技术所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
170.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机
可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,rom)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(reram)、磁变存储器(magnetoresistive random access memory,mram)、铁电存储器(ferroelectric random access memory,fram)、相变存储器(phase change memory,pcm)、石墨烯存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器等。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。本技术所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本技术所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
171.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
172.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本技术专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术的保护范围应以所附权利要求为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1