数据仓库模型设计分享 1

28
数数数数数数数数数数 1 22/6/8 数数 1

Upload: thor

Post on 05-Feb-2016

150 views

Category:

Documents


0 download

DESCRIPTION

数据仓库模型设计分享 1. 分享提纲. 常用术语解释 DW 的发展历史 模型的作用 模型的演变层次 模型的建设方法 需求分析以及模型设计流程简介 金融行业 DW 模型. (一)常用术语解释. 模型: 个人理解为它是为了模拟、演示、深入分析被研究对象而建造的任何形式的物品,建造它的目的则是为了简化现实世界、预研未来产品、预测未知数据。 业务模型 : 也称企业模型,它为企业提供一个框架结构,以确保企业的应用系统与企业经常改进的业务流程紧密匹配,它是从纯业务角度对企业进行业务建模。 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 数据仓库模型设计分享 1

数据仓库模型设计分享 123/4/22 孙侨夫

1

Page 2: 数据仓库模型设计分享 1

分享提纲

1. 常用术语解释2. DW的发展历史3. 模型的作用4. 模型的演变层次5. 模型的建设方法6. 需求分析以及模型设计流程简介7. 金融行业 DW模型

2

Page 3: 数据仓库模型设计分享 1

(一)常用术语解释• 模型:个人理解为它是为了模拟、演示、深入分析被研究对象而建造的任何形式的物品,建造它的目的则是为了简化现实世界、预研未来产品、预测未知数据。• 业务模型 : 也称企业模型,它为企业提供一个框架结构,以确保企业的应用系统与企业经常改进的业务流程紧密匹配,它是从纯业务角度对企业进行业务建模。• 领域概念模型:对业务模型进行抽象处理成一个个业务概念实体,最常见的就是 E-R模型,与具体数据库系统无关,必须转化为逻辑或者物理数据模型才能在数据库系统中实现。• 逻辑数据模型:可以理解为领域概念模型中的概念实体以及实体之间的关系在关系型数据库上的逻辑化。• 物理模型:面向计算机的,因此与具体的数据库系统、操作系统以及计算机硬件都相关的,是逻辑数据模型在这个物理平台上的物理化。

3

Page 4: 数据仓库模型设计分享 1

(一)常用术语解释• 主题:对相同性质的一组业务概念进行聚类后抽象。• 3NF:每个关系模型都可以从第一范式到第五范式进行无损分解,但是目前常用的还是第三范式,它的特点就是每个属性都是原子的,每个非主属性都完全依赖于主属性,而非主键中一部分,每个非主属性不能依赖于其它关系中的属性。

4

Page 5: 数据仓库模型设计分享 1

(一)常用术语解释

5

事实表, sale_amt是度量值Dimention结尾的都是维表, id结尾的都是主属性

星型模型,如果维表后还有下一级,则为雪花模型

Page 6: 数据仓库模型设计分享 1

(二) DW的发展历史

• 简单报表阶段:解决一些日常工作中业务方需要的报表以及生成简单的能帮助领导进行决策所需要的轻度汇总数据,主要表现为数据库与前端报表工具,类似于现在的临时需求、小需求• 数据集市阶段:根据某个业务部门需要进行一定的数据采集、整理,能进行多维报表的展现,能提供特定业务指导与领导决策• 数据仓库阶段:按照一定数据模型,对全企业的数据进行采集、整理,能提供跨部门的、完全一致的数据,为领导决策提供全面的数据支持。

6

简单报表 数据集市 数据仓库

Page 7: 数据仓库模型设计分享 1

(三)模型的作用

• 对企业进行全面的业务梳理,进而改进业务流程,并指导业务部门的生产流程,提出企业级数据概念定义,并对这些概念提供详细和正式的结构化定义• 为企业建立全方位的数据视角,解决了信息孤岛和个部门间的数据差异• 快速和准确的业务范围界定,当新的业务需求产生时,可节约时间与成本,明确业务人员与技术人员的岗位范围界定,促进数据仓库系统本身的建设• 很好的隔离了底层技术的实现与上层业务的展现,更大程度上减少源业务的变动对上层应用的影响,建立了业务人员与技术人员之间交流与沟通的桥梁

7

Page 8: 数据仓库模型设计分享 1

(四)模型的演变层次-演变流程

上图不仅是模型的演变过程,同时也是模型设计的阶段,一个模型的建设其实就是由业务建模、概念建模、逻辑建模、物理建模这 4个阶段

8

