拉链的通常算法

本文介绍了常规的拉链算法,分为新增记录、行关链和处理属性变化三步。适用于全量数据处理,未涉及数据回滚,可参考指定链接进行修改。提供的存储过程代码包括数据查看和调度,适合测试使用。
摘要由CSDN通过智能技术生成

本文中所述的拉链算法,是按照一般性常规思维进行计算的。此过程分3大步,4小步:第一步新增新记录到目标表中,其中包含目标表中没有此主键的记录和断链新增记录两部分内容;第二步将源表已经不存在的记录在目标表中进行行关链;第三步处理变化了属性值的记录:1、关链老数据;2、新开链属性值变化后的数据。
文中所考虑的数据源假设为全量数据;代码中没有体现出数据回滚的过程,这一部分内容可以参考《数据仓库拉链算法在ORACLE中的实现,原文地址:
http://blog.csdn.net/nsj820/article/details/5876895》进行一定程度的修改实现,所用到的测试源表、目标表表结构和数据也可参考此博客中的内容。
算法的性能并没有考虑在内,实际项目过程中可根据需要进行选用;存储过程代码的下方也给出了详尽的数据查看语句和批量调度语句代码,可以测试时参考使用

CREATE OR REPLACE PROCEDURE P_T100_STATUS_H_COMMON(P_ETLDATE VARCHAR2) AS
  --P_ETLDATE VARCHAR2(8) := '20100108';
  --源数据作全量考虑,数据回滚暂未考虑
BEGIN
  --1、EDW表中没有此主键的记录,则确定为新增
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值