搜档网
当前位置:搜档网 › 数据仓库建模方法

数据仓库建模方法

数据仓库建模方法
数据仓库建模方法

每个行业有自己的模型,但是不同行业的数据模型,在数据建模的方法上,却都有着共通的基本特点。什么是数据模型

数据模型是抽象描述现实世界的一种工具和方法,是通过抽象的实体及实体之间联系的形式,来表示现实世界中事务的相互关系的一种映射。

在这里,数据模型表现的抽象的是实体和实体之间的关系,通过对实体和实体之间关系的定义和描述,来表达实际的业务中具体的业务关系。

数据仓库模型是数据模型中针对特定的数据仓库应用系统的一种特定的数据模型,一般的来说,

我们数据仓库模型分为几下几个层次。

图 2. 数据仓库模型

通过上面的图形,我们能够很容易的看出在整个数据仓库得建模过程中,我们需要经历一般四个过程:

?业务建模,生成业务模型,主要解决业务层面的分解和程序化。

?领域建模,生成领域模型,主要是对业务模型进行抽象处理,生成领域概念模型。

?逻辑建模,生成逻辑模型,主要是将领域模型的概念实体以及实体之间的关系进行数据库层次的逻辑化。

?物理建模,生成物理模型,主要解决,逻辑模型针对不同关系型数据库的物理化以及性能等一些具体的技术问题。

因此,在整个数据仓库的模型的设计和架构中,既涉及到业务知识,也涉及到了具体的技术,我们既需要了解丰富的行业经验,

同时,也需要一定的信息技术来帮助我们实现我们的数据模型,最重要的是,我们还需要一个非常适用的方法论,来指导我们自己针对我们的业务进行抽象,处理,生成各个阶段的模型。

为什么需要数据模型

在数据仓库的建设中,我们一再强调需要数据模型,那么数据模型究竟为什么这么重要呢?首先我们需要了解整个数据仓库的建设的发展史。

数据仓库的发展大致经历了这样的三个过程:

?简单报表阶段:这个阶段,系统的主要目标是解决一些日常的工作中业务人员需要的报表,

?以及生成一些简单的能够帮助领导进行决策所需要的汇总数据。这个阶段的大部分表现形式为数据库和前端报表工具。

?数据集市阶段:这个阶段,主要是根据某个业务部门的需要,进行一定的数据的采集,整理,按照业务人员的需要,进行多维报表的展现,能够提供对特定业务指导的数据,并且能够提供特定的领导决策数据。

?数据仓库阶段:这个阶段,主要是按照一定的数据模型,对整个企业的数据进行采集,整理,并且能够按照各个业务部门的需要,提供跨部门的,完全一致的业务报表数据,能够通过数据仓库生成对对业务具有指导性的数据,同时,为领导决策提供全面的数据支持。

通过数据仓库建设的发展阶段,我们能够看出,数据仓库的建设和数据集市的建设的重要区别就在于数据模型的支持。因此,数据模型的建设,对于我们数据仓库的建设,有着决定性的意义。

一般来说,数据模型的建设主要能够帮助我们解决以下的一些问题:

?进行全面的业务梳理,改进业务流程。在业务模型建设的阶段,能够帮助我们的企业或者是管理机关对本单位的业务进行全面的梳理。通过业务模型的建设,我们应该能够全面了解该单位的业务架构图和整个业务的运行情况,能够将业务按照特定的规律进行分门别类和程序化,同时,帮助我们进一步的改进业务的流程,提高业务效率,指导我们的业务部门的生产。

?建立全方位的数据视角,消灭信息孤岛和数据差异。通过数据仓库的模型建设,能够为企业提供一个整体的数据视角,不再是各个部门只是关注自己的数据,而且通过模型的建设,勾勒出了部门之间内在的联系,帮助消灭各个部门之间的信息孤岛的问题,更为重要的是,通过数据模型的建设,能够保证整个企业的数据的一致性,各个部门之间数据的差异将会得到有效解决。

?解决业务的变动和数据仓库的灵活性。通过数据模型的建设,能够很好的分离出底层技术的实现和上层业务的展现。当上层业务发生变化时,通过数据模型,底层的技术实现可以非常轻松的完成业务的变动,从而达到整个数据仓库系统的灵活性。

?帮助数据仓库系统本身的建设。通过数据仓库的模型建设,开发人员和业务人员能够很容易的达成系统建设范围的界定,以及长期目标的规划,从而能够使整个项目组明确当前的任务,加快整个系统建设的速度。

如何建设数据模型

建设数据模型既然是整个数据仓库建设中一个非常重要的关键部分,那么,怎么建设我们的数据仓库模型就是我们需要解决的一个问题。这里我们将要详细介绍如何创建适合自己的数据模型。

数据仓库数据模型架构

数据仓库的数据模型的架构和数据仓库的整体架构是紧密关联在一起的,我们首先来了解一下整个数据仓库的数据模型应该包含的几个部分。从下图我们可以很清楚地看到,整个数据模型的架构分成 5 大部分,每个部分其实都有其独特的功能。

图 3. 数据仓库数据模型架构

从上图我们可以看出,整个数据仓库的数据模型可以分为大概 5 大部分:

?系统记录域(System of Record):这部分是主要的数据仓库业务数据存储区,数据模型在这里保证了数据的一致性。

?内部管理域(Housekeeping):这部分主要存储数据仓库用于内部管理的元数据,数据模型在这里能够帮助进行统一的元数据的管理。

?汇总域(Summary of Area):这部分数据来自于系统记录域的汇总,数据模型在这里保证了分析域的主题分析的性能,满足了部分的报表查询。

?分析域(Analysis Area):这部分数据模型主要用于各个业务部分的具体的主题业务分析。这部分数据模型可以单独存储在相应的数据集市中。

?反馈域(Feedback Area):可选项,这部分数据模型主要用于相应前端的反馈数据,数据仓库可以视业务的需要设置这一区域。

通过对整个数据仓库模型的数据区域的划分,我们可以了解到,一个好的数据模型,不仅仅是对业务进行抽象划分,而且对实现技术也进行具体的指导,它应该涵盖了从业务到实现技术的各个部分。

数据仓库建模阶段划分

我们前面介绍了数据仓库模型的几个层次,下面我们讲一下,针对这几个层次的不同阶段的数据建模的工作的主要内容:

图 4. 数据仓库建模阶段划分

从上图我们可以清楚地看出,数据仓库的数据建模大致分为四个阶段:

业务建模,这部分建模工作,主要包含以下几个部分:

?划分整个单位的业务,一般按照业务部门的划分,进行各个部分之间业务工作的界定,理清各业务部门之间的关系。

?深入了解各个业务部门的内具体业务流程并将其程序化。

?提出修改和改进业务部门工作流程的方法并程序化。

?数据建模的范围界定,整个数据仓库项目的目标和阶段划分。

领域概念建模,这部分得建模工作,主要包含以下几个部分:

?抽取关键业务概念,并将之抽象化。

?将业务概念分组,按照业务主线聚合类似的分组概念。

?细化分组概念,理清分组概念内的业务流程并抽象化。

?理清分组概念之间的关联,形成完整的领域概念模型。

逻辑建模,这部分的建模工作,主要包含以下几个部分:

?业务概念实体化,并考虑其具体的属性

?事件实体化,并考虑其属性内容

?说明实体化,并考虑其属性内容

物理建模,这部分得建模工作,主要包含以下几个部分:

?针对特定物理化平台,做出相应的技术调整

?针对模型的性能考虑,对特定平台作出相应的调整

?针对管理的需要,结合特定的平台,做出相应的调整

?生成最后的执行脚本,并完善之。

从我们上面对数据仓库的数据建模阶段的各个阶段的划分,我们能够了解到整个数据仓库建模的主要工作和工作量,希望能够对我们在实际的项目建设能够有所帮助。

数据仓库建模方法

大千世界,表面看五彩缤纷,实质上,万物都遵循其自有的法则。数据仓库得建模方法同样也有很多种,每一种建模方法其实代表了哲学上的一个观点,代表了一种归纳,概括世界的一种方法。目前业界较为流行的数据仓库的建模方法非常多,这里主要介绍范式建模法,维度建模法,实体建模法等几种方法,每种方法其实从本质上讲就是从不同的角度看我们业务中的问题,不管从技术层面还是业务层面,其实代表的是哲学上的一种世界观。我们下面给大家详细介绍一下这些建模方法。

1. 范式建模法(Third Normal Form,3NF)

