数据仓库质量保证概述分析

2023-12-06 10:48

本文主要是介绍数据仓库质量保证概述分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1     概述

随着用户对数据分析需求的增长,数据仓库信息质量变得越来越重要,质量差的数据不仅可能对企业经营带来负面影响,而且会使用户觉得所产生的报表不可信赖,更重要的是错误的数据容易误导用户,从而造成管理决策的失误,会造成客户流失。

高质量的决策必然依赖于高质量的数据,为了避免得出错误的结论,数据的正确性是至关重要的,否则就会出现所谓的垃圾进,垃圾出(garbage in ,garbage out)的现象。但是对于一个数据质量要求比较高并且涉及金融行业的公司来说,不仅要求源头数据的清洁,更要求数据再清洗过程保证数据的完整性,正确性和一致性,即关注ETL流程不会导致数据质量的损失,能够把数据质量能够与本公司的基本业务规则生成新的数据质量稽核规则将会是一个有意义的尝试,形成领域相关的数据质量规则将会是受益无穷的。

2     数据质量概念

数据仓库中数据质量度量最主要的几个指标是

l   正确性 数据源中实际数据值与假定正确数据值的一致程度

l   完整性 数据源中需要数值的字段中无值缺失的程度

l   一致性 数据源中数据对一组约束的满足程度

l   唯一性 数据源中记录以及编码是否唯一

l   适时性 在所要求的或指定的时间提供一个或多个数据项的程度

l   有效性 维护的数据足够严格以满足分类准则的接受要求

数据质量反映在多个方面,包括数据采集方面的质量,数据转换方面的质量,数据存储方面的质量以及数据应用方面的质量。各阶段数据特征的不同,其数据质量要求也不尽相同,数据采集方面侧重于对单数据源的完整,适时性方面的数据质量要求,数据转换方面侧重于对数据正确性,合法性,一致性等方面的数据质量要求,数据存储阶段侧重于对多数据源数据集成性的数据质量要求,而数据应用方面更侧重于对数据有效性方面的要求。

在每一个数据质量的方面,需要对不同的对象进行质量约束定义,包括数据库约束规则,业务约束规则,统计分析规则,隐形约束规则。

数据质量的实施离不开四大要素:数据质量的评估对象,数据质量的评估阶段,评估指标,评估规则。如选定评估对象为用户资料,评估的阶段可以分为DWDDWST,选定数据完整性,有效性作为评估指标,针对完整性指标,可以设定一个评估规则:USERID不为空,EMAIL不为空,针对有效性指标,可以设定一个评估指标:账户对应的身份证号为15位或者18位。

3     数据质量工具

3.1    Data Cleaner

其主页地址http://datacleaner.eobjects.org/,是网上唯一一款只专注数据质量的开源工具,其他的数据工具都是数据仓库ETL整个解决方案的一部分,对这个款工具的介绍有助于帮助我们理解业界针对数据质量所采取的常规方法。

3.1.1      组件

Data Cleaner主要有两部分组成:数据探查(Data Profiling)和数据验证(Data Validating),其中数据探查主要是针对源数据的数据概貌进行统计,而数据验证则是根据用户对数据的理解定义出的数据规则进行数据验证,以找出不满足数据规则的异常数据。这两个部分的在数据仓库中的阶段可以用其官方的信息流动图来表示。

从图中可以看出,数据探查主要是针对源头的数据进行数据质量的检查,而数据验证主要是针对ETL过程中产生的数据质量进行校验。

1.1.1      数据探查

此工具的数据探查主要有以下几个方面:标准度量,数值分析,字符串分析,模式匹配字符串,值分布。

标准度量包括表的总记录数,表的相异记录数,某个字段的为NULL的数目,某个字段为空字符的数目;

数据分析主要针对数据型字段,分析字段的最大值,最小值,和值,平均值,标准差和方差,以此可以进行3sigma质量保证。

可以进行强大的模式匹配规则找到符合某个模式的字符串,如Email字段的匹配。

值分布主要是分析某个字段值中前N个最频繁出现的值和后N个最不频繁出现的值。

1.1.2      数据验证

数据验证的目的是发现异常数据的过程,通过设立规则,把不满足规则的数据找出来,提供给用户进行下一步的数据质量分析。此工具的数据验证包含下面几个方面:字段的NOT NULL检验,字段值域检验,基于正则表达式的字段检验,基于脚本的复杂规则(如关联字段)的检验。

NOT  NULL 检验是检查数据中某个字段有NULL值出现就设为脏数据。

通过设定某个字段的取值范围,找出不在此字段规定范围的数据设为脏数据。

通过模式匹配找出不满足模式的记录,常常用于用户手机和电话号码,IP地址,EmailURL的检验。

提供了扩展性强的基于脚本的规则检验,用户可以编写Javascript规则来实现复杂的校验,如一个字段依赖于另一个已知字段,这时可以通过新建规则来进行验证。

1.1.3      总结

