今天这篇文章,给大家讲述一下数据仓库的ETL基础算法,作为我们一起探讨的内容。希望大家留言、评论,我们一起学习。

ETL定义

是数据抽取(Extract)、转换(Transform)、清洗(Cleansing)、装载(Load)的过程。是构建数据仓库的重要一环,用户从数据源抽取出所需的数据,经过数据清洗,最终按照预先定义好的数据仓库模型,将数据加载到数据仓库中去

一 ETL工具

首先我们来看下常用的ETL工具都有哪些,我说一下我用过的ETL工具,KITTLE,DataStage,Informatica,目前我接触的有这三种,基本上都是基于图形化开发的工具,简单的拖拉拽就可以替代原先的SQL代码,开发效率高,运行稳定,但是这种太不易于后期的维护和扩展,可读性也不强。所以现在的银行业大都慢慢地放弃了,现在都是基于大数据平台开发(A/O分离),然后通过ETL调度,编写存储过程实现数据流动。

etl抽取数据实施方案(数据仓库ETL基础算法你了解吗)(1)

二 ETL是数据仓库的基础

数据仓库系统以事实发生数据为基础,自产数据较少。一个企业往往包含多个业务系统,均可能成为数据仓库的数据源。

etl抽取数据实施方案(数据仓库ETL基础算法你了解吗)(2)

三 ETL在BI架构中的定位

etl抽取数据实施方案(数据仓库ETL基础算法你了解吗)(3)

四 源数据概况

1

流水事件表:此类源表用于记录交易等动作的发生,在源系统中会新增、大部分不会修改和删除,少量表存在删除情况。如定期存款登记簿;

常规状态表:此类源表用于记录数据信息的状态。在源系统中会新增、修改,也存在删除的情况。如客户信息表;

代码参数表:此类源表用于记录源系统中使用到的数据代码和参数

etl抽取数据实施方案(数据仓库ETL基础算法你了解吗)(4)

2

数据文件大多数以1天为固定的周期从源系统加载到数据仓库。数据文件包含增量,全量以及待删除的增量。

增量数据文件:数据文件的内容为数据表的增量信息,包含表内新增及修改的记录。

全量数据文件:数据文件的内容为数据表的全量信息,包含表内的所有数据。

待删除的增量:数据文件的内容为数据表的增量信息,包含表内新增、修改及删除的记录,通常删除的记录以字段DEL_IND='D'标识该记录。

etl抽取数据实施方案(数据仓库ETL基础算法你了解吗)(5)

五 ETL算法概述

1 ETL标准算法

历史拉链:根据业务分析要求,对数据变化都要记录,需要基于日期的连续历史轨迹;

追加(事件表):根据业务分析要求,对数据变化都要记录,不需要基于日期的连续历史轨迹;

Upsert(主表):根据业务分析要求,对数据变化不需要都要记录,当前数据对历史数据有影响;

全删全加算法(参数表):根据业务分析要求,对数据变化不需要都要记录,当前数据对历史数据无影响;

etl抽取数据实施方案(数据仓库ETL基础算法你了解吗)(6)

2 ETL标准算法选择

etl抽取数据实施方案(数据仓库ETL基础算法你了解吗)(7)

3 历史拉链法

所谓拉链,就是记录历史,记录一个事务从开始,一直到当前状态的所有变化信息(参数新增开始结束日期)。

etl抽取数据实施方案(数据仓库ETL基础算法你了解吗)(8)

4 追加算法

一般用于事件表,事件之间相对独立,不存在对历史信息进行更新。

etl抽取数据实施方案(数据仓库ETL基础算法你了解吗)(9)

5 Upsert算法

是update和insert组合体,一般用于对历史信息变化不需要进行跟踪保留、只需其最新状态且数据量有一定规模的表,如客户资料表。

etl抽取数据实施方案(数据仓库ETL基础算法你了解吗)(10)

6 全删全加算法

一般用于数据量不大的参数表,把历史数据全部删除,然后重新全量加载。

etl抽取数据实施方案(数据仓库ETL基础算法你了解吗)(11)

算法的复杂度比较:

etl抽取数据实施方案(数据仓库ETL基础算法你了解吗)(12)

具体算法概述1:

etl抽取数据实施方案(数据仓库ETL基础算法你了解吗)(13)

0210算法

etl抽取数据实施方案(数据仓库ETL基础算法你了解吗)(14)

0211算法

etl抽取数据实施方案(数据仓库ETL基础算法你了解吗)(15)

0212算法

etl抽取数据实施方案(数据仓库ETL基础算法你了解吗)(16)

具体算法概述2

etl抽取数据实施方案(数据仓库ETL基础算法你了解吗)(17)

0610算法

etl抽取数据实施方案(数据仓库ETL基础算法你了解吗)(18)

0611算法

etl抽取数据实施方案(数据仓库ETL基础算法你了解吗)(19)

0612算法

etl抽取数据实施方案(数据仓库ETL基础算法你了解吗)(20)

0613算法

etl抽取数据实施方案(数据仓库ETL基础算法你了解吗)(21)

0614算法

etl抽取数据实施方案(数据仓库ETL基础算法你了解吗)(22)

0615算法

etl抽取数据实施方案(数据仓库ETL基础算法你了解吗)(23)

0616算法

etl抽取数据实施方案(数据仓库ETL基础算法你了解吗)(24)

0617算法

etl抽取数据实施方案(数据仓库ETL基础算法你了解吗)(25)

0618算法

etl抽取数据实施方案(数据仓库ETL基础算法你了解吗)(26)

0619算法

etl抽取数据实施方案(数据仓库ETL基础算法你了解吗)(27)

总结:

按照实际工作经验来看,ETL算法常用的有:

历史拉链 ----最常用,记录事物变化

追加(事件表) ---根据业务需求

全删全加算法(参数表) --根据业务需求

可以根据实际需求选择不同的算法。

好了,这篇文章就给大家写到这里了,希望大家留言、评论。我们一起探讨,学习。大家喜欢的,可以点个关注 ,我会不定期更新文章,将自己的经验分享出来。

,