范式建模法其实是我们在构建数据模型常用的一个方法,该方法的主要由Inmon 所提倡,主要解决关系型数据库得数据存储,利用的一种技术层面上的方法。目前,我们在关系型数据库中的建模方法,大部分采用的是三范式建模法。

范式是数据库逻辑模型设计的基本理论,一个关系模型可以从第一范式到第五范式进行无损分解,这个过程也可称为规范化。在数据仓库的模型设计中目前一般采用第三范式,它有着严格的数学定义。从其表达的含义来看,一个符合第三范式的关系必须具有以下三个条件:

?每个属性值唯一,不具有多义性;

?每个非主属性必须完全依赖于整个主键,而非主键的一部分;

?每个非主属性不能依赖于其他关系中的属性,因为这样的话,这种属性应该归到其他关系中去。

由于范式是基于整个关系型数据库的理论基础之上发展而来的,因此,本人在这里不多做介绍,有兴趣的读者可以通过阅读相应的材料来获得这方面的知识。

根据Inmon 的观点,数据仓库模型得建设方法和业务系统的企业数据模型类似。在业务系统中,企业数据模型决定了数据的来源,而企业数据模型也分为两个层次,即主题域模型和逻辑模型。同样,主题域模型可以看成是业务模型的概念模型,而逻辑模型则是域模型在关系型数据库上的实例话。

图 5. 范式建模法

从业务数据模型转向数据仓库模型时,同样也需要有数据仓库的域模型,即概念模型,同时也存在域模型的逻辑模型。这里,业务模型中的数据模型和数据仓库的模型稍微有一些不同。主要区别在于:

?数据仓库的域模型应该包含企业数据模型得域模型之间的关系,以及各主题域定义。数据仓库的域模型的概念应该比业务系统的主题域模型范围更加广。

?在数据仓库的逻辑模型需要从业务系统的数据模型中的逻辑模型中抽象实体,实体的属性,实体的子类,以及实体的关系等。

以笔者的观点来看,Inmon 的范式建模法的最大优点就是从关系型数据库的角度出发,结合了业务系统的数据模型,能够比较方便的实现数据仓库的建模。但其缺点也是明显的,由于建模方法限定在关系型数据库之上,在某些时候反而限制了整个数据仓库模型的灵活性,性能等,特别是考虑到数据仓库的底层数据向数据集市的数据进行汇总时,需要进行一定的变通才能满足相应的需求。因此,笔者建议读者们在实际的使用中,参考使用这一建模方式。

2. 维度建模法

维度建模法,Kimball 最先提出这一概念。其最简单的描述就是,按照事实表,维表来构建数据仓库,数据集市。这种方法的最被人广泛知晓的名字就是星型模式(Star-schema)。

图 6. 维度建模法

上图的这个架构中是典型的星型架构。星型模式之所以广泛被使用,在于针对各个维作了大量的预处理,如按照维进行预先的统计、分类、排序等。通过这些预处理,能够极大的提升数据仓库的处理能力。特别是针对3NF 的建模方法,星型模式在性能上占据明显的优势。

同时,维度建模法的另外一个优点是,维度建模非常直观,紧紧围绕着业务模型,可以直观的反映出业务模型中的业务问题。不需要经过特别的抽象处理,即可以完成维度建模。这一点也是维度建模的优势。

但是,维度建模法的缺点也是非常明显的,由于在构建星型模式之前需要进行大量的数据预处理,因此会导致大量的数据处理工作。而且,当业务发生变化,需要重新进行维度的定义时,往往需要重新进行维度数据的预处理。而在这些与处理过程中,往往会导致大量的数据冗余。

另外一个维度建模法的缺点就是,如果只是依靠单纯的维度建模,不能保证数据来源的一致性和准确性,而且在数据仓库的底层,不是特别适用于维度建模的方法。

因此以笔者的观点看,维度建模的领域主要适用与数据集市层,它的最大的作用其实是为了解决数据仓库建模中的性能问题。维度建模很难能够提供一个完整地描述真实业务实体之间的复杂关系的抽象方法。3. 实体建模法

实体建模法并不是数据仓库建模中常见的一个方法,它来源于哲学的一个流派。从哲学的意义上说,客观世界应该是可以细分的,客观世界应该可以分成由一个个实体,以及实体与实体之间的关系组成。那么我们在数据仓库的建模过程中完全可以引入这个抽象的方法,将整个业务也可以划分成一个个的实体,而每个实体之间的关系,以及针对这些关系的说明就是我们数据建模需要做的工作。

虽然实体法粗看起来好像有一些抽象,其实理解起来很容易。即我们可以将任何一个业务过程划分成 3 个部分,实体,事件和说明,如下图所示:

图7. 实体建模法

上图表述的是一个抽象的含义,如果我们描述一个简单的事实:“小明开车去学校上学”。以这个业务事实为例,我们可以把“小明”,“学校”看成是一个实体,“上学”描述的是一个业务过程,我们在这里可以抽象为一个具体“事件”,而“开车去”则可以看成是事件“上学”的一个说明。

从上面的举例我们可以了解,我们使用的抽象归纳方法其实很简单,任何业务可以看成 3 个部分:

?实体,主要指领域模型中特定的概念主体,指发生业务关系的对象。

?事件,主要指概念主体之间完成一次业务流程的过程,特指特定的业务过程。

?说明,主要是针对实体和事件的特殊说明。

由于实体建模法,能够很轻松的实现业务模型的划分,因此,在业务建模阶段和领域概念建模阶段,实体建模法有着广泛的应用。从笔者的经验来看,再没有现成的行业模型的情况下,我们可以采用实体建模的方法,和客户一起理清整个业务的模型,进行领域概念模型的划分,抽象出具体的业务概念,结合客户的使用特点,完全可以创建出一个符合自己需要的数据仓库模型来。

但是,实体建模法也有着自己先天的缺陷,由于实体说明法只是一种抽象客观世界的方法,因此,注定了该建模方法只能局限在业务建模和领域概念建模阶段。因此,到了逻辑建模阶段和物理建模阶段,则是范式建模和维度建模发挥长处的阶段。

因此,笔者建议读者在创建自己的数据仓库模型的时候,可以参考使用上述的三种数据仓库得建模方法,在各个不同阶段采用不同的方法,从而能够保证整个数据仓库建模的质量。

数据仓库建模样例

上面介绍得是一些抽象得建模方法和理论,可能理解起来相对有些难度,因此,笔者在这里举一个例子,读者可以跟着我们的这个样例,来初步了解整个数据仓库建模的大概过程。

背景介绍

熟悉社保行业的读者可以知道,目前我们国家的社保主要分为养老,失业,工伤,生育,医疗保险和劳动力市场这 6 大块主要业务领域。在这 6 大业务领域中,目前的状况养老和事业的系统已经基本完善,已经有一部分数据开始联网检测。而,对于工伤,生育,医疗和劳动力市场这一块业务,有些地方发展的比较成熟,而有些地方还不够成熟。

1.业务建模阶段

基于以上的背景介绍,我们在业务建模阶段,就很容易来划分相应的业务。因此,在业务建模阶段,我们基本上确定我们本次数据仓库建设的目标,建设的方法,以及长远规划等。如下图:

图8. 业务建模阶段

在这里,我们将整个业务很清楚地划分成了几个大的业务主线,例如:养老,失业,工伤,生育,医疗,劳动力等着几个大的部分,然后我们可以根据这些大的模块,在每个业务主线内,考虑具体的业务主线内需要分析的业务主题。

因此,业务建模阶段其实是一次和业务人员梳理业务的过程,在这个过程中,不仅能帮助我们技术人员更好的理解业务,另一方面,也能够发现业务流程中的一些不合理的环节,加以改善和改进。

同时,业务建模阶段的另一个重要工作就是确定我们数据建模的范围,例如:在某些数据准备不够充分的业务模块内,我们可以考虑先不建设相应的数据模型。等到条件充分成熟的情况下,我们可以再来考虑数据建模的问题。

2.领域概念建模阶段

领域概念建模阶段是数据仓库数据建模的一个重要阶段,由于我们在业务建模阶段已经完全理清相应的业务范围和流程,因此,我们在这个领域概念建模阶段的最主要的工作就是进行概念的抽象,整个领域概念建模的工作层次如下图所示:

图9. 领域概念建模阶段

从上图我们可以清楚地看到,领域概念建模就是运用了实体建模法,从纷繁的业务表象背后通过实体建模法,抽象出实体,事件,说明等抽象的实体,从而找出业务表象后抽象实体间的相互的关联性,保证了我们数据仓库数据按照数据模型所能达到的一致性和关联性。

从图上看,我们可以把整个抽象过程分为四个层次,分别为:

?抽象方法层,整个数据模型的核心方法,领域概念建模的实体的划分通过这种抽象方法来实现。

?领域概念层,这是我们整个数据模型的核心部分,因为不同程度的抽象方法,决定了我们领域概念的不同。例如:在这里,我们可以使用“参与方”这个概念,同时,你也可以把他分成三个概念:“个人”,“公司”,和“经办机构”这三个概念。而我们在构建自己的模型的时候,可以参考业务的

状况以及我们自己模型的需要,选择抽象程度高的概念或者是抽象程度低的概念。相对来说,抽象程度高的概念,理解起来较为复杂,需要专业的建模专家才能理解,而抽象程度低的概念,较适合于一般业务人员的理解,使用起来比较方便。笔者在这里建议读者可以选用抽象概念较低的实体,以方便业务人员和技术人员之间的交流和沟通。

?具体业务层,主要是解决具体的业务问题,从这张图我们可以看出,具体的业务层,其实只是领域概念模型中实体之间的一些不同组合而已。因此,完整的数据仓库的数据模型应该能够相应灵活多变的前端业务的需求,而其本身的模型架构具有很强的灵活性。这也是数据仓库模型所具备的功能之一。

?业务主线层,这个层次主要划分大的业务领域,一般在业务建模阶段即已经完成这方面的划分。

我们一般通过这种大的业务主线来划分整个业务模型大的框架。

通过领域概念建模,数据仓库的模型已经被抽象成一个个的实体,模型的框架已经搭建完毕,下面的工作就是给这些框架注入有效的肌体。

3.逻辑建模阶段

通过领域概念建模之后,虽然模型的框架已经完成,但是还有很多细致的工作需要完成。一般在这个阶段,我们还需要做非常多的工作,主要包括:

?实例话每一个抽象的实体,例如:在上面的概念模型之后,我们需要对“人”和“公司”等这些抽象实体进行实例化。主要是,我们需要考虑“人”的属性包括那些,在业务模块中,用到的所有跟“人”

相关的属性是哪些,我们都需要将这些属性附着在我们数据模型的“人”这个实体上,例如“人”得

年龄,性别,受教育程度等等。同理,我们对其他属性同样需要做这个工作。

?找出抽象实体间的联系,并将其实例话。这里,我们主要考虑是“事件”这个抽象概念的实例话,例如:对于养老金征缴这个“事件”的属性得考虑,对于失业劳动者培训这个“事件”的属性得考虑

等等。

?找出抽象事件的关系,并对其进行说明。在这里我们主要是要针对“事件”进行完善的“说明”。例如:对于“事件”中的地域,事件等因素的考量等等。

总而言之,在逻辑建模阶段,我们主要考虑得是抽象实体的一些细致的属性。通过逻辑建模阶段,我们才能够将整个概念模型完整串联成一个有机的实体,才能够完整的表达出业务之间的关联性。

在这个阶段,笔者建议大家可以参考3NF 的建模方法,表达出实体的属性,以及实体与实体之间的联系。例如:在这个阶段,我们可以通过采用ERWIN 等建模工具等作出符合3NF 的关系型数据模型来。4.物理建模阶段

物理建模阶段是整个数据建模的最后一个过程,这个过程其实是将前面的逻辑数据模型落地的一个过程。考虑到数据仓库平台的不同,因此,数据模型得物理建模过程可能会稍微有一些不同,在这个阶段我们主要的工作是:

?生成创建表的脚本。不同的数据仓库平台可能生成不同的脚本。

?针对不同的数据仓库平台,进行一些相应的优化工作,例如对于DB2 数据仓库来说,创建一些MQT 表,来加速报表的生成等等。

?针对数据集市的需要,按照维度建模的方法,生成一些事实表,维表等工作。

?针对数据仓库的ETL 车和元数据管理的需要,生成一些数据仓库维护的表,例如:日志表等。

经过物理建模阶段,整个数据仓库的模型已经全部完成,我们可以按照自己的设计来针对当前的行业创建满足自己需要的数据模型来。

数据仓库模型的设计

2.5数据仓库模型的设计 数据仓库模型的设计大体上可以分为以下三个层面的设计151: .概念模型设计; .逻辑模型设计; .物理模型设计; 下面就从这三个层面分别介绍数据仓库模型的设计。 2.5.1概念模型设计 进行概念模型设计所要完成的工作是: <1>界定系统边界 <2>确定主要的主题域及其内容 概念模型设计的成果是,在原有的数据库的基础上建立了一个较为稳固的概念模型。因为数据仓库是对原有数据库系统中的数据进行集成和重组而形成的数据集合,所以数据仓库的概念模型设计,首先要对原有数据库系统加以分析理解,看在原有的数据库系统中“有什么”、“怎样组织的”和“如何分布的”等,然后再来考虑应当如何建立数据仓库系统的概念模型。一方面,通过原有的数据库的设计文档以及在数据字典中的数据库关系模式,可以对企业现有的数据库中的内容有一个完整而清晰的认识;另一方面,数据仓库的概念模型是面向企业全局建立的,它为集成来自各个面向应用的数据库的数据提供了统一的概念视图。 概念模型的设计是在较高的抽象层次上的设计,因此建立概念模型时不用考虑具体技术条件的限制。 1.界定系统的边界 数据仓库是面向决策分析的数据库,我们无法在数据仓库设计的最初就得到详细而明确的需求,但是一些基本的方向性的需求还是摆在了设计人员的面前: . 要做的决策类型有哪些? . 决策者感兴趣的是什么问题? . 这些问题需要什么样的信息? . 要得到这些信息需要包含原有数据库系统的哪些部分的数据? 这样,我们可以划定一个当前的大致的系统边界,集中精力进行最需要的部分的开发。因而,从某种意义上讲,界定系统边界的工作也可以看作是数据仓库系统设计的需求分析,因为它将决策者的数据分析的需求用系统边界的定义形式反映出来。 2,确定主要的主题域 在这一步中,要确定系统所包含的主题域,然后对每个主题域的内

数据仓库实例

计算机
王莹

本例采用的是SQl Server2005所提供的商业智能服务和工 具,主要包括Analysis Services(分析服务), Integration Services(集成服务),Reporting Services(集成服务)和Bussiness Intelligence Developer Studio(BIDS)。

分析服务(Analysis Services) SQL Server 分析服务(SSAS)是一个用于分析数据仓库中数据的工 具,它包括了OLAP和数据挖掘工具。在SQL Server 2005数据库系统 中,Analysis Services工具以服务器的方式为用户提供管理多维数 据立方体的服务。Analysis Services可以把数据仓库中的数据组织 起来,经过预先的聚集运算,加入到多维立方体中(即建立立方 体),然后对复杂的分析型访问做出迅速的回答。

集成服务(Integration Services) SQL Server 集成服务(SSIS)被定位成一个能生成高性能数据集成解决 方案(包括数据仓库中数据的提取、转换和加载(ETL))的平台。其集 成的含义主要就是指把ETL集成在一起。SSIS通过一个统一的环境向用户 提供了数据转换服务(DTS)所能提供的所有功能,并且大大减少了用户 花在编写程序和脚本上的精力和时间。 SSIS的基本功能包括:
? ? ? ? ? ? 合并来自异类数据源中的数据 填充数据仓库和数据集市 整理数据和将数据标准化 精确和模糊的查找功能 将商业智能置入数据转换过程 使管理功能和数据加载自动化

数据仓库物理模型设计

