ETL设计和Cube建模经验总结
经过几个月的学习和测试OLAP报表过程中,在这期间学会了很多东西,也积累了一些建模经验,为了促进彼此间的工作经验交流,更大程度的提高整体的设计和建模水平,特对自己的工作经验作一简要总结,希望通过相互交流学习,能够共勉共进。
一、ETL的设计总结
在ETL的设计中,首先是必须了解业务,把业务摸透后,才能更好的深入到具体的表和数据中。才能知道最终所要的是什么数据,那些数据不需要的。
1).业务理解:在做ETL的前期,开始需要理解业务的流程,业务是怎么做的。数据的来源,有哪些操作可以提供数据或者提供了数据。
2).理解表结构:在原始数据表结构中,需要准确的理解源数据的表结构,表中的状态含义,字段的取舍,主键,唯一键和表与表之间的关系,重要数据字段的含义,数据的来源和关系。
3).理解数据:当拿到源数据后,理解了业务,源数据的表结构后,就开始着手分析数据,那些数据可以做为维度,那些数据可以作为基本计算的度量值。凡是需要合计的值,都必须作为度量,在SQL语句中,凡是要用group by的,都需要建立维度。在这里需要注意的是,度量值中不能有字符型。
4).设计维度表和事实表:维度表就是需要做group by的字段或者类型,在确定了维度(看数据的方式或角度)后,尽可能的把更多的方式放在维度表中,以便使维度发挥更多的作用(即更多的观察方式)。在设计事实表时,一个事实表不要放太多的维度主键,多了就会影响性能。一般在设计时,不要超过10个以上的维度关系字段。
5).ETL的设计:我们使用的是微软的SSIS设计器,在此设计中,主要需要掌握的是look up组建。这个组件就是查找数据,他有两种使用方式,即查找到后的处理和查找出错的处理,查找出错时,可设置为重定向方式,使组建在出错时,转向自己定义的处理方式,达到处理数据的目的。
二、Cube建模总结
在Cube的建模中,主要是建立视图和设计维度表和事实表之间的键值关系,使用事实表建立度量,使用维度表建立维度。
1).维度的建立:给每个维度表建立一个维度视图,根据向导,SSIS向导会自动生成维度关系。在生成维度后,可以根据自己的定义给维度重新命名。在维度建立中,最重要的是维度的层次关系的建立和维度关键字段的指定,排序的方式。比如,key,NameColumns,ValueColumn这几个值,一般维度会默认key的值,这个值是当前属性的字段,也可以更改。
2).度量的建立:度量的建立使用的是事实表,在建立度量时,SSIS会自动生成一个计数度量,其余的可以根据自己选的视图中的合计字段,来定义度量。
3).度量和维度的使用设置:在完成度量的设置和维度的设置后,需要设置维度和度量的使用方法,打开SSIS的维度使用栏后,SSIS会自动显示维度和度量的布局图,在这里可以设置维度的使用方法。

在ETL和Cube的建模中,主要的时间是用在ETL的设计处理上,ETL的设计好坏,直接影响Cube的好坏。也会影响Cube的建模处理方式和最终的结果。