当前位置:文档之家› 数据仓库中的数据稽核方法

数据仓库中的数据稽核方法


总量稽核报告
总量数据查询表:Fact_A0 vs. Fact_B0(填写查询结果数据)
前序表
Fact_A0
后续表: Fact_B0
Sum
Avg Min Max
Sum Avg Min Max
度量一
度量一
度量二
度量二
度量三
度量三
……
……
总量数据稽核表:Fact_A0 vs. Fact_B0(填写核查结果 Yes/No)
稽核程序的运行应该在每个 ETL 环节运行完之后及时运行,保证每个环节都得到验证,
第5页共7页
DW&DM Studio Document
并避免下一环节使用错误数据继续装载。
4) 稽核报告格式 无论数据稽核过程是程序自动完成,还是人工测试完成,输出数据稽核报告是非常必要
的,以下提供一个稽核报告的模板:
最容易出现错误的环节在于 Extract 过程,数据从业务系统到数据接口这个过程有可能 由业务系统厂商提供,接口的提供形式有可能是数据文件,也可能是数据库表,这个环节容 易引入本文第一个问题中提到的统计时间不一致的问题。在实际的项目中,大多数的问题也
第3页共7页
DW&DM Studio Document
需要说明的是,在总量正确的基础之上,做分量稽核时只需要选择任一度量进行稽核, 即可保证在其他度量上的分量正确。
前序环节事实表 A
| 稽核(报告比较) | 分量稽核
后续环节事实表 B
A 分量核对报告(对每个 维度,可选任一度量): Group By Dim01; Group By Dim02……
B 分量核对报告(对每个 维度值,可选任一度量): Group By Dim01; Group By Dim02……
成员 21
成员 22
成员 22
成员 23
成员 23
……
……
……
……
分量数据稽核表:Fact_A0 vs. Fact_B0(填写核查结果 Yes/No)
度量一
维度一
成员 11
成员 12
度量一
第6页共7页
维度二 ……
成员 13 …… 成员 21 成员 22 成员 23 ……
DW&DM Studio Document
第1页共7页
DW&DM Studio Document
数据准确性问题是数据仓库系统建设中的重点问题之一。在本人参与的用户技术交流 中,用户经常提出的问题就包括对数据准确性的疑虑,在本人经历的项目中,也有的用户因 对数据准确性的怀疑而拒绝使用数据仓库的报表。
数据准确的根本保证方法,需要对 ETL 的设计和代码进行评审、测试等,本文将讨论 的主题是根据数据对 ETL 过程正确性和数据质量进行测试,本文中把这个过程称为“数据 稽核”,本文重点讨论数据稽核的基础和基本方法。
《全文完》
第7页共7页
用,底层的数据问题很容易被放大,在此称为“误差放大效应”,如下图所示:
数据接口 | ODS 层
|
DW 层
|
数据集市层
数据接口 错误 A0
对应数据接口 A 的错误 A1
ODS 错误 B1
A1 引发的 DW 错误 A11
A1 引发的 DW 错误 A12
B1 引发的 DW 错误 B11
A11 引发的数据集 市错误 A111
总量稽核
A 总量核对报告(对每个 度量值): Sum 、 Avg 、 Max 、 Min……
B 总量核对报告(对每个 度量值): Sum 、 Avg 、 Max 、 Min……
图三:数据稽核过程示意
3) 稽核自动化 在设定了两种稽核方法之后,可以对数据稽核过程做自动化处理,编写一段程序完成总
量稽核任务和分量稽核任务,并自动查验结果的正确性,输出数据稽核报告,如果发现数据 不一致,并产生警告信息发送给系统管理员。
一、数据正确性验证的基础条件 1、数据准确的标准是什么?
准确的对立面是不准确,衡量数据仓库中的数据准确与否的主要标准是与业务系统中查 询的数据进行比较。
这个问题看似简单,实际则非常复杂,因为业务系统中的数据是不断变化的,在数据仓 库系统中进行数据抽取是对业务系统中的数据进行“快照”获得的数据,然而“快照”的数 据是暂时的,假设数据仓库系统在夜间 0 点提取业务系统的数据快照,在早晨 5 点前对数据 进行处理完毕,并生成了数据报表,早晨 9 点中系统用户上班开始浏览数据仓库中的报表, 并与业务系统中的数据进行对比,因为在 0 点到早晨 9 点之间业务系统中的数据仍然在不断 变化之中,因此有可能造成数据结果不一致,这时候却很难区别到底是数据仓库中的数据处 理过程出现了错误还是业务系统中的数据出现了错误。在经营分析系统中,有关用户发展情 况的月报数据最容易出现这种因统计时点不一致而造成的不一致。
报表数据一般对精确度要求比较高,特别是设计财务方面的指标,是严格限定误差范围 的。而且对于报表数据的指标,即便是有允许误差范围,也要求给出误差产生原因,例如小 树位数四舍五入累计误差等。
第2页共7页
DW&DM Studio Document
2) OLAP 分析数据 OLAP 分析一般是总体数据的宏观比例、趋势等做分析,对数据总量的误差有一定的限
DW&DM Studio Document
数据仓库中的数据稽核方法
作者:Michael Email: hengyu99@ 日期:2003-9-6 版本:1.0 摘要:本文针对数据仓库中的数据正确性验证的基础和方法进 行讨论,并以数据仓库系统中的实践为例,提出一种数据稽核 方法和流程,用于在多个 ETL 环节之间进行数据的稽核。 关键词:数据仓库 数据稽核 ETL 版权声明:作者对本文保留一切权利,任何人在未经作者同意的情况下,不得摘录或复制本文的全部或部 分内容。
三、数据稽核方法和过程 根据对以上问题的分析,在数据验证基准正确,ETL 整个流程分解之后,可以确定两
种对数据的稽核方法,并实现数据稽核的自动化过程。 1) 总量稽核:
对两个相邻环节中,对数据的总量进行验证,总量指标包括:总记录数,所有度量指标
第4页共7页
DW&DM Studio Docume度量一
度量二
度量三
……
分量稽核报告
分量数据查询表:Fact_A0 vs. Fact_B0(填写查询结果数据,抽样度量:度量一)
前序表
Fact_A0
后续表:
Fact_B0
度量一
维度一
成员 11
维度一
成员 11
成员 12
成员 12
成员 13
成员 13
……
……
维度二
成员 21
维度二
制,但要求数据在不同维度上的分布比例正确,能够正确反映宏观比例和趋势. 3) 数据挖掘
数据挖掘一般使用比较复杂的数学算法对数据进行处理,因算法复杂,对硬件环境要求 比较高,同时也限定了使用的数据集合不能太大,一般要对全体数据样本进行采样,因此在 数据挖掘应用中,并不关注数据总量情况,只关心样本的代表性。 3、数据仓库中的 ETL 过程究竟有多复杂?
A11 引发的数据集 市错误 A112
B11 引发的数据集 市错误 B111
B11 引发的数据集 市错误 B112
图二:数据仓库中的数据错误放大效应
由于数据仓库中的数据存在这种层次间放大的特点,数据稽核必须重视最初的数据处理 环节,从数据接口开始就必须进行认真核查,并且在整个系统建设过程中,数据稽核必须在 每个环节完成之后都要进行,以避免数据错误被不断放大。
确实出现在这个环节。 另一个容易出现问题的环节是 ETL1 过程,数据从数据接口装入 ODS 层,这个过程中
要做大量的代码转换工作,而且要进行脏数据的检查和更正,这个过程中最容易发现业务系 统中的脏数据,并造成数据的丢弃,在这个环节加入专门的脏数据检验环节,并生成脏数据 报告是非常必要的。
二、数据错误的放大效应 在数据仓库中,因数据在不断进行分层汇总,一个数据接口数据可能被多个数据集市使
的总值、均值等。总量正确说明数据没有被丢弃,没有不符合装载逻辑规则的脏数据存在。 总量不正确,则需要检查本环节装载日志中是否有被抛弃的记录,如果没有数据丢失,则需 要检查数据运算逻辑规则。
需要说明的是,总量稽核要对每个度量进行,才算完整的稽核。 2) 分量稽核
分量稽核是指对相邻的两个环节中,在总量正确的前提下,对数据分布情况的稽核,在 这个过程中,需要对每个维度上的分布的每个度量进行查询,如果数据在每个维上的分布都 正确,则在组合维查询时数据也正确,可以保证多维分析的正确性。
下图是一个数据仓库系统典型的数据层架构图。
前端展现
Cube
ETL5 数据集市
报表集市
ETL3
ETL4
DW
ETL2
ODS
ETL1 数据接口
Extract(数据抽取) 业务系统
图一:数据仓库系统数据层架构图
从图中可以看到,从业务系统到数据仓库系统的数据展现,要经历 5 个 ETL 过程,每 个环节都有可能出现错误。
这个问题的解决办法是对数据仓库抽取数据时刻的业务系统数据“快照”进行备份,用 于数据测试,使数据比较有一个可靠的基础。这个基础也是后续各种数据稽核方法的前提条 件。 2、数据准确如何定义?
数据准确不同于精确,数据准确是指数据统计结果在预期可接受的误差范围之内,在数 据仓库应用系统中,不同的应用对数据准确性有不同的要求: 1) 报表数据
相关主题