数据仓库物理模型设计 数据仓库的物理模型就是数据仓库逻辑模型在物理系统中的实现模式。其中包括了逻辑模型中各种实体表的具体化,例如表的数据结构类型、索引策略、数据存放位置和数据存储分配等。在进行物理模型的设计实现时,所考虑的因素有:I/O存取时间、空间利用率及维护的代价。 为确定数据仓库的物理模型,设计人员必须做这样几方面工作:首先要全面了解所选用的数据库管理系统,特别是存储结构和存取方法;其次了解数据环境、数据的使用频率、使用方式、数据规模及响应时间要求等,这些都是对时间和空间效率进行平衡和优化的重要依据;最后还需要了解外部存储设备的特征。只有这样才能在数据的存储需求与外部存储设备条件两者之间获得平衡。 1 设计存储结构 在物理设计时,常常要按数据的重要性、使用频率及对反应时间的要求进行分类,并将不同类型的数据分别存储在不同的存储设备中。重要性高、经常存取并对反应时间要求高的数据存放在高速存储设备上;存取频率低或对存取响应时间要求低的数据则可以存放在低速存储设备上。另外,在设计时还要考虑数据在特定存储介质上的布局。在设计数据的布局时要注意遵循以下原则。 l 不要把经常需要连接的几张表放在同一存储设备上,这样可以利用存储设备的并行操作功能加快数据查询的速度。 l 如果几台服务器之间的连接会造成严重的网络业务量的问题,则要考虑服务器复制表格,因为不同服务器之间的数据连接会给网络带来沉重的数据传输负担。 l 考虑把整个企业共享的细节数据放在主机或其他集中式服务器上,提高这些共享数据的使用速度。 l 不要把表格和它们的索引放在同一设备上。一般可以将索引存放在高速存储设备上,而表格则存放在一般存储设备上,以加快数据的查询速度。 在对服务器进行处理时往往要进行大量的等待磁盘数据的工作,此时,可以在系统中使用RAID(Redundant Array of Inexpensive Disk,廉价冗余磁盘阵列)。 2 设计索引策略 数据仓库的数据量很大,因而需要对数据的存取路径进行仔细地设计和选择。由于数据仓库的数据一般很少更新,所以可以设计索引结构来提高数据存取效率。在数据仓库中,设计人员可以考虑对各个数据存储建立专用的索引和复杂的索引,以获取较高的存取效率,虽然建立它们需要付出一定的代价,但建立后一般不需要过多的维护。 数据仓库中的表通常要比联机事务处理系统(OLTP)中的表建立更多的索引,表中应用的最大索引数应与表格的规模成正比。数据仓库是个只读的环境,建立索引可以取得灵活性,对性能极为有利。但是表若有很多索引,那么数据加载时间就会延长,因此索引的建立需要进行综合的考虑。在建立索引时,可以按照索引使用的频率由高到低逐步添加,直到某一索引加入后,使数据加载或重组表的时间过长时,就结束索引的添加。 最初,一般都是按主关键字和大多数外部关键字建立索引,通常不要添加很多的其他索引。在表建立大量的索引后,对表进行分析等具体使用时,可能需要许多索引,这会导致表的维护时间也随之增加。如果从主关键字和外部关键字着手建立索引,并按照需要添加其他索引,就会避免首先建立大量的索引带来的后果。如果表格过大,而且需要另外增加索引,那么可以将表进行分割处理。如果一个表中所有用到的列都在索引文件中,就不必访问事实表,只要访问索引就可以达到访问数据的目的,以此来减少I/O操作。如果表太大,并且经常要对它进行长时间的扫描,那么就要考虑添加一张概括表以减少数据的扫描任务。 3 设计存储策略

数据库建模经验总结

数据库如何建模 笔者从98年进入数据库及数据仓库领域工作至今已经有近八年的时间,对数据建模工作接触的比较多,创新性不敢谈,本文只是将工作中的经验总结出来,供大家一同探讨和指正。 提起数据建模来,有一点是首先要强调的,数据建模师和DBA有着较大的不同,对数据建模师来说,对业务的深刻理解是第一位的,不同的建模方法和技巧是为业务需求来服务的。而本文则暂时抛开业务不谈,主要关注于建模方法和技巧的经验总结。 从目前的数据库及数据仓库建模方法来说,主要分为四类。 第一类是大家最为熟悉的关系数据库的三范式建模,通常我们将三范式建模方法用于建立各种操作型数据库系统。 第二类是Inmon提倡的三范式数据仓库建模,它和操作型数据库系统的三范式建模在侧重点上有些不同。Inmon的数据仓库建模方法分为三层,第一层是实体关系层,也即企业的业务数据模型层,在这一层上和企业的操作型数据库系统建模方法是相同的;第二层是数据项集层,在这一层的建模方法根据数据的产生频率及访问频率等因素与企业的操作型数据库系统的建模方法产生了不同;第三层物理层是第二层的具体实现。 第三类是Kimball提倡的数据仓库的维度建模,我们一般也称之为星型结构建模,有时也加入一些雪花模型在里面。维度建模是一种面向用户需求的、容易理解的、访问效率高的建模方法,也是笔者比较喜欢的一种建模方式。 第四类是更为灵活的一种建模方式,通常用于后台的数据准备区,建模的方式不拘一格,以能满足需要为目的,建好的表不对用户提供接口,多为临时表。

下面简单谈谈第四类建模方法的一些的经验。 数据准备区有一个最大的特点,就是不会直接面对用户,所以对数据准备区中的表进行操作的人只有ETL工程师。ETL工程师可以自己来决定表中数据的范围和数据的生命周期。下面举两个例子: 1)数据范围小的临时表 当需要整合或清洗的数据量过大时,我们可以建立同样结构的临时表,在临时表中只保留我们需要处理的部分数据。这样,不论是更新还是对表中某些项的计算都会效率提高很多。处理好的数据发送入准备加载到数据仓库中的表中,最后一次性加载入数据仓库。 2)带有冗余字段的临时表 由于数据准备区中的表只有自己使用,所以建立冗余字段可以起到很好的作用而不用承担风险。 举例来说,笔者在项目中曾遇到这样的需求,客户表{客户ID,客户净扣值},债项表{债项ID,客户ID,债项余额,债项净扣值},即客户和债项是一对多的关系。其中,客户净扣值和债项余额已知,需要计算债项净扣值。计算的规则是按债项余额的比例分配客户的净扣值。这时,我们可以给两个表增加几个冗余字段,如客户表{客户ID,客户净扣值,客户余额},债项表{债项ID,客户ID,债项余额,债项净扣值,客户余额,客户净扣值}。这样通过三条SQL就可以直接完成整个计算过程。将债项余额汇总到客户余额,将客户余额和客户净扣值冗余到债项表中,在债项表中通过(债项余额×客户净扣值/客户余额)公式即可直接计算处债项净扣值。

数据仓库建模方法论 2018-3-29

数据仓库建模方法论 通过上一篇数据仓库建设的全局概览,我们认识了数据仓库,也明确了数据建模在仓库建设中的核心地位,数据仓库模型是整个大厦的基石,也是个难点。这么重要的环节就有必要单独拿出来详细说明一下。(本文的重点是维度建模)1什么是数据模型 数据模型是抽象描述现实世界的一种方法,是通过抽象的实体及实体之间的联系来表示现实世界中事务的相互关系的一种映射。 数据仓库模型是数据模型中针对特定的数据仓库应用系统的特定模型。由下图四部分内容组成: ●业务建模,主要解决业务层面的分解和程序化。 ●领域建模,主要对业务模型进行抽象处理,生成领域概念模型。 ●逻辑建模,主要将领域模型的概念实体以及实体之间的关系进行数据库层 次的逻辑化。 ●物理建模,主要解决逻辑模型针对不同关系型数据库的物理化以及性能等 一些具体的技术问题。

2数据仓库数据模型架构 数据仓库模型由五部分组成,如下图: 系统记录域:数据仓库业务数据存储区,模型保证了数据的一致性。(继续使用Oracle?) 内部管理域:也就是元数据模型的存储管理。(工具待定) 汇总域:系统记录域的汇总数据,数据模型保证的主题分析的性能,满足部分报表查询。 分析域:用于各个业务部分的具体的主题分析。也就是数据集市。 反馈域:针对前端反馈的数据,根据业务需求而定。 3数据模型的作用 ●进行全面的业务梳理,改进业务流程。 ●建立全方位的数据视角,打通信息孤岛,去除数据差异。 ●解决业务的变动,提高数据仓库灵活性。 ●帮助数据仓库系统本身的建设。

4如何创建数据仓库模型 4.1数据仓库建模四个阶段 4.1.1业务建模 ●划分整个企业的业务,一般按部门划分,进行各个部分之间业务工作 的界定,理清各业务部门之间的关系。 ●深入了解各业务部门工作流程的方法。 ●提出修改和改进业务部门工作流程的方法。 ●数据建模的范围界定,确定数据仓库项目的目标和阶段划分。 4.1.2领域概念建模 ●抽取关键业务概念,并抽象化。 ●将业务概念分组,按业务主线聚合类似的分组概念。 ●细化分组概述,理清分组概念内的精力流程并抽象化。 ●理清分组概念之间的关联,形成完整的领域概念模型。 4.1.3逻辑建模 业务概念实体化、事实实体化、说明实体化,并考虑其属性内容。 4.1.4物理建模 ●针对特定物理平台做出相应的技术调整 ●针对模型的性能考虑,结合特定平台做出相应调整

数据仓库建模详解和建模技巧

