预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共80页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

数据仓库建模与ETL实践技巧(常用版)(可以直接使用,可编辑完整版资料,欢迎下载)数据仓库建模与ETL实践技巧数据仓库建模与ETL实践技巧2021-06-1221:59数据仓库建模与ETL实践技巧北京迈思奇科技戴子良专家简历戴子良,北京迈思奇科技(minesage)咨询顾问,微软MCP,ETL专家,在数据仓库,数据清洗,数据整合和多维数据库方面有很深的造诣,负责企业级数据仓库建模,ETL,数据仓库实现,调度,海量数据的优化处理以及数据分析与挖掘等。负责和参与开发的主要项目有:微软总部MSN数据挖掘项目;微软总部MicrosoftMarketing数据分析项目等。对数据仓库的架构和海量数据的优化有丰富的经验和处理方法,有丰富的实际项目经验,尤其对ETL过程及数据清洗整合有独到的见解。在上一期的专栏文章中,我们曾经提到:数据分析系统的总体架构分为四个部分--源系统、数据仓库、多维数据库、客户端(图一:pic1.bmp其中,数据仓库(DW)起到了数据大集中的作用。通过数据抽取,把数据从源系统源源不断地抽取出来,可能每天一次,或者每3个小时一次(当然是自动的)。这个过程,我们称之为ETL过程。那么,今天,我们就来谈一谈:如何搭建数据仓库,在这个过程中都应该遵循哪些方法和原则;然后介绍一些项目实践中的技巧。一、数据仓库的架构数据仓库(DataWarehouse\DW)是为了便于多维分析和多角度展现而将数据按特定的模式进行存储所建立起来的关系型数据库,它的数据基于OLTP源系统。数据仓库中的数据是细节的、集成的、面向主题的,以OLAP系统的分析需求为目的。数据仓库的架构模型包括了星型架构(图二:pic2.bmp)与雪花型架构(图三:pic3.bmp)两种模式。如图所示,星型架构的中间为事实表,四周为维度表,类似星星;而相比较而言,雪花型架构的中间为事实表,两边的维度表可以再有其关联子表,从而表达了清晰的维度层次关系。从OLAP系统的分析需求和ETL的处理效率两方面来考虑:星型结构聚合快,分析效率高;而雪花型结构明确,便于与OLTP系统交互。因此,在实际项目中,我们将综合运用星型架构与雪花型架构来设计数据仓库。那么,下面我们就来看一看,构建企业级数据仓库的流程。二、构建企业级数据仓库五步法(一)、确定主题即确定数据分析或前端展现的主题。例如:我们希望分析某年某月某一地区的啤酒销售情况,这就是一个主题。主题要体现出某一方面的各分析角度(维度)和统计数值型数据(量度)之间的关系,确定主题时要综合考虑。我们可以形象的将一个主题想象为一颗星星:统计数值型数据(量度)存在于星星中间的事实表;分析角度(维度)是星星的各个角;我们将通过维度的组合,来考察量度。那么,"某年某月某一地区的啤酒销售情况"这样一个主题,就要求我们通过时间和地区两个维度的组合,来考察销售情况这个量度。从而,不同的主题来源于数据仓库中的不同子集,我们可以称之为数据集市。数据集市体现了数据仓库某一方面的信息,多个数据集市构成了数据仓库。(二)、确定量度在确定了主题以后,我们将考虑要分析的技术指标,诸如年销售额之类。它们一般为数值型数据。我们或者将该数据汇总,或者将该数据取次数、独立次数或取最大最小值等,这样的数据称为量度。量度是要统计的指标,必须事先选择恰当,基于不同的量度可以进行复杂关键性能指标(KPI)等的设计和计算。(三)、确定事实数据粒度在确定了量度之后,我们要考虑到该量度的汇总情况和不同维度下量度的聚合情况。考虑到量度的聚合程度不同,我们将采用"最小粒度原则",即将量度的粒度设置到最小。例如:假设目前的数据最小记录到秒,即数据库中记录了每一秒的交易额。那么,如果我们可以确认,在将来的分析需求中,时间只需要精确到天就可以的话,我们就可以在ETL处理过程中,按天来汇总数据,此时,数据仓库中量度的粒度就是"天";反过来,如果我们不能确认将来的分析需求在时间上是否需要精确到秒,那么,我们就需要遵循"最小粒度原则",在数据仓库的事实表中保留每一秒的数据,以便日后对"秒"进行分析。在采用"最小粒度原则"的同时,我们不必担心海量数据所带来的汇总分析效率问题,因为在后续建立多维分析模型(CUBE)的时候,我们会对数据提前进行汇总,从而保障产生分析结果的效率。关于建立多维分析模型(CUBE)的相关问题,我们将在下期栏目中予以阐述。(四)、确定维度维度是指分析的各个角度。例如我们希望按照时间,或者按照地区,或者按照产品进行分析,那么这里的时间、地区、产品就是相应的维度。基于不同的维度,我们可以看到各量度的汇总情况,也可以基于所有的维度进行交叉分析。这里我们首先要确定维度的层次(Hierarchy)和级别(Level(图四:pic4.bmp。如图所示,我们在时间维度上,按照"年-季度-月"形成了