理解缓慢变化维(Slowly Changing Dimension)
2015-07-09 00:13
357 查看
“缓慢变化维度”是在构建数据仓库时比较常见的一种情况。简而言之它适用于这种情况——数据记录会随着时间而发生变化。
举个例子:
Larry是S公司的一个职员。他居住在上海,于是查找用户表有以下记录:
在一段时间以后,Larry被派遣到了北京的分公司工作。那么S公司如何更新员工信息表以反映出这次变化?这个就是缓慢变化维的问题所在。
通常有三种方法解决该问题:
Type 1: 替换原始记录
该方法优点是简单方便;缺点是无法追溯历史数据。
Type 2: 插入一条新记录
该方法的优点是保留了全部的历史记录;缺点是使得数据表记录飞涨,可能导致影响查询效率。
Type 3: 更新原始表结构
该方法既可以反应历史记录,也可以避免成倍的数据增长。但是缺点是适用场景非常少,仅能反映出部分历史记录。
版权声明:本文为博主原创文章,未经博主允许不得转载。
举个例子:
Larry是S公司的一个职员。他居住在上海,于是查找用户表有以下记录:
Record ID | Name | Locate |
1001 | Larry | Shanghai |
通常有三种方法解决该问题:
Type 1: 替换原始记录
Record ID | Name | Locate |
1001 | Larry | Beijing |
Type 2: 插入一条新记录
Record ID | Name | Locate |
1001 | Larry | Shanghai |
1002 | Larry | Beijing |
Type 3: 更新原始表结构
Record ID | Name | Original Locate | Current Locate | Effective Date |
1001 | Larry | Shanghai | Beijing | 2014-01-01 |
版权声明:本文为博主原创文章,未经博主允许不得转载。
相关文章推荐
- Section 1.2.5 Dual Palindromes 水
- dbcp的简单配置
- 移除apsx视图引擎,及View文件夹下的web.config的作用
- Windows7下搭建Eclipse+Python开发环境
- 约瑟夫环问题
- 关于Blog使用
- 提高日志质量的 5 大技巧
- Kafka 学习笔记(一)
- POJ 1195 Mobile phones(二维树状数组)
- java.util.Date和java.sql.Date
- SRM 634 #DIV2
- 触摸java常量池
- Kth Smallest Element in a BST
- CodeIgniter学习笔记(七)——CI中的数据库操作
- 在实例中说明java的类变量,成员变量和局部变量
- NABCD需求分析
- Android 自定义DialogFragment替代popupwindow
- ESP8266学习笔记2:实现ESP8266的局域网内通信
- mybatis自动生成工具
- 《Python学习手册》学习笔记——第4章