数据仓库中的数据清洗

合集下载

数据仓库中的数据清洗和集成技术研究

数据仓库中的数据清洗和集成技术研究

数据仓库中的数据清洗和集成技术研究数据仓库是一个能够将多个不同数据源的数据集成起来,以支持数据分析和决策制定的系统。

这个过程需要对数据进行清洗和集成,以确保数据的一致性、准确性和完整性。

本篇文章将研究数据仓库中的数据清洗和集成技术,包括技术挑战、解决方案和最佳实践等方面的内容。

数据清洗技术数据清洗是数据仓库的一个必要步骤,其目的是清除错误、缺失、重复或不一致的数据。

数据清洗技术的挑战在于数据的多样性、复杂性和容量。

下面是一些数据清洗技术的解决方案:1. 基本规则技术:基本规则技术是使用标准公式、逻辑规则和数据格式来清楚数据的一些异常和错误。

例如:验证数据格式、检查数据的范围、正确性、唯一性等。

2. 人工审查和纠错:人工审查和纠错是通过人类的专业知识和经验来检查和纠正数据的一些异常和错误。

3. 数据合并和重复数据清除:这种技术是针对数据源之间存在相同记录的情况,旨在将重复的数据合并为一个记录。

4. 自动化数据清洗:自动化数据清洗是利用计算机算法自动检测和纠正数据中的异常和错误。

数据清洗引擎可以帮助加快清除大量数据的速度,减少人类工作的负担。

数据集成技术数据集成是将多个不同来源的数据集成到同一个仓库中的过程。

数据集成技术挑战在于数据的来源、格式和结构都不同。

下面是一些数据集成技术的解决方案:1. 数据格式化:数据源可能存储在多个格式中,例如 CSV,Excel,XML,JSON 等等。

只有将数据格式化后才能完成数据集成,这可以通过数据预处理工具或 ETL 工具来实现。

2. 数据映射和转换:对于不同来源的数据,常常需要进行数据映射和转换。

例如,将日期格式从 MM/DD/YYYY 格式转换为 YYYY-MM-DD 格式,或将货币从美元转换为欧元。

3. 数据集成应用程序接口(API):API 可以简化向外部系统请求数据的过程。

API 可以通过 REST、SOAP 等方式传输数据。

4. ETL 工具:“抽取、转换、加载”(ETL)是将数据从多个源聚合到数据仓库中的一种标准方法。

数据仓库设计与建模的数据清理与数据质量管理的数据清理与预处理的数据清洗与数据处理方法(六)

数据仓库设计与建模的数据清理与数据质量管理的数据清理与预处理的数据清洗与数据处理方法(六)

数据仓库设计与建模的数据清理与数据质量管理的数据清理与预处理的数据清洗与数据处理方法引言数据仓库设计与建模是当今企业中非常重要的一项工作。

为了保证数据仓库中的数据能够被正确、高效地利用,必要进行数据清理与预处理。

本文将探讨数据清洗与数据处理的方法,旨在帮助读者更好地理解数据仓库设计与建模过程中的数据质量管理。

一、数据清洗数据清洗是数据仓库设计与建模过程中不可或缺的一步,它的主要目的是消除数据中的错误、冗余和不一致性,提高数据质量。

数据清洗主要包括以下几个方面的工作。

1. 缺失值处理在数据仓库中,缺失值会对数据分析和挖掘造成极大的困扰。

处理缺失值的方法包括删除包含缺失值的行、将缺失值替换为平均值或中位数等等。

选择合适的缺失值处理方法取决于具体的数据和目标分析的需要。

2. 异常值处理异常值是指在数据中与其他值相比明显偏离的值。

异常值的存在可能会对数据质量产生不良影响,因此需要进行处理。

处理异常值的常用方法有删除、替换为均值或中位数等等。

然而,对于某些特殊情况,保留异常值可能会具有某种特定的业务意义。

3. 数据冗余处理数据冗余是指多个属性或多个数据项中存在相同或近似的信息。

冗余数据会增加数据仓库的存储空间和查询开销,并可能导致数据不一致。

因此,在数据仓库设计与建模的过程中要对数据冗余进行合理的处理,减少存储开销并保证数据一致性。

二、数据质量管理数据质量管理是数据仓库设计与建模中的关键环节,它对于保证数据仓库的数据质量具有重要作用。

