etl抽取数据实施方案(数据仓库ETL基础算法你了解吗)
今天这篇文章,给大家讲述一下数据仓库的ETL基础算法,作为我们一起探讨的内容。希望大家留言、评论,我们一起学习。
ETL定义:
是数据抽取(Extract)、转换(Transform)、清洗(Cleansing)、装载(Load)的过程。是构建数据仓库的重要一环,用户从数据源抽取出所需的数据,经过数据清洗,最终按照预先定义好的数据仓库模型,将数据加载到数据仓库中去
一 ETL工具
首先我们来看下常用的ETL工具都有哪些,我说一下我用过的ETL工具,KITTLE,DataStage,Informatica,目前我接触的有这三种,基本上都是基于图形化开发的工具,简单的拖拉拽就可以替代原先的SQL代码,开发效率高,运行稳定,但是这种太不易于后期的维护和扩展,可读性也不强。所以现在的银行业大都慢慢地放弃了,现在都是基于大数据平台开发(A/O分离),然后通过ETL调度,编写存储过程实现数据流动。
二 ETL是数据仓库的基础
数据仓库系统以事实发生数据为基础,自产数据较少。一个企业往往包含多个业务系统,均可能成为数据仓库的数据源。
三 ETL在BI架构中的定位
四 源数据概况
1
流水事件表:此类源表用于记录交易等动作的发生,在源系统中会新增、大部分不会修改和删除,少量表存在删除情况。如定期存款登记簿;
常规状态表:此类源表用于记录数据信息的状态。在源系统中会新增、修改,也存在删除的情况。如客户信息表;
代码参数表:此类源表用于记录源系统中使用到的数据代码和参数
2
数据文件大多数以1天为固定的周期从源系统加载到数据仓库。数据文件包含增量,全量以及待删除的增量。
增量数据文件:数据文件的内容为数据表的增量信息,包含表内新增及修改的记录。
全量数据文件:数据文件的内容为数据表的全量信息,包含表内的所有数据。
待删除的增量:数据文件的内容为数据表的增量信息,包含表内新增、修改及删除的记录,通常删除的记录以字段DEL_IND='D'标识该记录。
五 ETL算法概述
1 ETL标准算法
历史拉链:根据业务分析要求,对数据变化都要记录,需要基于日期的连续历史轨迹;
追加(事件表):根据业务分析要求,对数据变化都要记录,不需要基于日期的连续历史轨迹;
Upsert(主表):根据业务分析要求,对数据变化不需要都要记录,当前数据对历史数据有影响;
全删全加算法(参数表):根据业务分析要求,对数据变化不需要都要记录,当前数据对历史数据无影响;
2 ETL标准算法选择
3 历史拉链法
所谓拉链,就是记录历史,记录一个事务从开始,一直到当前状态的所有变化信息(参数新增开始结束日期)。
4 追加算法
一般用于事件表,事件之间相对独立,不存在对历史信息进行更新。
5 Upsert算法
是update和insert组合体,一般用于对历史信息变化不需要进行跟踪保留、只需其最新状态且数据量有一定规模的表,如客户资料表。
6 全删全加算法
一般用于数据量不大的参数表,把历史数据全部删除,然后重新全量加载。
算法的复杂度比较:
具体算法概述1:
0210算法
0211算法
0212算法
具体算法概述2
0610算法
0611算法
0612算法
0613算法
0614算法
0615算法
0616算法
0617算法
0618算法
0619算法
总结:
按照实际工作经验来看,ETL算法常用的有:
历史拉链 ----最常用,记录事物变化
追加(事件表) ---根据业务需求
全删全加算法(参数表) --根据业务需求
可以根据实际需求选择不同的算法。
好了,这篇文章就给大家写到这里了,希望大家留言、评论。我们一起探讨,学习。大家喜欢的,可以点个关注 ,我会不定期更新文章,将自己的经验分享出来。
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com