业务模型 概念模型 逻辑模型 物理模型

Page 9: 数据仓库模型设计分享 1

(四)模型的演变层次-业务建模阶段

该阶段主要做如下工作:1)明确仓库的建设目标以及数据范围2)到业务部门进行源系统数据调研,深入了解业务流程并将其模型化3)提出业务部门的具体业务流程的修改以及改进方法,比如数据录入的规范等等4)各业务部门的需求收集,并提炼出指标与属性,指标需明确具体计算的业务逻辑,为模型建设后期的统一视图层提供直接依据

9

Page 10: 数据仓库模型设计分享 1

(四)模型的演变层次-概念建模阶段

该阶段主要做如下工作:1)抽取关键业务的概念,并将其分组,然后聚合类似的分组概念2)对分组概念进行抽象化,并理清各个分组概念之间的关联,最终形成完成的概念模型,也可以说是领域概念模型 通过上述工作就可以确定主题域以及主题域的概念、各个主题主题域下的抽象化的业务实体

10

Page 11: 数据仓库模型设计分享 1

(四)模型的演变层次-逻辑建模阶段

该阶段主要工作如下:1)对上述的业务概念实体化,并理清各个实体之间的关联关系,在这个过程中面临一个抉择,是继续以业务驱动为主(业务应用驱动)还是数据驱动为主,个人的经验是对于数据集市以业务驱动为主,仓库则以数据驱动为主2)对这些实体按照数据的属性进行一定的逻辑细化处理3)在上述工作之后面临一个抉择,继续以业务驱动 简单的说,可以把逻辑模型理解为领域概念模型在关系型数据库上的实例化

11

Page 12: 数据仓库模型设计分享 1

(四)模型的演变层次-物理建模阶段

该阶段的主要工作如下:1)针对特定的数据库,做相应的模型调整2)针对的模型的性能、管理的需求,做相应的模型调整,比如命名标准化、字段冗余处理、索引调整、分区调整等3)生成 DDL 脚本

12

Page 13: 数据仓库模型设计分享 1

(五)模型的建设方法- 3NF

• 范式建模法( Third Normal Form,简称 3NF):该方法是目前数据仓库建模中最常用的方法,也是有数据仓库大师Inmon 极力倡导的建模方法,在技术上可以解决关系型数据库的数据存储,因为减少了大量的数据冗余;在业务上可以使模型更加简洁易懂,数据的出口唯一

总结:从以往的项目经验来看,该方法的最大优点就是从关系型数据库的角度出发,结合了业务系统的数据模型,能很方便的实现数据仓库建模,同时逻辑清晰,避免了数据冗余。缺点就是从底层数据向数据集市的数据进行汇总时需要进行一定的变通,经常需要多表关联才能满足相应的需求,这也是为什么会在主题层之上还有一个统一视图层的原因13

Page 14: 数据仓库模型设计分享 1

(五)模型的建设方法-维度建模

• 维度建模:按照事实表、维表来构建数据仓库、数据集市,这个概念是由数据仓库大师 kimball提出的,也就是我们熟悉的星型模型。 总结:由于星型模型的事实表是针对各个维度做了大量的预处理,比如进行了预先的聚集、排序、分类等,通过这些大量的预处理,因为后续基于其上的应用在访问速度上面很快,另一个优点维度非常直观,紧紧围绕着业务模型,因此在建模的时候不需要经过特别的抽象处理,能快捷完成维度建模。 缺点就是业务发生变化的时候,需要重新进行维度的定义,往往需要重新进行维度数据的预处理,并导致大量的数据冗余,很难提供一个完整的描述实际业务中的各个实体之间的复杂业务逻辑的抽象方法,无法保证数据来源的一致性与完整性,因此不适合 DW的底层数据模型建设。

14

Page 15: 数据仓库模型设计分享 1

(五)模型的建设方法-实体建模

• 实体建模:优点类似于哲学,按照哲学上的说法,客观世界可以抽象成由一个个实体以及实体之间的关系组成。在模型建设中,引入这种方法,就能把所有业务抽象成一个个实体、实体之间的关系、关系的说明。• 总结:这种方法只是一种抽象客观世界的方法,因此注定只能局限在业务建模以及概念建模阶段,而逻辑建模、物理建模则是范式建模法与维度建模法发挥能量的阶段

15

Page 16: 数据仓库模型设计分享 1

(六)需求分析以及模型设计流程简介

16

1)数据需求分析流程1.需求收集与抽取

2.需求提炼