数据质量管理的主要内容包括数据质量评估、数据质量度量和数据质量监控。

1. 数据质量评估数据质量评估是对数据质量进行全面评估和分析的过程。

在数据质量评估中,可以使用一些数据质量评估模型和指标来度量数据的准确性、完整性、一致性和可信度等方面的质量。

通过数据质量评估可以找出数据存在的问题,并为后续的数据清洗和预处理提供依据。

2. 数据质量度量数据质量度量是数据质量管理中的重要环节,它旨在对数据质量进行定量化的度量和评估。

数据仓库-数据清洗

数据仓库-数据清洗

数据仓库-数据清洗数据仓库-数据清洗定义ETL抽取(Extract)、转换(Transform)、加载(Load)ETL的核⼼价值在"T"所代表的转换部分数据清洗是对数据进⾏重新审查和校验的过程,⽬的在于删除重复信息、纠正存在的错误,并提供数据⼀致性为什么要进⾏数据清洗数据仓库中的数据是⾯向某⼀主题数据的集合,这些数据从多个业务系统中抽取⽽来,并且包含历史数据,因此就不可避免地出现某些数据是错误的,或者数据相互之间存在冲突的情况。

这种数据被称为脏数据。

按照⼀定的规则处理脏数据,这个过程就是数据清洗任务数据清洗的任务是过滤那些不符合要求的数据,将过滤的结果交给业务主管部门,确认是直接删除掉,还是修正之后再进⾏抽取。

脏数据类型残缺的数据这⼀类数据主要是⼀些应该有的信息缺失,如产品名称、客户名称、客户的区域信息,还包括业务系统中由于缺少外键约束所导致的主表与明细表不能匹配等。

错误的数据这⼀类错误产⽣的原因多是业务系统不够健全,在接收输⼊后没有进⾏合法性检查或检查不够严格,将有问题的数据直接写⼊后台数据库造成的,⽐如⽤字符串存储数字、超出合法的取值范围、⽇期格式不正确、⽇期越界等。

重复的数据源系统中相同的数据存在多份。

差异的数据本来具有同⼀业务含义的数据,因为来⾃不同的操作型数据源,造成数据不⼀致。

这时需要将⾮标准的数据转化为在⼀定程度上的标准化数据。

数据清洗原则优先对数据清洗处理流程进⾏分析和系统化的设计,针对数据的主要问题和特征,设计⼀系列数据对照表和数据清洗程序库的有效组合,以便⾯对不断变化的、形形⾊⾊的数据清洗问题。

清洗流程预处理对于⼤的数据加载⽂件,特别是新的⽂件和数据集合,要进⾏预先诊断和检测,不能贸然加载。

有时需要临时编写程序进⾏数据清洁检查标准化处理应⽤建于数据仓库内部的标准字典,对于地区名、⼈名、公司名、产品名、分类名以及各种编码信息进⾏标准化处理。

查重应⽤各种数据库查询技术和⼿段,避免引⼊重复数据;出错处理和修正将出错的记录和数据写⼊到⽇志⽂件,留待进⼀步处理。

数据仓库中的数据清洗和数据集成技术研究

数据仓库中的数据清洗和数据集成技术研究

数据仓库中的数据清洗和数据集成技术研究【导言】数据仓库是一个用于支撑决策和分析的大型数据存储和管理系统。

在数据仓库中,数据清洗和数据集成是数据管理的重要环节。

本文将探讨数据仓库中的数据清洗和数据集成技术的研究进展,并分为三个章节进行讨论。

【第一章数据清洗技术】数据清洗是指在数据仓库中对原始数据进行预处理,以确保数据质量和完整性。

数据清洗技术主要包括数据去重、数据纠错、数据填充和数据整合。

首先,数据去重是指在数据集成过程中,如果存在相同的数据记录,需要进行去重处理。

常用的数据去重技术有基于条件的去重和基于规则的去重。

基于条件的去重是指通过设定条件来判断是否为重复数据,而基于规则的去重是根据某些规则来判断是否为相同数据。

数据去重可以降低存储和计算资源的使用,提高数据查询效率。

其次,数据纠错是指在数据清洗过程中,对错误和不一致的数据进行修正和纠正。

在数据收集和整合过程中,由于数据源的不一致性或人为的误操作,会导致数据中出现错误的值或不一致的数据。

数据纠错技术可以通过数据规范化、数据验证和数据转换等方法,对错误数据进行纠正和修复。

另外,数据填充是指在数据集成过程中,对缺失的数据进行填充。

在数据仓库中,数据的完整性对于后续的数据分析和决策具有重要意义。

数据填充技术可以通过插值、回归和统计方法等手段,对缺失的数据进行预测和估算。

最后,数据整合是指将来自不同数据源的数据进行整合和统一。

数据仓库的数据源通常包括内部数据源和外部数据源,不同数据源的数据格式、结构和语义可能存在差异。

数据整合技术可以通过数据转换、数据映射和数据集成等手段,将不同数据源的数据进行整合和融合,以提供一致和统一的数据视图。

【第二章数据集成技术】数据集成是指将来自不同数据源的数据进行集成和融合的过程,使得数据仓库中的数据具备一致和完整的特性。

数据集成技术主要包括数据提取、数据转换和数据加载。

首先,数据提取是指从不同数据源中提取所需数据的过程。

数据仓库中的ETL技术与数据清洗

数据仓库中的ETL技术与数据清洗

数据仓库中的ETL技术与数据清洗在大数据时代,数据已经成为企业最重要的资产之一。

数据仓库在企业中扮演着重要的角色,它可以帮助企业集成数据,存储并管理大量的数据,为企业提供决策支持。

然而,数据的质量对数据仓库的建设和运营至关重要,而数据清洗和ETL技术则是数据仓库建设中必不可少的一部分。

一、数据清洗数据清洗是指对数据进行识别、纠错、去重、完整性检查等操作,以保证数据的准确性、完整性和一致性。

鉴于真实的世界数据来源可能来自不同的来源,不同的格式,不存在标准化的样本,数据清洗是一个艰巨的任务。

当清洗工作不彻底时,数据品质将会受到显著的危害。

数据清洗需要针对多个方面进行操作。

一方面,数据清洗需要对数据进行去重,保证数据的唯一性。

另一方面,对于缺失数据需要进行补充或剔除,保证完整性。

二、ETL技术ETL是Extract-Transform-Load的缩写,它是数据仓库中将数据从源系统中提取出来,并转换为可用的格式最后加载到数据仓库中的过程。

ETL技术是一个非常重要的技术,它是数据仓库中实现数据集成的核心技术之一。

ETL技术中包含三个部分:抽取、转换和加载。

在数据仓库中,数据集成任务往往需要从不同的数据源中提取数据,并根据业务需要进行数据转换。

最后,这些数据将被加载到数据仓库中,以便从中洞察企业的信息,取得更好的商业效益。

三、ETL技术与数据清洗的关系ETL技术通常比数据清洗更为复杂。

在大型企业中,数据源可能达到数百甚至数千,其中每一个数据源都有其本身的数据格式和结构。

这就需要ETL技术能够识别和处理这些不同的格式和结构,进而将这些数据转换为标准化的数据。

同时,ETL技术需要对数据进行整合和处理,以保证数据从多个数据源中提取后是一致的。

由于清洗任务是ETL技术中的一个关键任务,它的影响会在ETL技术的后续步骤中体现出来。

在ETL过程中,数据清洗往往是非常关键的一步。

尽管E和T在ETL中都包含了数据清洗的部分,但不同数据源的数据质量很有可能不同。

数据仓库的数据清洗和整合

数据仓库的数据清洗和整合

数据仓库的数据清洗和整合在当今信息爆炸的时代,企业和组织面对的数据量愈加庞大,为了更好地利用这些数据来支持决策和业务发展,数据仓库作为一种重要的数据存储和管理方式被广泛应用。

然而,数据仓库的建设离不开对数据的清洗和整合,本文将就数据仓库的数据清洗和整合进行探讨。

一、数据清洗数据清洗是指对原始数据进行处理,以去除其中的噪声、冗余和错误,使数据变得更加规范和准确。

数据清洗主要包括以下几个步骤:1. 数据去重在数据收集的过程中,由于数据来源的不同和数据输入的错误等原因,可能会造成重复的数据。

因此,数据去重是数据清洗的首要步骤。

可以通过使用数据库的去重功能或编写程序来实现数据去重。

