1 ETL算法概览
> 算法应用场景概览
以上共计累积了8种ETL算法,其中主要分成4大类,增量累加、拉链算法是更符合数据仓库历史数据追踪的算法,但现实中基于业务及性能考虑,往往存在全删全插、增量累全算法的数据表应用。
2 全删全插模型
即Delete/Insert实现逻辑;
> 应用场景
主要应用在维表、参数表、主档表加载上,即适合源表是全量数据表,该数据表业务逻辑只需保存当前最新全量数据,不需跟踪过往历史信息。
> 算法实现逻辑
1.清空目标表;
2.源表全量插入;
> ETL代码原型
-- 1. 清理目标表
TRUNCATE TABLE ;
-- 2. 全量插入
INSERT INTO (字段***)
SELECT 字段***
FROM
***JOIN
WHERE ***;
3 增量累全模型
即Upsert实现逻辑;
> 应用场景
主要应用在参数表、主档表加载上,即源表可以是增量或全量数据表,目标表始终最新最全记录。
> 算法实现逻辑
1.利用PK主键比对;
2.目标表和源表PK一致的变化记录,更新目标表;
3.源表存在但目标表不存在,直接插入;
> ETL代码原型
-- 1. 生成加工源表
Create temp Table ***;