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

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

相关文章

python panda库从基础到高级操作分析

《pythonpanda库从基础到高级操作分析》本文介绍了Pandas库的核心功能,包括处理结构化数据的Series和DataFrame数据结构,数据读取、清洗、分组聚合、合并、时间序列分析及大数据... 目录1. Pandas 概述2. 基本操作:数据读取与查看3. 索引操作:精准定位数据4. Group

MySQL中EXISTS与IN用法使用与对比分析

《MySQL中EXISTS与IN用法使用与对比分析》在MySQL中,EXISTS和IN都用于子查询中根据另一个查询的结果来过滤主查询的记录,本文将基于工作原理、效率和应用场景进行全面对比... 目录一、基本用法详解1. IN 运算符2. EXISTS 运算符二、EXISTS 与 IN 的选择策略三、性能对比

MySQL 内存使用率常用分析语句

《MySQL内存使用率常用分析语句》用户整理了MySQL内存占用过高的分析方法,涵盖操作系统层确认及数据库层bufferpool、内存模块差值、线程状态、performance_schema性能数据... 目录一、 OS层二、 DB层1. 全局情况2. 内存占js用详情最近连续遇到mysql内存占用过高导致

深度解析Nginx日志分析与499状态码问题解决

《深度解析Nginx日志分析与499状态码问题解决》在Web服务器运维和性能优化过程中,Nginx日志是排查问题的重要依据,本文将围绕Nginx日志分析、499状态码的成因、排查方法及解决方案展开讨论... 目录前言1. Nginx日志基础1.1 Nginx日志存放位置1.2 Nginx日志格式2. 499

Olingo分析和实践之EDM 辅助序列化器详解(最佳实践)

《Olingo分析和实践之EDM辅助序列化器详解(最佳实践)》EDM辅助序列化器是ApacheOlingoOData框架中无需完整EDM模型的智能序列化工具,通过运行时类型推断实现灵活数据转换,适用... 目录概念与定义什么是 EDM 辅助序列化器?核心概念设计目标核心特点1. EDM 信息可选2. 智能类

Olingo分析和实践之OData框架核心组件初始化(关键步骤)

《Olingo分析和实践之OData框架核心组件初始化(关键步骤)》ODataSpringBootService通过初始化OData实例和服务元数据,构建框架核心能力与数据模型结构,实现序列化、URI... 目录概述第一步:OData实例创建1.1 OData.newInstance() 详细分析1.1.1

Olingo分析和实践之ODataImpl详细分析(重要方法详解)

《Olingo分析和实践之ODataImpl详细分析(重要方法详解)》ODataImpl.java是ApacheOlingoOData框架的核心工厂类,负责创建序列化器、反序列化器和处理器等组件,... 目录概述主要职责类结构与继承关系核心功能分析1. 序列化器管理2. 反序列化器管理3. 处理器管理重要方

SpringBoot中六种批量更新Mysql的方式效率对比分析

《SpringBoot中六种批量更新Mysql的方式效率对比分析》文章比较了MySQL大数据量批量更新的多种方法,指出REPLACEINTO和ONDUPLICATEKEY效率最高但存在数据风险,MyB... 目录效率比较测试结构数据库初始化测试数据批量修改方案第一种 for第二种 case when第三种

解决1093 - You can‘t specify target table报错问题及原因分析

《解决1093-Youcan‘tspecifytargettable报错问题及原因分析》MySQL1093错误因UPDATE/DELETE语句的FROM子句直接引用目标表或嵌套子查询导致,... 目录报js错原因分析具体原因解决办法方法一:使用临时表方法二:使用JOIN方法三:使用EXISTS示例总结报错原

MySQL中的LENGTH()函数用法详解与实例分析

《MySQL中的LENGTH()函数用法详解与实例分析》MySQLLENGTH()函数用于计算字符串的字节长度,区别于CHAR_LENGTH()的字符长度,适用于多字节字符集(如UTF-8)的数据验证... 目录1. LENGTH()函数的基本语法2. LENGTH()函数的返回值2.1 示例1:计算字符串