此工具已经把当前数据质量涉及的内容基本已经包括,并且可以把验证规则以JOB的方式来执行。此工具解决的数据质量(也是其他数据仓库质量工具的共同特点)主要是针对业务数据本身的错误或者不一致性,更多关注于字段监控,作为整体的解决方案,没有针对某个行业的业务规则定义的数据校验是无可厚非的,但已经包含了数据质量检测工具基本功能。

1.2    Talent Open Studio

Talendhttp://www.talend.com/)是第一家针对的数据集成工具市场的ETL(数据的提取Extract、传输Transform、载入Load)开源软件供应商。其提供的开源软件以套件的形式向外提供,数据质量工具也是其中的一部分。从其套件的规模和覆盖的程度上看,在数据集中领域比较庞大和全面。相对于kettle的最大优势应该就是在于其数据质量上的单独考虑。

Talend的解决方案最大的特色是所有的组件都是可视化拖曳编程来形成数据流操作,这也是数据集中领域解决方案统一的表现形式。较常规的数据质量解决方案来说,其少了数据探查方面的组件。其对应的数据质量的组件不多,并且好多涉及到数据操作。

l tAddCRCRow

基于一个字段或者多个字段来添加代理主键

l tFuzzMatch 模糊匹配

根据字符串的距离来匹配

l tIntervalMatch 区间匹配

把一个值与另一个区间值进行匹配,并返回相关信息

l tReplaceList 替换

寻找给定的字符串并替换成相应的字符串

l tUniqueRow 消除重复

比较实体,并删除第一个重复记录

Talend提供的数据质量工具功能比较有限,而且倾向于数据转换的功能。

1.3    Informatic Data Quality

 Informatica提供产品级的解决方案,数据质量的控制和监控只是其产品解决方案的一部分,其提供的产品包含了数据的清洗,装换和导入以及此过程中的质量控制。其质量控制的部分包含了数据探查工作和数据质量工作。

1.3.1      数据质量生命周期模型

其提出的数据质量生命周期模型是一个迭代的过程,并形成一个闭环系统,主要包含如下部分。

l 识别和度量数据质量

按照数据质量的指标来理解现有的数据。没有数据质量评估这一步将会影响下一步的数据质量的策略,给数据质量改进提供了初步的参考。

l 确定数据质量规则和目标

根据数据质量的评估来确定满足数据质量指标的数据质量规则和目标。

l 设计数据质量改进过程

根据数据规则来处理数据,包括数据标准化,除噪等

l 实现质量改进过程

当数据标准化之后,下一步就是去除重复数据定义的数据规则。

l 根据设定的目标检测数据质量

通过监控当前的数据质量来验证是否已经满足前期定义的质量规则和目标

1.3.2      数据质量控制函数

Informatica数据质量控制函数可以分为两种:数据分析函数和数据增强函数,数据分析和数据增强函数可以细分成四个组成部分。

数据分析函数评估数据的完整性和一致性。

数据匹配函数评估数据的重复性,集成性和正确性。

数据标准化函数用来提高数据的完整性和一致性。

数据统一函数用来去除重复数据,删除错误数据。

1.3.3      数据质量计划

一个数据质量计划包含三个部分:输入,操作和输出。

输入可以是文本文件或者数据库表,操作指的是一些分析或者增强方法,输出可以是文件,数据库表或者报告。操作环节的主要目的如下。

类别

目标

子类别

适用组件

 

完整性

 

量化缺失数据的比例

字段的完整性

Missing values

记录的完整性

Rule Based Analyzer

数据元素的完整性

Token Labeller

匹配性

与期望的字段样式的匹配程度

 

Token Labeller

Character Labeller

 

一致性

分析多个字段间相关程度

比较两个字段的值

Merge & Token Labeller

使用验证规则

Rule Based Analyzer

1.3.4      主要分析组件简介

l Character Labeller字母标记

逐个字母的分析数据字段的值来确定字段对应的类型。

l Token Labeller Token标记

逐个Token分析出每个Token代表是单词,数字还是编码

l Rule Based Analyzer基于规则的分析器

用判断语句建立复杂的规则和条件,并可使用用户自定义函数

l Missing Values 缺失值

寻找字段缺失值的频率

l Merge 合并

按照指定顺序和分隔符来把多个字段合并成一个字段

l Range Counter范围计数器

按照指定的间隔统计落在每个间隔区间内的记录数

l Aggragate 聚合

统计某个字段的出现次数

另外还有一些类似数据转换的函数与数据质量的探查关系不大就没有就没有一一列出。

1.4    其他

数据质量是各大数据集成厂商比较关注的一方面,往往以数据质量探查和数据质量验证工具作为组件集成到其原先的数据集成平台,达到数据集成过程中的数据质量的监控和改进。上述则选择性的列出了数据质量工具,包括两个开源和一个商业。针对商业软件各大涉及到数据集成的公司都会有相应的数据质量支撑工具,比如IBMORACLE,其功能也包含数据探查,数据规则验证等常规。出色的部分主要可能是操作的便利性和准确性方面,还有可能针对某个或者几个行业建立起一整套的总结出来的规则验证机制,如Trillium软件号称有超过几十万上百网的领域规则供使用。

