一种可靠的数据仓库中ETL策略与架构设计(3)
发布时间:2021-06-07
发布时间:2021-06-07
图&’()逻辑架构
根据’()实际,考虑抽取的效率和可靠性,选择合适的源数据接口。
数据抽取可以采用*+))和*+,-两种方式。*+,-就是指由源系统按照双方定义的数据格式,主动将符合要求的数据抽取出来,形成接口数据表或数据视图供’()系统使用。采用对源系统*+,-的方式会对源系统或其他开发团队产生依赖,
的性能和网络有较高要求。*+))则是由’()程序直接访问数
但是据源来获取数据的方式。这种方式’()工作就比较独立,要自己进行数据抽取工作。所以应根据实际项目要求选择合适的方式。
、数据翻译(、数据排序(、数据匹配((,5674))//K@5),/34)IC4:BL、数据聚合(以及其他复杂计算等。70J)MJJ32JC42)
原则上,数据转换只处理规律而重复性大的数据聚合,如汇总、取平均值、找最大最小值等,而不用于复杂计算,以减少开发成本和系统负载。对于不规律而且复杂的计算,可由源系统端将数据计算好。
&$#数据加载()/C>70J)
加载(主要完成将前面生成的*)E文件的数据加载)/C>)
到数据仓库的表中。
根据模型的设计和源数据的情况,有F种数据’()模式,所以就有F种不同的加载方式。
刷新(:数据仓库数据表中只包括最新(%)82H32GB,(;52%)的数据,每次加载均删除原有数据,然后完全加载最新的源数据。如大多数参数表的加载都采用这种模式。
这种模式下,数据抽取程序抽取源数据中的所有记录,在加载前,将目标数据表清空,然后加载所有记录。
镜像增量(:源数据中的记录(!),0C5GB/4M5520>,(;52!)定期更新,但记录中包括记录时间字段,源数据中保存了数据历史的记录,’()可以通过记录时间将增量数据从源数据抽取出来以附加的方式加载到数据仓库中,数据的历史记录也会被保留在数据仓库中。
事件增量(:每一个记录是一个(&)’1204M5520>,(;52&)新的事件,相互之间没有必然的联系,新记录不是对原有记录数值的变更,记录包括时间字段,可以通过时间字段将新增数据抽取出来加载到数据库中。
镜像比较(:源数据每天都(F),0C5GB/4./=5C32,(;52F)被更新。而数据仓库数据具有生效日期字段以保存数据的历史信息。因此,只能将新的镜像数据与上次加载的数据的镜像进行比较,找出变更部分,更新历史数据被更新记录的生效终止日期,并添加变更后的数据。大多数源数据中需保存历史信息的维表。
所以对应于上面F种’()模式而需要用到的加载方式有
(下转页)
&$&数据变换(和分割(./01234),5674)
数据变换的任务是逐条记录的检查数据,将每个字段转换
为遵循数据仓库标准的数据格式,即对数据类型和数据格式进行转换,并对空字段赋予适当的缺省值,形成规整的数据结构,文件中。对于不符合要求的数据,写入拒绝(8292:4)
数据变换主要的工作有:格式变换,如所有日期格式统一赋缺省值,在数据仓库中定义取值不为空的字为;;;;<==<>>;
段在源数据对应的字段可能存在没有取值的记录,这时根据业务需要,可能有两种处理办法,一是将该记录写入到拒绝文件中,由业务部门根据拒绝文件检查并修补源数据,另一种是在数据变换阶段直接赋一个缺省值;类型变换,如将源系统的长度变换,如将源系统中定义?@=A23类型转为:BC3类型等;
转为:BC3(等;代码转换,如源系统的某些字段的:BC3(%")!")经过代码升级以后,将老的代码转为新的代码等;数值转换,如数值单位由万元转为元等。
此外,同一个数据源表的数据可能被多个数据仓库表使用,这就需要将一个数据源按不同的条件通过数据抽取和变换过程分成多个.DE文件以对应于不同的目标表的转换加载。
&$F数据转换((3C0GH/3=)
数据转换(是按照目标表的数据结构,对一个或(3C0GH/3=)
多个源数据的字段进行翻译、匹配、聚合等操作得到目标数据的字段。
数括段%OF!""#$%"
计算机工程与应用
上一篇:ADB 常用命令合集
下一篇:非营利组织会计报表下载