2. 缺失值处理原始数据中可能存在缺失值,即某些数据项没有记录或记录不完整。

在数据清洗过程中,需要根据具体情况选择合适的方法来处理缺失值,常见的方法有删除缺失值、插值法和替代值法等。

3. 错误值处理原始数据中可能存在错误值,即不符合预期的数据。

错误值可能是由于数据输入错误、设备故障或人为操作等原因导致的。

在数据清洗过程中,需要对错误值进行检测和修复,可以通过数据验证、规则检测和异常值检测等方法来实现。

4. 数据格式统一原始数据中的数据格式可能各不相同,包括日期、时间、货币、单位等。

为了方便后续的数据整合和分析,需要对数据格式进行统一化处理,使得数据的格式一致。

二、数据整合数据整合是指将不同数据源的数据进行统一编码和整合,以便于进行数据分析和业务决策。

数据整合主要包括以下几个步骤:1. 数据集成数据集成是将来自不同数据源的数据进行整合的过程,可以通过数据库的联接操作、ETL工具等方式来实现。

在数据集成过程中,需要考虑数据格式的兼容性、数据元素的匹配和数据冲突的解决等问题。

2. 数据转换数据转换是将数据从源数据格式转换为目标数据格式的过程,包括数据的清洗、重构和映射等操作。

数据转换可以根据具体需求进行不同的处理,例如将日期时间格式转换为字符串格式、将货币转换为统一单位等。

数据仓库中的数据清洗技术研究

数据仓库中的数据清洗技术研究

数据仓库中的数据清洗技术研究随着互联网的发展以及各种大数据应用的兴起,数据清洗技术也愈发重要。

在数据仓库的场景下,数据清洗技术更是成为了保证数据质量和数据分析结果准确性的重要一环。

在此我们将就数据仓库中的数据清洗技术进行研究,分析其现状与未来的发展趋势。

一、数据清洗的概念所谓数据清洗,就是指在保留数据完整性的前提下,从原始数据中去除掉无用、重复以及不符合标准的数据。

在数据仓库中,数据清洗更加注重数据的准确性和一致性。

数据清洗所要达到的目的就是让清洗后的数据成为准确、可靠、组织良好的数据集,以方便后续的数据分析、挖掘、建模等工作。

同时,数据清洗也可以帮助我们发现并纠正数据质量问题,提高数据质量和数据的应用价值。

二、数据清洗的流程在数据仓库中,进行数据清洗的流程一般可以分为以下几个步骤:1. 数据收集首先我们需要收集原始数据,这些数据可能来自于各种不同类型的数据源,包括数据库、文件、传感器等等。

在收集数据的过程中,需要注意保证原始数据的完整性和一致性,以免影响后面的数据清洗工作。

2. 数据审查数据审查主要是对原始数据进行初步的审查和检查,以确定数据质量问题的存在。

在进行数据审查时需要注意以下几点:1)检查数据格式,确保数据都符合数据规范和标准。

2)检查数据项,确保数据项之间的关系和定义都正确无误。

3)检查数据的完整性,确保数据集中没有缺失数据和重复数据。

4)检查数据的准确性,确保数据项的值和实际情况是一致的。

3. 数据筛选数据筛选主要是针对数据集中存在的无用数据、重复数据以及不一致数据进行去除。

这一步需要根据具体场景确定筛选标准,以保留最有价值的数据和信息。

数据筛选的方法有很多种,可以采用手动筛选或者自动化筛选,根据需要进行选择。

4. 数据清洗在进行数据清洗时需要注意以下几点:1)去除重复数据:在数据集中清除重复行或列的数据,确保数据集唯一。

2)对缺失数据进行填充:数据项缺失时按照规则填充对应的值,以确保数据完整。

数据仓库中的数据清洗算法研究

数据仓库中的数据清洗算法研究

数据仓库中的数据清洗算法研究数据清洗是数据仓库建设中至关重要的环节。

在数据仓库中,数据清洗是指通过检测、验证和纠正数据错误、不一致性和不完整性等问题,以确保数据的准确性、一致性和完整性。

因此,研究和应用高效的数据清洗算法对于数据仓库的成功建设至关重要。

本文将关注数据仓库中的数据清洗算法,并探讨其核心内容和应用领域。

一、数据清洗的核心内容数据仓库中的数据清洗主要包括数据抽取、数据验证、数据纠正和数据一致性处理等环节。

1. 数据抽取:数据抽取是指从源系统中获取数据并将其引入数据仓库的过程。

在数据抽取过程中,需要注意数据的准确性和完整性,并进行数据规范化和去重等操作,以保证数据的质量。

2. 数据验证:数据验证是指对抽取的数据进行验证,确保数据满足预定义的数据质量规则。

数据验证通常包括数据类型检查、数据范围检查、数据唯一性检查等。

通过数据验证可以发现数据中的错误和异常,为后续的数据纠正和一致性处理提供基础。

3. 数据纠正:数据纠正是指对不符合数据质量规则的数据进行纠正。

数据纠正的方法主要包括数据替换、数据插入、数据删除等操作。

在数据纠正过程中,需要考虑数据纠正的准确性和效率,避免对数据造成不必要的改动。

4. 数据一致性处理:数据一致性处理是指对数据中的不一致性进行处理,保证数据在不同维度上的一致性。

数据一致性处理通常包括数据合并、数据聚合、数据转换等操作,以满足数据仓库中的一致性要求。

二、数据清洗算法的应用领域数据清洗算法在各个行业和领域都有广泛的应用,其中包括以下几个方面:1. 金融领域:在金融领域,大量的数据需要进行清洗和处理,以用于风险评估、信用评分等任务。

数据清洗算法可以帮助金融机构清理和纠正数据错误,提高数据的准确性和可信度。

2. 零售行业:在零售行业,数据清洗算法可以用于清洗销售数据、库存数据等,以帮助企业了解销售情况、管理库存,并提供决策支持。

3. 健康医疗领域:在健康医疗领域,数据清洗算法可以用于清洗和处理医疗数据,以提供精确的医疗诊断、预测疾病风险等服务。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据仓库中的数据清洗刘玉① 陈金雄②①福州大学物理与信息工程学院,350002,福州市工业路523号②南京军区福州总医院,350025,福州市西二环北路156号关键词 数据清洗 二次清洗 数据仓库摘 要 以病种分析为例,介绍了在数据仓库中数据清洗的方法——二次清洗法,二次清洗完成的工作是不同的,第一次的清洗主要负责清洗源数据中的“脏数据”,第二次清洗则负责维度的提取。

1 引言随着时间的发展,医院信息系统中积累了大量的业务数据,越来越多的医院选择建立数据仓库以提取其中有用的信息,用于分析和决策。

病种分析就是当前比较热门的主题,可以通过病种分析主题考察单病种的治愈质量、平均费用、平均住院日及单病种的病人构成情况,有利于单病种的合理限价,提高医院的竞争力。

病种分析的星型结构见图1。

病种分析中涉及到众多的数据,数据的准确与否直接关系着决策质量的好坏。

为了能够准确的决策,必须对进入数据仓库的数据进行清洗。

图1 病种分析主题的星型结构(事实表中红色的字段为其度量)由于数据的清洗需要占用系统较多的资源,为了不影响“军卫一号”日常的处理速度,同时保证数据尽可能的准确,我们采用了“二次清洗”的方法:将源数据抽取至数据缓冲区时进行第一次的数据清洗;将数据缓冲区的数据送入数据仓库时进行第二次的清洗,两次清洗的作用范围是不同的[1]。

清洗的过程见图2。

事实表 SYM_IDAGE_IDADD_IDSEX_IDCHARGE_IDCHARGE_DEPTDISCHARGE_DETPDOCTOR_ID数量平均住院日平均费用科室维 DEPT ID 地理维 ADD ID 病种维SYM ID 费别维 CHARGE ID 医生维 DOCTOR ID 性别维 SEX ID 年龄维 AGE ID图2 数据清洗的过程2 第一次清洗病种分析涉及到“军卫一号”中的5张相互关联的业务数据表,14张公用字典表,第一次清洗主要是负责清洗源表中的“脏数据”,本次清洗在数据缓冲区中进行。

根据“脏数据”种类的不同,有下面四种清洗的途径。

2.1 业务数据表间关联的清洗[2] 病种分析主题中所需要的源数据来自“军卫一号”中的不同的五张表:诊断分类记录DIAGNOSTIC_CATEGORY、诊断对照记录DIAG_COMPARING、诊断记录DIAGNOSIS、住院病人主记录PAT_VISIT、门诊诊断记录CLINIC_DIAGNOSIS,这五张表可以通过相应的字段相互关联。