一、构建企业级数据仓库五步法 (一)、确定主题 即确定数据分析或前端展现的主题。例如:我们希望分析某年某月某一地区的啤酒销售情况,这就是一个主题。主题要体现出某一方面的各分析角度(维度)和统计数值型数据(量度)之间的关系,确定主题时要综合考虑。 我们可以形象的将一个主题想象为一颗星星:统计数值型数据(量度)存在于星星中间的事实表;分析角度(维度)是星星的各个角;我们将通过维度的组合,来考察量度。那么,“某年某月某一地区的啤酒销售情况”这样一个主题,就要求我们通过时间和地区两个维度的组合,来考察销售情况这个量度。从而,不同的主题来源于数据仓库中的不同子集,我们可以称之为数据集市。数据集市体现了数据仓库某一方面的信息,多个数据集市构成了数据仓库。 (二)、确定量度 在确定了主题以后,我们将考虑要分析的技术指标,诸如年销售额之类。它们一般为数值型数据。我们或者将该数据汇总,或者将该数据取次数、独立次数或取最大最小值等,这样的数据称为量度。 量度是要统计的指标,必须事先选择恰当,基于不同的量度可以进行复杂关键性能指标(KPI)等的设计和计算。

(三)、确定事实数据粒度 在确定了量度之后,我们要考虑到该量度的汇总情况和不同维度下量度的聚合情况。考虑到量度的聚合程度不同,我们将采用“最小粒度原则”,即将量度的粒度设置到最小。 例如:假设目前的数据最小记录到秒,即数据库中记录了每一秒的交易额。那么,如果我们可以确认,在将来的分析需求中,时间只需要精确到天就可以的话,我们就可以在ETL处理过程中,按天来汇总数据,此时,数据仓库中量度的粒度就是“天”;反过来,如果我们不能确认将来的分析需求在时间上是否需要精确到秒,那么,我们就需要遵循“最小粒度原则”,在数据仓库的事实表中保留每一秒的数据,以便日后对“秒”进行分析。 在采用“最小粒度原则”的同时,我们不必担心海量数据所带来的汇总分析效率问题,因为在后续建立多维分析模型(CUBE)的时候,我们会对数据提前进行汇总,从而保障产生分析结果的效率。关于建立多维分析模型(CUBE)的相关问题,我们将在下期栏目中予以阐述。 (四)、确定维度 维度是指分析的各个角度。例如我们希望按照时间,或者按照地区,或者按照产品进行分析,那么这里的时间、地区、产品就是相应的维度。基于不同的维度,我们可以看到各量度的汇总情况,也可以基于所有的维度进行交叉分析。

数据仓库成功应用案例讨论

中国银行广东分行数据仓库成功应用案例 信用卡业务是商业银行业务中非常重要的一部分,中国的商业银行开展信用卡业务已多年,相关数据积累相对完备且真实,信用卡业务的经营运作也已从简单的扩大规模、以量取胜阶段进入到成熟竞争、以质取胜阶段,各商业银行不断推出新的服务品种和花样繁多的增值服务,提高市场占有率并强化品牌意识以获得利润。 中国加入WTO后,银行卡业务将在3至5年内对外资银行开放,而银行卡业务不依赖于分支机构的特点将使中国的商业银行信用卡业务面临更加严酷的竞争。信用卡业务竞争本质上就是客户的竞争,而且是优质客户的竞争。针对客户发现、客户提升、客户保持、市场细分、忠诚度、贡献度、个性化服务乃至个人信用风险等等一系列围绕客户关系的新问题,支持日常运作的信用卡生产系统是面向柜员和交易的日常营运和客户服务基础设施,无法提供众多分析、决策型用户对大量历史数据同时进行突发的、复杂的决策分析,而建立一套以客户为中心的信用卡业务分析系统则是实现上述命题的必要可行手段。 在这种情况下,中国银行广东分行引入了海波龙的Hyperion Intelligence,希望通过利用Hyperion Intelligence应用实现这样的目标:建立一套以客户为中心的信用卡业务分析系统,方便企业各级工作人员获取各类信息,实现对成本收益、风险控制、绩效评估、客户管理、营销战役等决策目标的支持,并达到风险管理和控制、客户关系管理与个性化服务、商户分析与市场策略、费用控制与利润分析四大应用目标。 成功典范 中国银行广东省分行是国内金融界最早成功实施数据仓库应用解决方案的单位,其在1996年投产的省市两级金融管理信息系统(FMIS)因首次采用并成功实施先进的数据仓库/OLAP技术而荣获“八五”国家科技攻关重大成果奖,并成为目前业界反复引用的典型成功案例。 在随后的数年中,中国银行广东省分行在决策支持/数据仓库应用研发方面的投入一直保持相当大的力度,陆续推出数项新的应用,应用领域也从最初的财务管理、资产负债指标监控等分析主题逐步延伸至目前的客户及消费行为分析、个人信用评估、授信风险监控、客户关系管理以及一对一个性化营销等分析主题。 广东华际友天信息科技有限公司和中国银行广东省分行共同实施的信用卡分析系统采用了Hyperion和IBM在业界领先的数据仓库技术和工具,专门针对信用卡业务的商业智能应用。此系统的研制目的是为与信用卡业务有关各级管理人员、统计分析人员、风险监控人员,特别是业务发展人员提供灵活有效的实时数据分析/决策支持环境,使他们能够便捷地获得并分析客户特征信息、各交易要素信息以及市场统计信息,从而支持成本收益、风险控制、绩效评估、客户管理、营销战役等决策目标的实现。

数据中心建模方案

数据中心建模方案 前言 每个行业有自己的模型,但是不同行业的数据模型,在数 据建模的方法上,却都有着共通的基本特点。 什么是数据模型 数据模型是抽象描述现实世界的一种工具和方法,是通过抽象的实体及实体之间联系的形式,来表示现实世界中事务的相系的 一种映射。 在这里,数据模型表现的抽象的是实体和实体之间的关系, 通过对实体和实体之间关系的定义和描述,来表达实际的业务中 具体的业务关系。 数据仓库模型是数据模型中针对特定的数据仓库应用系统 的一种特定的数据模型,一般的来说,我们数据仓库模型分为几 下几个层次。

数据仓库模型 通过上面的图形,我们能够很容易的看出在整个数据仓库得建模过程中,我们需要经历一般四个过程: ?业务建模,生成业务模型,主要解决业务层面的分解和程序化。 ?领域建模,生成领域模型,主要是对业务模型进行抽象处理,生成领域概念模型。 ?逻辑建模,生成逻辑模型,主要是将领域模型的概念实体以及实体之间的关系进行数据库层次的逻辑化。 ?物理建模,生成物理模型,主要解决,逻辑模型针对不同关系型数据库的物理化以及性能等一些具体的技术问题。 因此,在整个数据仓库的模型的设计和架构中,既涉及到业务知识,也涉及到了具体的技术,我们既需要了解丰富的行业经验, 同时,也需要一定的信息技术来帮助我们实现我们的数据模型,最重要的是,我们还需要一个非常适用的方法论,来指导我们自己针对我们的业务进行抽象,处理,生成各个阶段的模型。

为什么需要数据模型 在数据仓库的建设中,我们一再强调需要数据模型,那么数据模型究竟为什么这么重要呢?首先我们需要了解整个数据仓库的建设的发展史。 数据仓库的发展大致经历了这样的三个过程: ?简单报表阶段:这个阶段,系统的主要目标是解决一些日常的工作中业务人员需要的报表, ?以及生成一些简单的能够帮助领导进行决策所需要的汇总数据。这个阶段的大部分表现形式为数据库和前端报表工 具。 ?数据集市阶段:这个阶段,主要是根据某个业务部门的需要,进行一定的数据的采集,整理,按照业务人员的需要,进行多维报表的展现,能够提供对特定业务指导的数据, 并且能够提供特定的领导决策数据。 ?数据仓库阶段:这个阶段,主要是按照一定的数据模型,对整个企业的数据进行采集,整理,并且能够按照各个业 务部门的需要,提供跨部门的,完全一致的业务报表数据,能够通过数据仓库生成对对业务具有指导性的数据,同时,为领导决策提供全面的数据支持。

数据仓库建模

