首页 > 大数据 > 数据挖掘 > 数据仓库之拉链算法(转)
链:古代软兵器的中介之物,故名思意.有着连接、衔接的意思.拉链算法是目前数据仓库领域比较XX的算法之一..通用非常广.记录数据量很大且为全量实体记录历史的操作。
[@more@]例如,某某移动通信公司客户资料,以河北为例,河北有客户2800W,客户资料每个一条就是2800W条记录算上历史客户,全量大概有5000W条左右。作为数据仓库来存储这些信息几千万条记录不算什么。可是要是记录历史全量所用到的存储就非常的庞大。问题实例为:一般正常情况下,从河北移动的BOSS系统上每天采集全量的日数据大概为2500W条,历史存储每天存储一个2500W条的日表,存储三个月,就需要3*30*2500W条的数据存储空间,数据量为20E。这只是存储三个月的历史如果存储更长时间则无法估计需要的存储。而用拉链算法存储。每日只是向历史表(HIS)中添加新增和变化的数据量。每日不过数十W条。存储一年也就是需要5000W条记录的存储空间即两个日全量的空间。下面详细介绍下拉链算法:下面为具体例子:
OD(在第一天就等于HIS)
用户标志 状态 开始时间 结束时间
1 1 200712 299901
2 2 200712 299901
3 3 200712 299901
4 4 200712 299901
5 5 200712 299901
ND
用户标志 状态 开始时间 结束时间
1 2 200801 299901
2 2 200801 299901
3 4 200801 299901
4 4 200801 299901
5 6 200801 299901
W_I=ND-OD
用户标志 状态 开始时间 结束时间
1 2 200801 299901
3 4 200801 299901
5 6 200801 299901
W_U=OD-ND
用户标志 状态 开始时间 结束时间
1 1 200712 299901
3 3 200712 299901
5 5 200712 299901
INSERT操作 把I插入到HIS
用户标志 状态 开始时间 结束时间
1 1 200712 299901
2 2 200712 299901
3 3 200712 299901
4 4 200712 299901
5 5 200712 299901
1 2 200801 299901
3 4 200801 299901
5 6 200801 299901
update操作 按U更新HIS
用户标志 状态 开始时间 结束时间
1 1 200712 200801
2 2 200712 299901
3 3 200712 200801
4 4 200712 299901
5 5 200712 200801
1 2 200801 299901
3 4 200801 299901
5 6 200801 299901
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/16723161/viewspace-1017421/ ,如需转载,请注明出处,否则将追究法律责任。