3.需求整理合并

4.数据需求分析

收集各业务部门的应用需求,对需求进行初步分析,并将需求按照分析主题进行分类

收集分析主题内的所有的需求,提炼需求要素(抽取数据项-维度、度量),进行归纳总结,取所有需求的并集。

将业务部门的需求合并后的指标在模板中以跟踪矩阵的列来展示,维度、数据需求频度、历史数据的追溯时长、业务定义及规则。

根据业务指标的需求,对照业务系统的数据源的数据定义、关系,同时提供业务逻辑质量指标。建立其数据源与业务指标之间的映射关系和加工

Page 17: 数据仓库模型设计分享 1

(六)需求分析以及模型设计流程简介2)模型设计流程

17

源系统调研数据需求分析

领域概念模型设计

逻辑模型设计

数据需求验证

物理模型设计

模型mapping

深入了解源业务系统,整理出业务模型

整理出业务指标、数据质量指标等

确定主题域、业务概念实体等

对业务实体按照建模方法逻辑实体化

检验逻辑模型的正确性、健壮性、完整性

针对具体物理平台对逻辑模型进行物理化

编写源系统表与物理模型的属性之间的映射关系文档

Page 18: 数据仓库模型设计分享 1

(六)金融行业通用模型以及实施方法1)模型介绍

该图没有标注出所有主题之间的关系( NCR F-LDM)

18

FINANCE PARTY LOCATIONA geographicalarea, physical orelectronic address.

An individual or group of individuals.

EVENTFinancial or non-financial eventwhich may involve contact with the customer.

INTERNAL ORGANIZATIONA unit of business withinthe financial institution or insurance company.

AGREEMENTAn arrangement between the customer and financialinstitution or insurancecompany for a product.

PRODUCTAny marketable product or serviceincluding terms and conditions.

CAMPAIGNA strategy, plan orpromotional event for the purpose of acquiringretaining, or expandingusage by customers.

CHANNELThe vehicle by which a customerinteracts with the Financial institution/insurance company.

The internal accountingof the business

Things that Parties have an interest in and has value

ASSET

Page 19: 数据仓库模型设计分享 1

(六)金融行业通用模型以及实施方法

19

IBM金融行业 FSDM模型

Page 20: 数据仓库模型设计分享 1

(六)金融行业通用模型以及实施方法

2)NCR以及 IBM在具体 dw 项目中实施方法

20

•LDM介绍•客户化研讨•讲解模板

•指标定义 •应用验证•数据验证•合理性验证•规范验证

客户化逻辑模型前期准备 项目组交流研讨 分析源系统 统一业务定义 模型验证•组建团队•收集资料•确定范围

•介绍源业务系统•分析整理数据结构•分析样本数据

•框架设计•模型详细设计•完善和回顾

Page 21: 数据仓库模型设计分享 1

B2B数据仓库模型现状

Page 22: 数据仓库模型设计分享 1

源系统 ODL BDL IDL ADL

网站内容

CRM

日志文件STAGE

网站内容数据

CRM数据

日志数据

浏览

当事人

服务

资产………

会员宽表

产品宽表

敏捷数据区

…DHW ETL ETL

VIEW

灵活报表

数据产品

分析应用

元数据管理

统一运维平台

ETL

浏览行为多维分析模型

B2B数据仓库体系架构

Page 23: 数据仓库模型设计分享 1

ODL数据建模方法及原则• ODL建模方法

−采用与源系统结构一致的数据模型− 增量抽取数据 -hash 、 erosa、源系统时间戳字段、其他接口等等

Page 24: 数据仓库模型设计分享 1

BDL数据建模方法及原则• BDL建模方法

− 偏源结构建模− 存储历史数据,记录所有历史数据变迁

− 缓慢变化维( SCD)− 快照

−数据清洗−数据解析−轻度数据整合

Page 25: 数据仓库模型设计分享 1

IDL数据建模方法及原则• BDL建模方法

−多维模型技术和宽表结合− 重要宽表数据域

− 会员− Offer /产品− 交易− 浏览− 帐户− 反馈−。。。。

Page 26: 数据仓库模型设计分享 1

ADL数据建模方法及原则• 以实际业务需求为驱动

−多维分析报表−数据产品引用(推荐引擎,WAI)−数据集市应用− ADHOC 查询−临时取数− 运营工具− 高层 KPI

Page 27: 数据仓库模型设计分享 1

THANKS !

Page 28: 数据仓库模型设计分享 1

28