背景介绍 熟悉社保行业的读者可以知道,目前我们国家的社保主要分为养老,失业,工伤,生育,医疗保险和劳动力市场这6 大块主要业务领域。在这6 大业务领域中,目前的状况养老和事业的系统已经基本完善,已经有一部分数据开始联网检测。而,对于工伤,生育,医疗和劳动力市场这一块业务,有些地方发展的比较成熟,而有些地方还不够成熟。 1.业务建模阶段 基于以上的背景介绍,我们在业务建模阶段,就很容易来划分相应的业务。因此,在业务建模阶段,我们基本上确定我们本次数据仓库建设的目标,建设的方法,以及长远规划等。如下图: 图8. 业务建模阶段 在这里,我们将整个业务很清楚地划分成了几个大的业务主线,例如:养老,失业,工伤,生育,医疗,劳动力等着几个大的部分,然后我们可以根据这些大的模块,在每个业务主线内,考虑具体的业务主线内需要分析的业务主题。 因此,业务建模阶段其实是一次和业务人员梳理业务的过程,在这个过程中,不仅能帮助我们技术人员更好的理解业务,另一方面,也能够发现业务流程中的一些不合理的环节,加以改善和改进。 同时,业务建模阶段的另一个重要工作就是确定我们数据建模的范围,例如:在某些数据准备不够充分的业务模块内,我们可以考虑先不建设相应的数据模型。等到条件充分成熟的情况下,我们可以再来考虑数据建模的问题。 2.领域概念建模阶段领域概念建模阶段是数据仓库数据建模的一个重要阶段,由于我们在业务建模阶段已经完全理清相应的业务范围和流程,因此,我们在这个领域概念建模阶段的最主要的工作就是进行概念的抽象,整个领域概念建模的工作层次如下图所示:

图9. 领域概念建模阶段 从上图我们可以清楚地看到,领域概念建模就是运用了实体建模法,从纷繁的业务表象背后通过实体建模法,抽象出实体,事件,说明等抽象的实体,从而找出业务表象后抽象实体间的相互的关联性,保证了我们数据仓库数据按照数据模型所能达到的一致性和关联性。 从图上看,我们可以把整个抽象过程分为四个层次,分别为: ?抽象方法层,整个数据模型的核心方法,领域概念建模的实体的划分通过这种抽象方法来实现。 ?领域概念层,这是我们整个数据模型的核心部分,因为不同程度的抽象方法,决定了我们领域概念的不同。例如:在这里,我们可以使用“参与方”这个概念,同时,你也可以把他分成三个概念:“个人”,“公司”,和“经办机构”这三个概念。而我们在构建自己的模型的时候,可以参考业务的状况以及我们自己模型的需要,选择抽象程度高的概念或者是抽象程度低的概念。相对来说,抽象程度高的概念,理解起来较为复杂,需要专业的建模专家才能理解,而抽象程度低的概念,较适合于一般业务人员的理解,使用起来比较方便。笔者在这里建议读者可以选用抽象概念较低的实体,以方便业务人员和技术人员之间的交流和沟通。 ?具体业务层,主要是解决具体的业务问题,从这张图我们可以看出,具体的业务层,其实只是领域概念模型中实体之间的一些不同组合而已。因此,完整的数据仓库的数据模型应该能够相应灵活多变的前端业务的需求,而其本身的模型架构具有很强的灵活性。这也是数据仓库模型所具备的功能之一。 ?业务主线层,这个层次主要划分大的业务领域,一般在业务建模阶段即已经完成这方面的划分。 我们一般通过这种大的业务主线来划分整个业务模型大的框架。 通过领域概念建模,数据仓库的模型已经被抽象成一个个的实体,模型的框架已经搭建完毕,下面的工作就是给这些框架注入有效的肌体。

数据仓库设计文档模板

数据仓库设计与实现 学号 128302106 姓名江晨婷 成绩 教师张丹平 二O一五年四月

数据仓库建设方案设计与实现 摘要:本文以博士学位调查为基础,创建方案,设计与实现数据仓库,通过对当前各种主流数据仓库软件在性能、价格等方面的对比,充分考虑统计业务、单位数量等实际情况,本系统决定采用SQL Server 2005数据仓库软件来构建综合信息分析系统的数据仓库。 关键词:数据仓库;联机分析;数据挖掘;博士学位 一、概述 数据仓库的设计一般从操作型数据开始,通常需要经过以下几个处理过程;数据仓库设计——数据抽取——数据管理。 1.数据仓库设计 根据决策主题设计数据仓库结构,一般采用星型和雪花模型设计其数据模型,在设计过程中应保证数据仓库的规范化和体系各元素的必要联系。 2.数据抽取 根据元数据库中的主题表定义、数据源定义、数据抽取规则定义对异地异构数据源进行清理、转换、对数据进行重新组织和加工,装载到数据仓库的目标库中。 3.数据管理 数据管理分为目标数据维护和元数据维护两方面。目标数据维护是根据元数据为所定义的更新频率、更新数据项等更新计划任务来刷新数据仓库,以反映数据源的变化,且对时间相关性进行处理。元数据是数据仓库的组成部分,元数据的质量决定整个数据仓库的质量。当数据源的运行环境、结构及目标数据的维护计划发生变化时,需要修改元数据。 二、博士学位授予信息年度数据统计分析 1.按主管部门统计 从主管部门的角度,分析在一个时间段(年)内,各主管部门所授予的博士学位信息统计。可回答如“2008,由某部门主管的,博士学位授予一共有多少,其平均学习年限是多少,脱产学习的有多少人?”等问题。具有表格和图形两种方式来展示分析结果。典型报表格式如表1所示

数据仓库模型建设规范1.0

数据仓库模型建设规范 1.概述 数据仓库不同于日常的信息系统开发,除了遵循其他系统开发的需求、分析、设计、测试等通常的软件生命周期之外,它还涉及到企业信息数据的集成,大容量数据的阶段处理和分层存储,数据仓库的模式选择等等,因此数据仓库的模型设计异常重要,这也是关系到数据仓库项目成败的关键。 物理模型就像大厦的基础架构,就是通用的业界标准,无论是一座摩天大厦也好,还是茅草房也好,在架构师的眼里,他只是一所建筑,地基—层层建筑—封顶,这样的工序一样也不能少,关系到住户的安全,房屋的建筑质量也必须得以保证,唯一的区别是建筑的材料,地基是采用钢筋水泥还是石头,墙壁采用木质还是钢筋水泥或是砖头;当然材料和建筑细节还是会有区别的,视用户给出的成本而定;还有不可忽视的一点是,数据仓库的数据从几百GB到几十TB不等,即使支撑这些数据的RDBMS无论有多么强大,仍不可避免地要考虑数据库的物理设计。 数据仓库建模的设计目标是模型的稳定性、自适应性和可扩展性。为了做到这一点,必须坚持建模的相对独立性、业界先进性原则。 2.数聚模型架构 在数聚项目实施过程,我们一般将数据仓库系统的数据划分为如下图所示几个层次。

2.1.数据架构图

2.2.架构工作方法规范

2.3.准备层L0 2.3.1.主要数据结构 临时表:从数据源抽取,直接落地到临时表。临时表总是保存这次抽取的数据,不保留历史数据。也就是说,如果是全量抽取的话,就是源系统整个表的数据,如果 是增量抽取的话,就是自从上次修改后的数据。 接口表:从临时表,经过清洗、转换到达接口表。接口表保存历史数据,也就是说,如果是全量抽取的话,就是源系统整个表的数据,如果是增量抽取的话。 接口表里面也是源系统整个表的数据。 转换表:为了进行清洗和转换建立的中间辅助表。 2.3.2.命名规范 临时表:L0_TMP_源系统_具体业务或 L0_TMP_业务主题_具体业务(对单一源)举例:L0_TMP_POS_SALESORDER 接口表:L0_DCI_业务主题_具体业务表 举例:L0_DCI_SALES_SALESORDER 转换表:L0_MAP_具体业务表 举例:L0_MAP_SALES 2.3.3.开发工作 ●开发数据抽取接口,落地TMP区 ●开发数据清洗转换程序,落地DCI区,多源系统进行合并 ●开发数据装载程序,装载到L1层 2.4.原子层L1 2.4.1.主要数据结构 维度表:整个数据仓库一致的维度 代码表:维度属性,非维度代码等。 原子事实表:根据业务主题,形成原子事实表 汇总事实表:根据分析主题,业务主题形成合并或汇总的事实表。

银行数据仓库构建的方法论

