您的位置:首页 > 其它

『系统开发』数据仓库ETL流程规范

2009-09-01 15:08 148 查看
 

数据仓库ETL流程规范

项目组希望我出一个ETL的规范,凭着自己的感觉和经验总结了一些步骤,我还会不断改进。
本ETL流程规范试图建立一个通用的ETL流程开发规范,针对不同项目组的实际情况,可自行进行逐步的完善和修改。
本流程应该是在需求分析阶段结束后实施。
ETL流程:
可以把ETL分为五个阶段,按照开发的顺序分:
 
1)        准备阶段:
?         根据需求定义映射关系,产出物为《ETL映射文档》。
?         分析数据源质量,针对数据源中有问题的数据制定数据抽取原则,产出物为《数据源质量分析报告》、《问题数据处理规范》。
?         确定数据抽取的技术架构,产出物为《全量数据抽取策略》、《增量数据抽取策略》、《数据抽取中异常处理规范》。
?         确定ETL的实现方式,采用ETL工具还是自己开发代码。产出物分别是:《ETL工具使用手册》、《ETL代码开发手册》。这两个文档主要用于员工培训。
2)        开发阶段:
?         根据上个阶段的产出物进行ETL的实现。
3)        测试阶段:
?         测试和优化两个阶段实际上是相辅相成的,测试阶段除了要测试ETL逻辑的准确性,测试过程就可以得出ETL过程的性能结果。产出物为《ETL数据抽取测试报告》。
4)        优化阶段:
?         优化涉及到ETL过程的各个部分,从数据中转区到目标区,从程序代码的优化到数据库参数的调优,从ETL抽取逻辑的优化到技术架构的优化。具体优化的建议过程见《数据仓库优化建议.doc》。
5)        迁移阶段
?         我们经常碰到从一个环境迁移到另一个环境的情况,ETL迁移的过程应该放在数据仓库模型迁移后,也可以根据项目的实际情况一起进行迁移。产出物《ETL迁移文档》。
关键点:
ETL的重点在于元数据的管理、数据质量的管理
 
(一)  元数据的管理对于ETL来说是非常重要的,现在有了很多元数据管理工具,但我认为最重要的也是最有效的就是从管理机制入手,建立一个有效的管理元数据的制度,虽然这个方法显得土了一点,但对于数据仓库项目来说,还是比较实际的。
1)        建立ETL映射文档。ETL映射文档是元数据的主要依据,它记录数据从数据源到目标表的转换和对应关系。映射可以是一对一、一对多、多对一的。
 
2)        建立ETL变更流程。ETL变更流程其实是与需求变更紧密结合在一起的,项目中需求的变化是很常见的,需求的变化有可能会导致ETL映射关系、以及ETL业务逻辑的变化。修改ETL映射文件和业务逻辑文件必须从文档开始,并且应该有统一的入口。修改文档应该包括:
?         版本号:
?         修改原因描述:
?         修改过程:
?         修改时间:
?         修改的影响范围:
 
(二)  数据质量的好坏关系到项目的成败,前端的各种数据分析和展现的手段都是建立在良好的数据质量基础上的。
 
?         首先数据质量要从防患于未然开始。
我们通过制定统一的ETL规范,严格要求ETL过程中的每一步都要按照规范制定的步骤来执行。规范的制定可以根据各个项目组的实际情况作适当的增减,但是一些原则性的步骤一定要坚持执行。规范一旦制定下来,就必须严格执行。从源头来保证数据质量的可信度。原则性的步骤包括:
ü         《ETL映射文档》
ü         《数据源质量分析报告》
ü         《问题数据处理规范》
ü         《数据抽取中异常处理规范》
?         建立数据核对和数据效验流程
这部分应该是根据各个项目组的实际情况来考虑制定的。数据效验的方式有多种,常见的是通过报表数据与已有系统中的数据进行比对,比对如果出现问题,关键点在于要明确不同的原因,原因无非有几种:
ü         统计口径不同
ü         已有系统数据有误
ü         自己的数据有误
不要轻易下结论说对方的系统数据错误,如果我们前面的功夫下的足够,我们就可以根据我们上面提到的规范和文档来验证我们的数据是否正确。
?         建立数据修改流程
 
 


 
有些错误是可以通过制定效验规则来自动进行修改的;
而另一部分错误是必须有人工来判断错误原因,并且由人工或者由其他系统来修改
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: