做好数据仓库建设,让数据分析事半功倍!
建立数据仓库是一个解决企业问题的过程,业务人员往往不懂如何建立和使用数据仓库,发挥其决策支持的作用;IT部门的人员往往又不懂业务,不知道应该建立哪些决策主题,从数据源中抽取哪些数据。因此,数据仓库的项目小组应该由业务人员和IT人员共同组成,双方需要相互沟通,协作开发数据仓库。
开发数据仓库的过程包括以下几个步骤。
一、系统分析,确定主题
建立数据仓库的第一个步骤就是通过与业务部门的充分交流,了解建立数据仓库所要解决的问题的真正含义,确定各个主题下的查询分析要求。
业务人员往往会罗列出很多想解决的问题,IT人员应该对这些问题进行分类汇总,确定数据仓库所实现的业务功能。一旦确定问题以后,IT人员还需要确定几个因素:
操作出现的频率,即业务部门每隔多长时间做一次查询分析?
在系统中需要保存多久的数据,是一年、两年还是五年、十年?
用户查询数据的主要方式,如在时间维度上是按照自然年,还是财政年?
用户所能接受的响应时间是多长、是几秒钟,还是几小时?
由于双方在理解上的差异,确定问题和了解问题可能是一个需要多次反复的过程,IT人员可能需要做一些原型演示给业务人员看,以最终确定系统将要实现的功能确实是业务部门所需要的。
二、选择满足数据仓库系统要求的软件平台
在数据仓库所要解决的问题确定后,第二个步骤就是选择合适的软件平台,包括数据库、建模工具、分析工具等。这里有许多因素要考虑,如系统对数据量、响应时间、分析功能的要求等,以下是一些公认的选择标准:
厂商的背景和支持能力,能否提供全方位的技术支持和咨询服务?
数据库对大数据量(TB级)的支持能力?
数据库是否支持并行操作?
能否提供数据仓库的建模工具,是否支持对元数据的管理?
能否提供支持大数据量的数据加载、转换、传输工具(ETL)?
能否提供完整的决策支持工具集,满足数据仓库中各类用户的需要?
三、建立数据仓库的逻辑模型
具体步骤如下:
确定建立数据仓库逻辑模型的基本方法;
基于主题视图,把主题视图中的数据定义转到逻辑数据模型中;
识别主题之间的关系;
分解多对多的关系;
用范式理论检验逻辑数据模型;
由用户审核逻辑数据模型;
四、逻辑数据模型转化为数据仓库数据模型
具体步骤如下:
Step.1 删除非战略性数据
数据仓库模型中不需要包含逻辑数据模型中的全部数据项,某些用于操作处理的数据项要删除;
Step.2 增加时间主键
数据仓库中的数据一定是时间的快照,因此必须增加时间主键;
Step.3 增加派生数据
对于用户经常需要分析的数据,或者为了提高性能,可以增加派生数据;
Step.4 加入不同级别粒度的汇总数据
数据粒度代表数据细化程度,粒度越大,数据的汇总程度越高。粒度是数据仓库设计的一个重要因素,它直接影响到驻留在数据仓库中的数据量和可以执行的查询类型。显然,粒度级别越低,则支持的查询越多;反之,能支持的查询就越有限。
对数据操作的效率与能得到数据的详细程度是一对矛盾,通常人们希望建成的系统既有较高的效率,又能得到所需的详细资料。实施数据仓库的一个重要原则就是不要试图包括所有详细数据,因为90%的分析需求是在汇总数据上进行的。试图将粒度细化到最低层,只会增加系统的开销,降低系统的性能。
五、数据仓库数据模型优化
数据仓库设计时,性能是一项主要考虑因素。在数据仓库建成后,也需要经常对其性能进行监控,并随着需求和数据量的变更进行调整。
优化数据仓库设计的主要方法是:
合并不同的数据表;
通过增加汇总表避免数据的动态汇总;
通过冗余字段减少表连接的数量,不要超过3~5个;
用ID代码而不是描述信息作为键值;
对数据表做分区。
六、数据清洗转换和传输
由于业务系统所使用的软硬件平台不同,编码方法不同,业务系统中的数据在加载到数据仓库之前,必须进行数据的清洗和转换,保证数据仓库中数据的一致性。
在设计数据仓库的数据加载方案时,必须考虑以下几项要求:
加载方案必须能够支持访问不同的数据库和文件系统;