银行数据仓库构建的方法论 中国农业发展银行李小庆 (专注、专业、专长。作者为金融信息化专家,管理学博士) 银行数据仓库是用于决策支持的、面向主题的、集成的、稳定的和随时间变化的数据集合,它的目标是辅助决策,因此其历史的、概括的数据比详细的、个别的记录更重要。由于数据仓库中的数据是集成化的数据,它可能来自多个(异种)操作数据库,可能跨越较长的时间周期,它比操作数据库大几个数量级。一般而言,企业级的数据仓库其数据量可达几TB至几十TB之间,工作负荷主要是查询和分析。通常,复杂的查询可以访问几百万条记录,执行许多的扫描、连接和聚合操作,在这里查询吞吐量和响应时间比事务吞吐量更重要。 目前,各家银行已就相关业务建立了数据仓库,并初步取得了应用效果。但是,当前数据仓库都是根据具体业务分类进行建设,只能实现业务范围内的单目标决策,为了实现综合目标决策支持,就需要将不同类型数据仓库中的数据再次集成起来,并对其进行存储、管理和维护。因此,本文提出银行数据仓库的概念,通过建立全行综合性的数据仓库,采用分析软件或挖掘工具进行分析和挖掘,实施多目标决策。也就是说综合银行现有的货币经营数据仓库、信贷业务数据仓库、银行卡数据仓库、人事数据仓库等数据仓库的进行再次整合,建立一个面向主题的、集成的、综合的和持久的数据集合,在此基础上进行多维分析和数据挖掘,为银行的业务进行综合分析和战略决策提供有力的数据平台。 一、数据仓库模型和创建过程描述 尽管数据仓库是面向主题的,并为分析需求保存了许多综合数据,但对各类银行业务分类建立数据仓库,因此建立面向所有主要业务和内部管理流程、具有综合性特征的数据仓库,成为当前银行创新业务品种、提高服务质量的实际需求。数据仓库分析和决策目标众多,相关需求千变万化,数据仓库的主题面临不断增加、完善和调整,同时随着数据的不断加载,数据仓库会越来越庞大。如果仅仅基于单一层次建立数据仓库,将使系统的性能低下,因此,在实际应用中应建立分层的数据仓库体系化结构。根据管理层次的需求,数据仓库体系化结构环境可分为三个层级:基础层级、部门层级和高级管理层级的数据仓库。 基础层级数据仓库中存放的是一些细节性的操作型数据,服务于高性能的偏向事务类的分析和全行统计类的分析。部门层级数据仓库中一般仅包括某类业务的全部导出数据,用于部门决策类分析。而高级管理层级的数据仓库的数据都是综合粒度的,用于银行高管人员启发式分析。数据仓库的体系化结构环境能较好地与银行的“高-中-低”形式的组织结构相对应。如普通OLAP分析人员主要应用基础层级数据仓库,进行日常业务分析处理和统计;中层管理主要应用部门层级数据仓库,它既包括一般业务处理,又可进行定量分析,做出一般决策和控制;高层管理应用高级管理层级数据仓库,主要任务是进行战略决策,需要进行复杂的分析加工。 由于当前各个厂商提供的数据仓库解决方案从系统架构到具体硬件软件功能划分都或多或少的存在差异,所以相对应的在数据仓库项目的分析、开发和实施过程中遵从的方法论也不尽相同。建立银行数据仓库是一项系统工程,需要组织各方面的资源,协调各方面的关系。可扩展数据仓库建设方法论的三个阶段主要包括:统一规划,设计和实施,评估和提高三个阶段,如下图所示。

数据仓库成功案例

数据仓库成功案例3 兴业证券数据仓库系统 编者按:兴业证券选择了Sybase的数据仓库解决方案,以帮助其成功地实现交易数据的集中处理和分析。该系统的应用采用三层式数据仓库结构,使系统具有优越的处理性能、高度可扩展性、开放性、灵活性和可管理性。 用户背景 兴业证券作为一家综合类专业证券公司、中国证券业协会理事单位,在福建省乃至全国的证券界都具有一定的影响力。公司总部设在福州,在上海也设立了区域管理总部,已经初步构建了辐射全国的业务经营机构网络。在中国加入WTO之后,兴业证券也面临着新的挑战和机遇。如何将现有的优势充分发挥并创造新的竞争优势,从而加强其在证券行业的领先地位,是兴业证券面临的重要课题。 从2001年7月开始,Sybase公司与兴业证券合作,共同开发兴业证券数据仓库和决策支持系统,帮助兴业证券总部实现对营业部集中管理和数据集中基础上的决策支持。 系统目标 兴业证券对现有信息系统的要求: * 对各个营业部交易数据汇总整合信息来源,从而提高决策信息的及时性、准确性、全局性、一致性; * 建立全面、统一、科学的日常决策分析报表/查询系统; * 深层次的信息加工,分析客户、市场、风险等主题项目,充分利用兴业证券的丰富数据; * 系统必须保证系统中每一条信息的安全性,对信息的访问进行安全性控制,这样才能充分保证信息不会泄漏,以维护证券市场的秩序; * 建立具有高处理能力和高扩展能力的数据仓库平台,以适应管理和处理日益庞大的市场数据的要求。 数据仓库系统将帮助兴业证券充分利用信息资源,为兴业证券提供坚实的信息基础以迎接上述的业务挑战和机遇。 建立数据仓库系统的目标: * 为各业务部门、兴业证券的领导层提供有效的决策管理信息支持,提高业务效率、

数据仓库与数据挖掘课程设计报告书

目录 1. 绪论 (2) 1.1项目背景 (2) 1.2 提出问题 (2) 2 数据库仓库与数据集的概念介绍 (2) 2.1数据仓库 (2) 2.2数据集 (3) 3 数据仓库 (3) 3.1 数据仓库的设计 (3) 3.1.1数据仓库的概念模型设计 (3) 3.1.2数据仓库的逻辑模型设计 (3) 3.2 数据仓库的建立 (4) 3.2.1数据仓库数据集 (4) 3.2.2建立维表 (4) 4.数据挖掘操作 (5) 4.1数据预处理 (5) 4.1.1描述性数据汇总 (5) 4.2决策树 (5) 5、实验心得 (13) 6、大总结 (14)

1. 绪论 1.1项目背景 在现在大数据时代,各行各业需要对商品及相关关节的数据进行收集处理,尤其零售行业,于企业对产品的市场需求进行科学合理的分析,从而预测出将来的市场,制定出高效的决策,给企业带来经济收益。 1.2 提出问题 对于超市的商品的购买时期和购买数量的如何决定,才可以使销售量最大,不积压商品,不缺货,对不同时期季节和不同人群制定不同方案,使企业收益最大,通过数据挖掘对数据进行决策树分析,关联分析,顺序分析与决策分析等可以制定出最佳方案。 2 数据库仓库与数据集的概念介绍 2.1数据仓库 数据仓库是为企业所有级别的决策制定过程提供支持的所有类型数据的战略集合。它是单个数据存储,出于分析性报告和决策支持的目的而创建。为企业提供需要业务智能来指导业务流程改进和监视时间、成本、质量和控制。 数据仓库是决策系统支持(dss)和联机分析应用数据源的结构化数据环境。

数据仓库研究和解决从数据库中获取信息的问题。数据仓库的特征在于面向主题、集成性、稳定性和时变性。 2.2数据集 数据集是指一种由数据所组成的集合。Data set(或dataset)是一个数据的集合,通常以表格形式出现。每一列代表一个特定变量。每一行都对应于某一成员的数据集的问题。它列出的价值观为每一个变量,如身高和体重的一个物体或价值的随机数。每个数值被称为数据资料。对应于行数,该数据集的数据可能包括一个或多个成员。 3 数据仓库 3.1 数据仓库的设计 3.1.1数据仓库的概念模型设计 概念模型的设计是整个概念模型开发过程的三阶段。设计阶段依据概念模型分析以及分析过程中收集的任何数据,完成星型模型和雪花型模型的设计。如果仅依赖ERD,那只能对商品、销售、客户主题设计成如图所示的概念模型。这种模型适合于传统的数据库设计,但不适合于数据仓库的设计。 3.1.2数据仓库的逻辑模型设计 逻辑建模是数据仓库实施中的重要一环,因为它能直接反映出各个业务的需求,同时对系统的物理实施有着重要的指导作用,它的作用在于可以通过实体和关系勾勒出企业的数据蓝图,数据仓库的逻辑模型设计任务主要有:分析主题域,确定要装载到数据仓库的主题、确认粒度层次划分、确认数据分割策略、关系模式的定义和记录系统定义、确认数据抽取模型等。逻辑模型最终设计成果包

建设数据仓库的八个步骤

大数据技术部 建设数据仓库的八个步骤2017年04月25日编制

