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

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

相关文章

MyBatis Plus 中 update_time 字段自动填充失效的原因分析及解决方案(最新整理)

《MyBatisPlus中update_time字段自动填充失效的原因分析及解决方案(最新整理)》在使用MyBatisPlus时,通常我们会在数据库表中设置create_time和update... 目录前言一、问题现象二、原因分析三、总结:常见原因与解决方法对照表四、推荐写法前言在使用 MyBATis

Python主动抛出异常的各种用法和场景分析

《Python主动抛出异常的各种用法和场景分析》在Python中,我们不仅可以捕获和处理异常,还可以主动抛出异常,也就是以类的方式自定义错误的类型和提示信息,这在编程中非常有用,下面我将详细解释主动抛... 目录一、为什么要主动抛出异常?二、基本语法:raise关键字基本示例三、raise的多种用法1. 抛

github打不开的问题分析及解决

《github打不开的问题分析及解决》:本文主要介绍github打不开的问题分析及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、找到github.com域名解析的ip地址二、找到github.global.ssl.fastly.net网址解析的ip地址三

Mysql的主从同步/复制的原理分析

《Mysql的主从同步/复制的原理分析》:本文主要介绍Mysql的主从同步/复制的原理分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录为什么要主从同步?mysql主从同步架构有哪些?Mysql主从复制的原理/整体流程级联复制架构为什么好?Mysql主从复制注意

java -jar命令运行 jar包时运行外部依赖jar包的场景分析

《java-jar命令运行jar包时运行外部依赖jar包的场景分析》:本文主要介绍java-jar命令运行jar包时运行外部依赖jar包的场景分析,本文给大家介绍的非常详细,对大家的学习或工作... 目录Java -jar命令运行 jar包时如何运行外部依赖jar包场景:解决:方法一、启动参数添加: -Xb

Apache 高级配置实战之从连接保持到日志分析的完整指南

《Apache高级配置实战之从连接保持到日志分析的完整指南》本文带你从连接保持优化开始,一路走到访问控制和日志管理,最后用AWStats来分析网站数据,对Apache配置日志分析相关知识感兴趣的朋友... 目录Apache 高级配置实战:从连接保持到日志分析的完整指南前言 一、Apache 连接保持 - 性

Linux中的more 和 less区别对比分析

《Linux中的more和less区别对比分析》在Linux/Unix系统中,more和less都是用于分页查看文本文件的命令,但less是more的增强版,功能更强大,:本文主要介绍Linu... 目录1. 基础功能对比2. 常用操作对比less 的操作3. 实际使用示例4. 为什么推荐 less?5.

spring-gateway filters添加自定义过滤器实现流程分析(可插拔)

《spring-gatewayfilters添加自定义过滤器实现流程分析(可插拔)》:本文主要介绍spring-gatewayfilters添加自定义过滤器实现流程分析(可插拔),本文通过实例图... 目录需求背景需求拆解设计流程及作用域逻辑处理代码逻辑需求背景公司要求,通过公司网络代理访问的请求需要做请

Java集成Onlyoffice的示例代码及场景分析

《Java集成Onlyoffice的示例代码及场景分析》:本文主要介绍Java集成Onlyoffice的示例代码及场景分析,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 需求场景:实现文档的在线编辑,团队协作总结:两个接口 + 前端页面 + 配置项接口1:一个接口,将o

IDEA下"File is read-only"可能原因分析及"找不到或无法加载主类"的问题

《IDEA下Fileisread-only可能原因分析及找不到或无法加载主类的问题》:本文主要介绍IDEA下Fileisread-only可能原因分析及找不到或无法加载主类的问题,具有很好的参... 目录1.File is read-only”可能原因2.“找不到或无法加载主类”问题的解决总结1.File