这时,数据清洗要做的就是检查这些表间是否能够一对一的关联起来;若不能关联,则必须找出不能关联的记录,对这些记录中的相关字段进行清洗。

由于可以通过诊断分类记录中的键值与其余四张表中相同的字段相关联。

因此,我们选定诊断分类记录作为主表,其余的四张表作为辅表,利用sql语句中的left outer join 来确定不能与主表建立关联的辅表中的记录。

诊断记录通过病人标识PATIENT_ID、病人本次住院标识VISIT_ID和诊断序号DIAGNOSIS_NO与诊断记录中相对应的字段相关联,以获取病种的治疗天数、诊断质量、诊断类型。

两表间的关联程度,可通过如下sql语句来实现:通过上述的sql语句,可以查看诊断分类记录中不能与住院病人主记录相关联的记录。

select * from(select a.*,b.patient_id as pid,b.visit_id as vid,b.diagnosis_no as diagno frommedrec.diagnostic_category a left outer join medrec.diagnosis b ona.patient_id=b.patient_id and a.visit_id=b.visit_id and a.diagsis_no=b.diagnosis_no) tt数据缓冲区数据仓库 军卫一号对这些不能关联的记录,不能马上将其判断为“脏数据”,还必须做具体的考虑。

由于诊断记录是用来记录住院病人的诊断情况的,而诊断分类记录中的记录既包含住院病人又包含门诊病人的诊断分类情况,因此,诊断分类记录中不能与诊断记录关联的记录,有可能是与门诊诊断记录CLINIC_DIAGNOSIS相关联的。

这种情况下,应再次利用left outer join 语句,将上面的查询结果作为左表,门诊诊断记录作为右表,在删除诊断分类记录中与门诊诊断记录相关联的记录后的记录才是真正的“脏数据”。

对于这些“脏数据”的处理,我们在与诊断记录中添加了一条“默认记录”,当诊断分类记录不能关联到诊断记录时,则自动关联“默认记录”中的数据。

“默认记录”中的具体数,采用极值法获得,即将合法的诊断记录中各字段出现频率最高的值作为“默认记录”中相应字段的默认值。

2.2 业务数据表与公共数据字典间的关联 理论上,“军卫一号”中业务数据表凡是涉及到公用数据字典的字段,都必须将数据业务表中的相应字段作为外键与数据字典表关联,如病人住院主记录中的出院科室DEPT_DISCHARGE_FROM作为外键关联科室字典DEPT_DICT 中的科室代码DEPT_CODE。

但系统为了性能的考虑,在一定程度上舍弃外键约束,导致了数据的不一致。

对于这种类型的数据清洗,首先应从业务表中提取出不能与公共字典对应的记录,再制定相应的规则对其进行转换。

同样以病人住院主记录中的出院科室DEPT_DISCHARGE_FROM为例说明,这种类型数据清洗的过程:(1)提取病人住院主记录中出院科室不能与科室字典中的科室代码对应的记录,可利用sql语句的not in语句来找出出院科室不符合科室字典要求的记录:select * from pat_visit where dept_discharge_from not in (select dept_code from dept_dict)(2) 制定转换规则,对步骤(1)中得到的数据进行清洗:a.在科室字典中新增一条记录,令科室代码DEPT_CODE=“FF”,科室名称DEPT_NAME=“其他科室”;b.病人住院主记录中不符合要求的出院科室全部更新为“FF”,将其归为“其他科室”。

2.3 数据空值的清洗 对于空值的处理是数据仓库中一个常见问题,是将它作为脏数据还是作为特定一种维成员,应根据实际情况进行判断。

一般的做法是视表中空值字段有无分析价值而定。

2.3.1 对于没有分析价值的字段 如病人住院主记录中的尸检标志、联系人姓名、联系人邮编等属性,在病种分析主题中没有分析的价值,可直接忽略,不进行清洗。

2.3.2 对于有分析价值的数据 必须根据实际情况对空值进行判断,转化为特定的值。

如,病人住院主记录中的出入院科室等属性,主要用于构成病种分析主题中科室维度的外键,具有分析价值,必须保留,若出入院科室代码为空,则将其转换为“FF”(对应于科室字典中的“其他科室”)。

