时间拉链【数据仓库】
来源:互联网 发布:人工智能 机器狗 编辑:程序博客网 时间:2024/04/28 01:38
表结构设计之拉链表
(一)概念
拉链表是针对数据仓库设计中表存储数据的方式而定义的,顾名思义,所谓拉链,就是记录历史。记录一个事物从开始,一直到当前状态的所有变化的信息。
在历史表中对客户的一生的记录可能就这样几条记录,避免了按每一天记录客户状态造成的海量存储的问题:
(NAME)人名 (START-DATE)开始日期 (END-DT)结束日期 (STAT)状态
client 19000101 19070901 H在家
client 19070901 19130901 A小学
client 19130901 19160901 B初中
client 19160901 19190901 C高中
client 19190901 19230901 D大学
client 19230901 19601231 E公司
client 19601231 29991231 H退休在家
上面的每一条记录都是不算末尾的,比如到19070901,client已经在A,而不是H了。所以除最后一条记录因为状态到目前都未改变的,其余的记录实际上在END-DT那天,都不在是该条记录END-DT那天的状态。这种现象可以理解为算头不算尾。
(二)算法
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改为当天,也就是关链操作;
http://blog.csdn.net/nsj820/article/details/5876895
http://www.myexception.cn/database/1213585.html
拉链表是针对数据仓库设计中表存储数据的方式而定义的,顾名思义,所谓拉链,就是记录历史。记录一个事物从开始,一直到当前状态的所有变化的信息。
在历史表中对客户的一生的记录可能就这样几条记录,避免了按每一天记录客户状态造成的海量存储的问题:
(NAME)人名
client
client
client
client
client
client
client
上面的每一条记录都是不算末尾的,比如到19070901,client已经在A,而不是H了。所以除最后一条记录因为状态到目前都未改变的,其余的记录实际上在END-DT那天,都不在是该条记录END-DT那天的状态。这种现象可以理解为算头不算尾。
(二)算法
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改为当天,也就是关链操作;
http://blog.csdn.net/nsj820/article/details/5876895
http://www.myexception.cn/database/1213585.html
0 0
- 时间拉链【数据仓库】
- 数据仓库之拉链算法
- 数据仓库之拉链算法
- 数据仓库 拉链算法
- 数据仓库之拉链算法
- 数据仓库拉链表
- 时间拉链表用法
- 数据仓库之拉链算法(转)
- 数据仓库拉链算法在ORACLE中的实现
- 数据仓库中的拉链表(hive实现)
- Hive实现时间拉链功能
- 数据仓库之拉链算法—20120508(转载)
- 数据仓库数据模型之:极限存储--历史拉链表
- 【转】数据仓库拉链算法在ORACLE中的实现
- 数据仓库数据模型之:极限存储--历史拉链表
- 数据仓库数据模型之:极限存储--历史拉链表
- 使用Hive实现时间拉链功能
- 使用Hive实现时间拉链功能
- 简单的ArrayAdapter
- 超市怎样做O2O
- [C++学习历程]Visual Studio 2010 的HelloWorld
- Java多线程--BlockingQueue
- 本地事务处理
- 时间拉链【数据仓库】
- java多线程与并发之java并发编程实践
- struts要解决的问题
- 关于GLSL的gl_FragCoord、gl_FragDepth以及深度计算
- 升级drupal 核心(drupal 6/7)
- 正则表达式常见的一些符号含义
- 浏览器缓存机制详解(1)
- hdu 1042 N!
- Application.persistentDataPath