看了数据仓库的书,有点云里雾里,最好还是拿数据来实践一下。
于是,借了公司的一张表自己弄着操作一下。
大家看我表建的有没有问题,我初学者,请多指教。
事实表:
时间维度表:
商品维度表:
门店维度表:
这样对么?感觉事实表的数据很乱,维度表里的数据大量重复。
------解决方案--------------------
时间维度 的主键最好以日期类型为标准。因为事实表中的外键大部分都是日期为业务发生时间。
时间维度表
time_key y m d
2010-5-4 2010 5 4
2010-5-5 2010 5 5
2010-5-5 2010 5 6
事实表:
time_key
2010-5-5 等之类的。。
------解决方案--------------------
用代理主键还是用业务建,这个看情况。用代理主键的话,ETL过程会复杂点,而且代理主键一般都是用自动增长的int,在ETL的时候容易出现一些问题,所以最好建立一个代理主键与业务键相对应的表,以便当业务键发生改变的时候,更新事实表中的外键。但是使用代理主键查询性能会好一点,对于业务键经常发生变动的情况,处理起来容易一些。使用业务键做外键,比较方便一点,ETL过程简单一点,一般情况下可以使用。