对于其他为空的有分析价值的属性,也可以采取类似的转换办法,给空值字段赋予特定的值。

2.4 不符合逻辑要求的数据 所谓不符合逻辑要求的数据,指的是不符合现实规律的数据,这种类型的“脏数据”主要集中在涉及到日期的字段。

如病种分析中的度量之一——某一病种的住院天数。

“军卫”中的表没有直接涉及到住院天数,需从病人住院主记录中提取病人入院和出院时间,将两字段相减而得到。

为了分析的精确,就必须对病人的出入院的日期进行两方面的逻辑检验:病人的出入院时间是否小于系统当前时间、病人的出院时间是否晚于病人的入院时间。

对于不符合要求的数据,采用“均值法”进行替换,即计算出符合逻辑要求的记录的平均住院天数,将此平均住院天数赋给不符合要求的记录。

3 第二次的数据清洗第二次的数据清洗的主要任务是从经过第一次清洗后的源表中抽取所需要的维度信息。

病种分析中,所涉及到的维度除了科室维、费别维可以分别利用科室字典和费别字典直接得到外,其他的维度时间维、病人年龄维、地理维、病种维等维度均要从源表中抽取相应的字段再经过转换而得到。

一般来说,维度都是具有层次结构的。

因此,按维度层次的清洗顺序,可将维度的清洗分为三种方法:正向清洗、反向清洗及两种的综合。

所谓的正向清洗是指对有层次维度,先取得父维度的信息,再根据父维度信息提取子维度的信息,这样做的好处是可以逐步缩小清洗的范围。

反向清洗是指根据子维度的信息,向上查找父维度的信息,适合于子维度已知且子维度仅属于一个父维度的情况。

而综合清洗则是指两者的综合。

3.1 反向清洗 以病种维为例,说明病种维建立的过程。

病种维采用层次结构,按病种大类、病种中类及疾病名称构成父子层次维度,且一种疾病只对应唯一的病种大类和病种中类。

源表中没有病种大类及病种中类的字段,诊断分类记录的诊断代码DIAGNOSIS_CODE,即疾病代码是按ICD9编码的。

因此,为了获取病种大类和中类,必须新建一张按ICD9编码的病种分类字典,将诊断代码DIAGNOSIS_CODE作为外键与病种分类字典相连。

病种分类字典的结构见表1。

表1 病种分类字典的表结构字段名称 类型 长度说明 ID NUMBER 4 主键,自动增量填写 SYM_BIG_TYPE STRING 20 病种大类,按ICD9编码 SYM_MID_TYPE STRING 20 病种中类,按ICD9编码DIGNOSIS_CODE NUMBER 10 与诊断分类记录中的DIAGNOSIS_CODE相关联获取病种大类与中类的办法是,根据诊断代码,到病种分类字典里取得病种大类与病种中类。

同时,通过诊断代码到“军卫”中的诊断字典DIAGNOSIS_DICT中获取疾病名称。

3.2 综合清洗 以地理维的清洗为例,说明维度综合清洗的过程。

地理维用于存储病人所在地的信息,源表中没有属性直接指明病人的地理信息,但可以通过对病人住院主记录中的通信地址MAILING_ADDRESS的清洗而得到。

第一次的清洗中已将病人住院主记录中的通信地址MAILING_ADDRESS为空的记录用特定值代替(该指定值为医院所在地)。

地理维分为省、市、区/县三个层次。

其中省为父维度,市为省的子维度又同时为区/县的父维度,而区/县则为市的子维度,即一个省中包含若干个市,一个市中又包含若干个区/县。

为了从通信地址中提取这三个层次的信息,需要在数据缓冲区增加一张地区层次字典LEVEL_AREA_DICT,表结构见表2。

表2 地区层次字典的表结构字段名称 类型 长度说明ID NUMBER 4 主键,自动增量填写PROVINCE STRING 20 记录各省的信息CITY STRING 20 记录各省中市的信息,一个市只能对应一个省COUNTY NUMBER 10 记录中各市中区/县的信息,一个区/县只对应一个市对地理维度的提取,先采用正向清洗的办法,即对每条记录中的通信地址在地区层次字典中进行三次遍历,依次得到省、市、区/县的层次维度信息。

相关文档
最新文档