维度建模

Data仓库中的Data是细节的、集成的、面向主题的,以OLAPSystam的分析需求为目的

阅读《数据仓库工具箱》并作记录,争取在半年内完成…….

构建Data仓库五步法

确定主题

例如:我们希望分析某年某月某一地区的啤酒销售情况,这就是一个主题.主题要体现出某一方面的各分析角度(维度)和统计数value型

Data(量度)之间的关系

确定量度

我们将考虑要分析的技术指标,诸如年销售额之类.它们一般为数value型Data.我们或者将该Data汇总,或者将该Data取次数、独立次数或取

最大最小value等,这样的Data称为量度

确定粒度

在确定了量度之后,我们要考虑到该量度的汇总情况和不同维度下量度的聚合情况.考虑到量度的聚合程度不同,我们将采用“最小粒度原则”,即将量度的粒度设置到最小

确定维度

维度是指分析的各个角度.例如我们希望按照时间,或者按照地区,或者按照产品进行分析,那么这里的时间、地区、产品就是相应的维度.基于不同的维度,我们可以看到各量度的汇总情况,也可以基于所有的维度进行交叉分析

确定事实

数据聚合后依据某个维度生成的结果表

缓慢变化维度的三种处理方法

历史Data需要修改.这种情况下,我们使用UPDATE method来修改维度表中的Data.例如:产品的ID号码为123,后来发现ID号码错了,需

要改写成456,那么,我们就在ETL处理时,直接修改维度表中原来的ID号码为456

历史Data保留,新增Data也要保留.这时,要将原Data更新,将新Data插入,我们使用UPDATE / INSERT.比如:某一员工2005年在A部门,2006

年时他调到了B部门.那么在统计2005年的Data时就应该将该员工定位到A部门;而在统计2006年Data时就应该定位到B部门,然后再有新的

Data插入时,将按照新部门(B部门)进行处理,这样我们的做法是将该维度成员列表加入标识列,将历史的Data标识为“过期”,将目前的Data标

识为“当前的”.另一种method是将该维度打上时间戳,即将历史Data生效的时间段作为它的一个属性,在与原始表匹配生成事实表时将按照

时间段进行关联,这种method的好处是该维度成员生效时间明确

新增Data维度成员改变了属性.例如:某一维度成员新加入了一列,该列在历史Data中不能基于它浏览,而在目前Data和将来Data中可

以按照它浏览,那么此时我们需要改变维度表属性,即加入新的字段列,那么,我们将使用存储过程或程式生成新的维度属性,在后续的

Data中将基于新的属性进行查看