建设数据仓库的八个步骤 摘要:建立数据仓库是一个解决企业问题的过程,业务人员往往不懂如何建立和使用数据仓库,发挥其决策支持的作用;信息部门的人员往往又不懂业务,不知道应该建立哪些决策主题。 关键词:数据仓库元数据 建设数据仓库 建立数据仓库是一个解决企业问题的过程,业务人员往往不懂如何建立和使用数据仓库,发挥其决策支持的作用;信息部门的人员往往又不懂业务,不知道应该建立哪些决策主题,从数据源中抽取哪些数据。因此数据仓库的项目小组应该由业务人员和信息部门的人员共同组成,双方需要相互沟通,协作开发数据仓库。 开发数据仓库的过程包括以下几个步骤。 1.系统分析,确定主题 建立数据仓库的第一个步骤就是通过与业务部门的充分交流,了解建立数据仓库所要解决的问题的真正含义,确定各个主题下的查询分析要求。 业务人员往往会罗列出很多想解决的问题,信息部门的人员应该对这些问题进行分类汇总,确定数据仓库所实现的业务功能。一旦确定问题以后,信息部门的人员还需要确定一下几个因素: ·操作出现的频率,即业务部门每隔多长时间做一次查询分析。 ·在系统中需要保存多久的数据,是一年、两年还是五年、十年。 ·用户查询数据的主要方式,如在时间维度上是按照自然年,还是财政年。 ·用户所能接受的响应时间是多长、是几秒钟,还是几小时。 由于双方在理解上的差异,确定问题和了解问题可能是一个需要多次往复的过程,信息部门的人员可能需要做一些原型演示给业务部门的人员看,以最终确定系统将要实现的功能确实是业务部门所需要的。

2.选择满足数据仓库系统要求的软件平台 在数据仓库所要解决的问题确定后,第二个步骤就是选择合适的软件平台,包括数据库、建模工具、分析工具等。这里有许多因素要考虑,如系统对数据量、响应时间、分析功能的要求等,以下是一些公认的选择标准: ·厂商的背景和支持能力,能否提供全方位的技术支持和咨询服务。 ·数据库对大数据量(TB级)的支持能力。 ·数据库是否支持并行操作。 ·能否提供数据仓库的建模工具,是否支持对元数据的管理。 ·能否提供支持大数据量的数据加载、转换、传输工具(ETT)。 ·能否提供完整的决策支持工具集,满足数据仓库中各类用户的需要。 3.建立数据仓库的逻辑模型 具体步骤如下: (1)确定建立数据仓库逻辑模型的基本方法。 (2)基于主题视图,把主题视图中的数据定义转到逻辑数据模型中。 (3)识别主题之间的关系。 (4)分解多对多的关系。 (5)用范式理论检验逻辑数据模型。

数据仓库建模与ETL实践技巧

一、数据仓库的架构 数据仓库(Data Warehouse DW)是为了便于多维分析和多角度展现而将数据按特定的模式进行存储所建立起来的关系型数据库,它的数据基于OLTP源系统。数据仓库中的数据是细节的、集成的、面向主题的,以OLAP系统的分析需求为目的。 数据仓库的架构模型包括了星型架构(图二:pic2.bmp)与雪花型架构(图三:pic3.bmp)两种模式。如图所示,星型架构的中间为事实表,四周为维度表,类似星星;而相比较而言,雪花型架构的中间为事实表,两边的维度表可以再有其关联子表,从而表达了清晰的维度层次关系。 从OLAP系统的分析需求和ETL的处理效率两方面来考虑:星型结构聚合快,分析效率高;而雪花型结构明确,便于与OLTP系统交互。因此,在实际项目中,我们将综合运用星型架构与雪花型架构来设计数据仓库。 那么,下面我们就来看一看,构建企业级数据仓库的流程。 二、构建企业级数据仓库五步法 (一)、确定主题 即确定数据分析或前端展现的主题。例如:我们希望分析某年某月某一地区的啤酒销售情况,这就是一个主题。主题要体现出某一方面的各分析角度(维度)和统计数值型数据(量度)之间的关系,确定主题时要综合考虑。 我们可以形象的将一个主题想象为一颗星星:统计数值型数据(量度)存在于星星中间的事实表;分析角度(维度)是星星的各个角;我们将通过维度的组合,来考察量度。那么,“某年某月某一地区的啤酒销售情况”这样一个主题,就要求我们通过时间和地区两个维度的组合,来考察销售情况这个量度。从而,不同的主题来源于数据仓库中的不同子集,我们可以称之为数据集市。数据集市体现了数据仓库某一方面的信息,多个数据集市构成了数据仓库。 (二)、确定量度 在确定了主题以后,我们将考虑要分析的技术指标,诸如年销售额之类。它们一般为数值型数据。我们或者将该数据汇总,或者将该数据取次数、独立次数或取最大最小值等,这样的数据称为量度。 量度是要统计的指标,必须事先选择恰当,基于不同的量度可以进行复杂关键性能指标(KPI)等的设计和计算。

建设数据仓库的八个步骤

建设数据仓库的八个步骤

————————————————————————————————作者: ————————————————————————————————日期: ?

大数据技术部 建设数据仓库的八个步骤 ???? 2017年04月25日编制

建设数据仓库的八个步骤 摘要: 建立数据仓库是一个解决企业问题的过程,业务人员往往不懂如何建立和使用数据仓库,发挥其决策支持的作用;信息部门的人员往往又不懂业务,不知道应该建立哪些决策主题。?关键词: 数据仓库元数据 建设数据仓库 建立数据仓库是一个解决企业问题的过程,业务人员往往不懂如何建立和使用数据仓库,发挥其决策支持的作用;信息部门的人员往往又不懂业务,不知道应该建立哪些决策主题,从数据源中抽取哪些数据。因此数据仓库的项目小组应该由业务人员和信息部门的人员共同组成,双方需要相互沟通,协作开发数据仓库。 ?开发数据仓库的过程包括以下几个步骤。 1.系统分析,确定主题 ?建立数据仓库的第一个步骤就是通过与业务部门的充分交流,了解建立数据仓库所要解决的问题的真正含义,确定各个主题下的查询分析要求。 ?业务人员往往会罗列出很多想解决的问题,信息部门的人员应该对这些问题进行分类汇总,确定数据仓库所实现的业务功能。一旦确定问题以后,信息部门的人员还需要确定一下几个因素: ?·操作出现的频率,即业务部门每隔多长时间做一次查询分析。 ?·在系统中需要保存多久的数据,是一年、两年还是五年、十年。 ·用户查询数据的主要方式,如在时间维度上是按照自然年,还是财政年。 ?·用户所能接受的响应时间是多长、是几秒钟,还是几小时。 由于双方在理解上的差异,确定问题和了解问题可能是一个需要多次往复的过程,信息部门的人员可能需要做一些原型演示给业务部门的人员看,以最终确定系统将要实现的功能确实是业务部门所需要的。 ? 2.选择满足数据仓库系统要求的软件平台

数据仓库建模方法

每个行业有自己的模型,但是不同行业的数据模型,在数据建模的方法上,却都有着共通的基本特点。什么是数据模型 数据模型是抽象描述现实世界的一种工具和方法,是通过抽象的实体及实体之间联系的形式,来表示现实世界中事务的相互关系的一种映射。 在这里,数据模型表现的抽象的是实体和实体之间的关系,通过对实体和实体之间关系的定义和描述,来表达实际的业务中具体的业务关系。 数据仓库模型是数据模型中针对特定的数据仓库应用系统的一种特定的数据模型,一般的来说, 我们数据仓库模型分为几下几个层次。 图 2. 数据仓库模型 通过上面的图形,我们能够很容易的看出在整个数据仓库得建模过程中,我们需要经历一般四个过程: ?业务建模,生成业务模型,主要解决业务层面的分解和程序化。 ?领域建模,生成领域模型,主要是对业务模型进行抽象处理,生成领域概念模型。 ?逻辑建模,生成逻辑模型,主要是将领域模型的概念实体以及实体之间的关系进行数据库层次的逻辑化。 ?物理建模,生成物理模型,主要解决,逻辑模型针对不同关系型数据库的物理化以及性能等一些具体的技术问题。 因此,在整个数据仓库的模型的设计和架构中,既涉及到业务知识,也涉及到了具体的技术,我们既需要了解丰富的行业经验, 同时,也需要一定的信息技术来帮助我们实现我们的数据模型,最重要的是,我们还需要一个非常适用的方法论,来指导我们自己针对我们的业务进行抽象,处理,生成各个阶段的模型。 为什么需要数据模型 在数据仓库的建设中,我们一再强调需要数据模型,那么数据模型究竟为什么这么重要呢?首先我们需要了解整个数据仓库的建设的发展史。 数据仓库的发展大致经历了这样的三个过程: ?简单报表阶段:这个阶段,系统的主要目标是解决一些日常的工作中业务人员需要的报表,

相关主题