日期:2014-05-17  浏览次数:20387 次

BI中拉链算法
http://http://blog.csdn.net/paopaomm/article/details/7491400
算法:(拉链表算法其实就是以前遇到过的缓慢变化维的其中一种情况,用存储过程实现的话稍微麻烦点。)
1采集当日全量数据到ND(NewDay)表;

2可从历史表中取出昨日全量数据存储到OD(OldDay)表;(什么是昨日全量数据

3(ND-OD)就是当日新增和变化的数据,也就是当天的增量,用W_I表示;

4(OD-ND)为状态到此结束需要封链的数据,用W_U表示;(封链数据是指?

5将W_I表的内容全部插入到历史表中,这些是新增记录,start_date为当天,而end_date为max值;

6对历史表进行W_U部份的更新操作,start_date保持不变,而end_date改为当天,也就是关链操作;

求指点,先谢过了!

------解决方案--------------------
你是不知道怎么做,无从下手呢?
还是不知道这些名词什么意思?
又或者是直接需要代码?
------解决方案--------------------
说的超级概念化。 其实很简单,首先就一个数据表(TB)

1、取TB中今天的数据ND
2、取TB中昨天的数据OD
3、对比OD和ND,确定新增还是更新的数据,生成W_I
4、取OD及ND的数据,声称W_U
5、将W_I表的内容全部插入到历史表中,这些是新增记录,start_date为当天,而end_date为max值;
6、对历史表进行W_U部份的更新操作,start_date保持不变,而end_date改为当天,也就是关链操作;

最后两个里面的链,lz可以理解为一个名词,环比