k*z 发帖数: 4704 | 1 【 以下文字转载自 Database 讨论区 】
发信人: kiz (泥偶), 信区: Database
标 题: 问一个初级的问题关于数据仓库的维度
发信站: BBS 未名空间站 (Tue Nov 12 15:20:30 2013, 美东)
如果我的OLTP表是一个宽表。里面有时间,地点,产品,产品属性,产品厂商,运营数
据等等。
现在数据是每天同步到ODS一个Staging数据库里。
如果我想把这个宽表拆成 多个维度,和最后的事实表-运营数据。
我怎么让两个表里的维度key统一呢?如果增加了一个维度的值的话,怎么处理呢?这
个key怎么自增加,怎么保持唯一。
说的有点笼统,但是请尽量回答。谢谢。
一般来说生产库的表不会是宽表,但是我们这个数据库本身就是给前台用的优化过的逻
辑表。所以基本我们需要的东西都有了。 | k*z 发帖数: 4704 | 2 比如
我现在的表是
国家,省,城市,店名,年,月,日,时间,收入,费用,毛利,纯利,收银员,提成
比,提成
这个表本身是逻辑表,也就是个view, 是给前台经理通过一个User Form看的,应该是从
OLTP系统join多个表得来的,但是因为种种愿因吧。反正我没办法去拿到最原始的各个
table了。
我现在就把这个表当作我的原始数据了。 我自己来重新构建这个数据仓库,理论上来
说,我要把这个表拆成多个维度的表和一张事实表-业务表。例如:
地理纬度:geokey 国家,省,城市
店面维度:geokey, storekey, 店名
时间维度: timekey, 年,月,日
雇员维度:employeekey, titlekey, 雇员名,性别,年龄,etc
职位维度: titlekey, 职位,提成比
事实表(业务表): geokey, timekey, employeekey, 收入,收入,费用,毛利,纯利
我的问题是如何生成这些Key,然后如啊何维护这些Key。
生成的时候怎么保持唯一,维护的时候怎么保持唯一还有怎么增量添加。 |
|