在数据仓库中,维度是数据仓库概念的一个重要基础,因此维度的抽取和处理是一个重要的环节,对于不同的维度根据业务需求以及客观原因有许多不同的处理方式,以下将以SQLServer2000语法为例展开。
1 维概述
1.1 概述
维度 是多维数据集的结构性特性。它们是事实数据表中用来描述数据的分类的有组织层次结构( 级别 )。这些分类和级别描述了一些相似的 成员 集合,用户将基于这些成员集合进行分析。 (此概念引之于 SQLServer2000联机帮助 )
所有维度均直接或间接地基于表。当从某个表创建维度时,您会选择定义此维度的列。选择列的顺序至关重要,因为它将影响维度层次结构内成员的位置。 (此概念引之于 SQLServer2000联机帮助 )
维度是有层次的,在大多数情况下维度的成员会按金字塔形布局排列。水平布局由维度层次结构中具有相同级别的列值生成,而垂直布局由维度层次结构中具有不同级别的列值生成。 (此概念引之于 SQLServer2000联机帮助 )
相对应于 OLTP系统,维度表数据主要来自于 OLTP系统中的各个基础表。但是在 OLTP系统中数据变化比较剧烈,通常只保留最近最新的基础信息;也不会记载基础数据的删除、更新和插入的整个历史过程。而数据仓库则是面向主题的、集成化的、稳定的、随时间变化的数据集合,这就要求数据必须是递增的,反映历史变化的;因此数据仓库对于维度数据的处理通常的要求是做插入和更新处理,不做删除,否则将无法完整反映数据的历史和整体情况。
1.2分类
在实际的业务系统中,维度根据变化剧烈程度主要分为以下几类:
在实际的业务系统中,维度根据变化剧烈程度主要分为以下几类:
1. 无变化维度
如性别维度只有男女,如年龄阶段维度 0~10岁, 10~20岁等等。
2. 缓慢变化维度
维度的变化剧烈程度虽然比较小,但是数据仓库项目中仍要根据实际情况进行维度更新,大部分的维度应属于此部分。
3. 剧烈变化维度
维度的变化剧烈程度比较高,通常做法是对该维度表进行拆解,使其成为缓慢变化维度进行处理。
1.3处理对策
关于维度的处理主要根据业务需要和数据库对数据处理的处理能力和性能。对于比较敏感和极其重要的数据一定要求其反映整个历史变化,或根据版本或根据时间戳等等;反之对于不太重要的数据处于数据库性能考虑,建议采用直接更新的办法;而对于没有变化的数据采取一次性加载的方式。在这里为了讨论方便,初步分为以下几类:
关于维度的处理主要根据业务需要和数据库对数据处理的处理能力和性能。对于比较敏感和极其重要的数据一定要求其反映整个历史变化,或根据版本或根据时间戳等等;反之对于不太重要的数据处于数据库性能考虑,建议采用直接更新的办法;而对于没有变化的数据采取一次性加载的方式。在这里为了讨论方便,初步分为以下几类:
1. 无变化维度处理
2. 缓慢变化维处理
3. 急剧变化维处理
本文转自baoqiangwang51CTO博客,原文链接:http://blog.51cto.com/baoqiangwang/310383
,如需转载请自行联系原作者