针对目前的数据仓库数据质量刚提上日程这个阶段来说,Data Cleaner有很大的参考价值,如果Data Cleaner结合了流程化的操作界面的话,其基本功能已相当完善。

2     数据质量检测方法

2.1    基于数据库规则的检查

主键唯一性,实体完整性,字段非空检查

2.2    业务规则的约束

单字段业务规则(付款金额为负数),多字段业务规则(支付时间>创建时间,修改时间>创建时间), EmailIP地址和不合法,业务恒等式不成立

2.3    数据描述和统计

值分析用于对数据进行基本的探查,包括空值数目,唯一值数目,空字符串数目,零值,正值,负值的统计。

描述性统计分析主要是研究数据的数字特征,如最大值,最小值,平均值,方差等信息,并按照3sigma质量控制理论进行控制

 

 

这篇关于数据仓库质量保证概述分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/461552

相关文章

Spring事务中@Transactional注解不生效的原因分析与解决

《Spring事务中@Transactional注解不生效的原因分析与解决》在Spring框架中,@Transactional注解是管理数据库事务的核心方式,本文将深入分析事务自调用的底层原理,解释为... 目录1. 引言2. 事务自调用问题重现2.1 示例代码2.2 问题现象3. 为什么事务自调用会失效3

找不到Anaconda prompt终端的原因分析及解决方案

《找不到Anacondaprompt终端的原因分析及解决方案》因为anaconda还没有初始化,在安装anaconda的过程中,有一行是否要添加anaconda到菜单目录中,由于没有勾选,导致没有菜... 目录问题原因问http://www.chinasem.cn题解决安装了 Anaconda 却找不到 An

Spring定时任务只执行一次的原因分析与解决方案

《Spring定时任务只执行一次的原因分析与解决方案》在使用Spring的@Scheduled定时任务时,你是否遇到过任务只执行一次,后续不再触发的情况?这种情况可能由多种原因导致,如未启用调度、线程... 目录1. 问题背景2. Spring定时任务的基本用法3. 为什么定时任务只执行一次?3.1 未启用

C++ 各种map特点对比分析

《C++各种map特点对比分析》文章比较了C++中不同类型的map(如std::map,std::unordered_map,std::multimap,std::unordered_multima... 目录特点比较C++ 示例代码 ​​​​​​代码解释特点比较1. std::map底层实现:基于红黑

Spring、Spring Boot、Spring Cloud 的区别与联系分析

《Spring、SpringBoot、SpringCloud的区别与联系分析》Spring、SpringBoot和SpringCloud是Java开发中常用的框架,分别针对企业级应用开发、快速开... 目录1. Spring 框架2. Spring Boot3. Spring Cloud总结1. Sprin

Spring 中 BeanFactoryPostProcessor 的作用和示例源码分析

《Spring中BeanFactoryPostProcessor的作用和示例源码分析》Spring的BeanFactoryPostProcessor是容器初始化的扩展接口,允许在Bean实例化前... 目录一、概览1. 核心定位2. 核心功能详解3. 关键特性二、Spring 内置的 BeanFactory

MyBatis-Plus中Service接口的lambdaUpdate用法及实例分析

《MyBatis-Plus中Service接口的lambdaUpdate用法及实例分析》本文将详细讲解MyBatis-Plus中的lambdaUpdate用法,并提供丰富的案例来帮助读者更好地理解和应... 目录深入探索MyBATis-Plus中Service接口的lambdaUpdate用法及示例案例背景

MyBatis-Plus中静态工具Db的多种用法及实例分析

《MyBatis-Plus中静态工具Db的多种用法及实例分析》本文将详细讲解MyBatis-Plus中静态工具Db的各种用法,并结合具体案例进行演示和说明,具有很好的参考价值,希望对大家有所帮助,如有... 目录MyBATis-Plus中静态工具Db的多种用法及实例案例背景使用静态工具Db进行数据库操作插入

Go使用pprof进行CPU,内存和阻塞情况分析

《Go使用pprof进行CPU,内存和阻塞情况分析》Go语言提供了强大的pprof工具,用于分析CPU、内存、Goroutine阻塞等性能问题,帮助开发者优化程序,提高运行效率,下面我们就来深入了解下... 目录1. pprof 介绍2. 快速上手:启用 pprof3. CPU Profiling:分析 C

MySQL表锁、页面锁和行锁的作用及其优缺点对比分析

《MySQL表锁、页面锁和行锁的作用及其优缺点对比分析》MySQL中的表锁、页面锁和行锁各有特点,适用于不同的场景,表锁锁定整个表,适用于批量操作和MyISAM存储引擎,页面锁锁定数据页,适用于旧版本... 目录1. 表锁(Table Lock)2. 页面锁(Page Lock)3. 行锁(Row Lock