数据仓库模型设计分享 1
数据仓库模型设计分享 1. 分享提纲. 常用术语解释 DW 的发展历史 模型的作用 模型的演变层次 模型的建设方法 需求分析以及模型设计流程简介 金融行业 DW 模型. (一)常用术语解释. 模型: 个人理解为它是为了模拟、演示、深入分析被研究对象而建造的任何形式的物品,建造它的目的则是为了简化现实世界、预研未来产品、预测未知数据。 业务模型 : 也称企业模型,它为企业提供一个框架结构,以确保企业的应用系统与企业经常改进的业务流程紧密匹配,它是从纯业务角度对企业进行业务建模。
数据仓库模型设计分享 1
E N D
Presentation Transcript
分享提纲 • 常用术语解释 • DW的发展历史 • 模型的作用 • 模型的演变层次 • 模型的建设方法 • 需求分析以及模型设计流程简介 • 金融行业DW模型
(一)常用术语解释 • 模型:个人理解为它是为了模拟、演示、深入分析被研究对象而建造的任何形式的物品,建造它的目的则是为了简化现实世界、预研未来产品、预测未知数据。 • 业务模型:也称企业模型,它为企业提供一个框架结构,以确保企业的应用系统与企业经常改进的业务流程紧密匹配,它是从纯业务角度对企业进行业务建模。 • 领域概念模型:对业务模型进行抽象处理成一个个业务概念实体,最常见的就是E-R模型,与具体数据库系统无关,必须转化为逻辑或者物理数据模型才能在数据库系统中实现。 • 逻辑数据模型:可以理解为领域概念模型中的概念实体以及实体之间的关系在关系型数据库上的逻辑化。 • 物理模型:面向计算机的,因此与具体的数据库系统、操作系统以及计算机硬件都相关的,是逻辑数据模型在这个物理平台上的物理化。
(一)常用术语解释 • 主题:对相同性质的一组业务概念进行聚类后抽象。 • 3NF:每个关系模型都可以从第一范式到第五范式进行无损分解,但是目前常用的还是第三范式,它的特点就是每个属性都是原子的,每个非主属性都完全依赖于主属性,而非主键中一部分,每个非主属性不能依赖于其它关系中的属性。
(一)常用术语解释 事实表,sale_amt是度量值 Dimention结尾的都是维表,id结尾的都是主属性 星型模型,如果维表后还有下一级,则为雪花模型
(二)DW的发展历史 • 简单报表阶段:解决一些日常工作中业务方需要的报表以及生成简单的能帮助领导进行决策所需要的轻度汇总数据,主要表现为数据库与前端报表工具,类似于现在的临时需求、小需求 • 数据集市阶段:根据某个业务部门需要进行一定的数据采集、整理,能进行多维报表的展现,能提供特定业务指导与领导决策 • 数据仓库阶段:按照一定数据模型,对全企业的数据进行采集、整理,能提供跨部门的、完全一致的数据,为领导决策提供全面的数据支持。 简单报表 数据集市 数据仓库
(三)模型的作用 • 对企业进行全面的业务梳理,进而改进业务流程,并指导业务部门的生产流程,提出企业级数据概念定义,并对这些概念提供详细和正式的结构化定义 • 为企业建立全方位的数据视角,解决了信息孤岛和个部门间的数据差异 • 快速和准确的业务范围界定,当新的业务需求产生时,可节约时间与成本,明确业务人员与技术人员的岗位范围界定,促进数据仓库系统本身的建设 • 很好的隔离了底层技术的实现与上层业务的展现,更大程度上减少源业务的变动对上层应用的影响,建立了业务人员与技术人员之间交流与沟通的桥梁
(四)模型的演变层次-演变流程 上图不仅是模型的演变过程,同时也是模型设计的阶段,一个模型的建设其实就是由业务建模、概念建模、逻辑建模、物理建模这4个阶段 业务模型 概念模型 逻辑模型 物理模型
(四)模型的演变层次-业务建模阶段 该阶段主要做如下工作: 1)明确仓库的建设目标以及数据范围 2)到业务部门进行源系统数据调研,深入了解业务流程并将其模型化 3)提出业务部门的具体业务流程的修改以及改进方法,比如数据录入的规范等等 4)各业务部门的需求收集,并提炼出指标与属性,指标需明确具体计算的业务逻辑,为模型建设后期的统一视图层提供直接依据
(四)模型的演变层次-概念建模阶段 该阶段主要做如下工作: 1)抽取关键业务的概念,并将其分组,然后聚合类似的分组概念 2)对分组概念进行抽象化,并理清各个分组概念之间的关联,最终形成完成的概念模型,也可以说是领域概念模型 通过上述工作就可以确定主题域以及主题域的概念、各个主题主题域下的抽象化的业务实体
(四)模型的演变层次-逻辑建模阶段 该阶段主要工作如下: 1)对上述的业务概念实体化,并理清各个实体之间的关联关系,在这个过程中面临一个抉择,是继续以业务驱动为主(业务应用驱动)还是数据驱动为主,个人的经验是对于数据集市以业务驱动为主,仓库则以数据驱动为主 2)对这些实体按照数据的属性进行一定的逻辑细化处理 3)在上述工作之后面临一个抉择,继续以业务驱动 简单的说,可以把逻辑模型理解为领域概念模型在关系型数据库上的实例化
(四)模型的演变层次-物理建模阶段 该阶段的主要工作如下: 1)针对特定的数据库,做相应的模型调整 2)针对的模型的性能、管理的需求,做相应的模型调整,比如命名标准化、字段冗余处理、索引调整、分区调整等 3)生成DDL脚本
(五)模型的建设方法-3NF • 范式建模法(Third Normal Form,简称3NF):该方法是目前数据仓库建模中最常用的方法,也是有数据仓库大师Inmon极力倡导的建模方法,在技术上可以解决关系型数据库的数据存储,因为减少了大量的数据冗余;在业务上可以使模型更加简洁易懂,数据的出口唯一 总结:从以往的项目经验来看,该方法的最大优点就是从关系型数据库的角度出发,结合了业务系统的数据模型,能很方便的实现数据仓库建模,同时逻辑清晰,避免了数据冗余。缺点就是从底层数据向数据集市的数据进行汇总时需要进行一定的变通,经常需要多表关联才能满足相应的需求,这也是为什么会在主题层之上还有一个统一视图层的原因
(五)模型的建设方法-维度建模 • 维度建模:按照事实表、维表来构建数据仓库、数据集市,这个概念是由数据仓库大师kimball提出的,也就是我们熟悉的星型模型。 总结:由于星型模型的事实表是针对各个维度做了大量的预处理,比如进行了预先的聚集、排序、分类等,通过这些大量的预处理,因为后续基于其上的应用在访问速度上面很快,另一个优点维度非常直观,紧紧围绕着业务模型,因此在建模的时候不需要经过特别的抽象处理,能快捷完成维度建模。 缺点就是业务发生变化的时候,需要重新进行维度的定义,往往需要重新进行维度数据的预处理,并导致大量的数据冗余,很难提供一个完整的描述实际业务中的各个实体之间的复杂业务逻辑的抽象方法,无法保证数据来源的一致性与完整性,因此不适合DW的底层数据模型建设。
(五)模型的建设方法-实体建模 • 实体建模:优点类似于哲学,按照哲学上的说法,客观世界可以抽象成由一个个实体以及实体之间的关系组成。在模型建设中,引入这种方法,就能把所有业务抽象成一个个实体、实体之间的关系、关系的说明。 • 总结:这种方法只是一种抽象客观世界的方法,因此注定只能局限在业务建模以及概念建模阶段,而逻辑建模、物理建模则是范式建模法与维度建模法发挥能量的阶段
(六)需求分析以及模型设计流程简介 1)数据需求分析流程 收集各业务部门的应用需求,对需求进行初步分析,并将需求按照分析主题进行分类 1.需求收集与抽取 收集分析主题内的所有的需求,提炼需求要素(抽取数据项-维度、度量),进行归纳总结,取所有需求的并集。 2.需求提炼 将业务部门的需求合并后的指标在模板中以跟踪矩阵的列来展示,维度、数据需求频度、历史数据的追溯时长、业务定义及规则。 3.需求整理合并 根据业务指标的需求,对照业务系统的数据源的数据定义、关系,同时提供业务逻辑质量指标。建立其数据源与业务指标之间的映射关系和加工 4.数据需求分析
(六)需求分析以及模型设计流程简介 深入了解源业务系统,整理出业务模型 源系统调研 2)模型设计流程 整理出业务指标、数据质量指标等 数据需求分析 确定主题域、业务概念实体等 领域概念模型设计 对业务实体按照建模方法逻辑实体化 逻辑模型设计 检验逻辑模型的正确性、健壮性、完整性 数据需求验证 针对具体物理平台对逻辑模型进行物理化 物理模型设计 编写源系统表与物理模型的属性之间的映射关系文档 模型mapping
(六)金融行业通用模型以及实施方法 ASSET 1)模型介绍 该图没有标注出所有主题之间的关系(NCR F-LDM) FINANCE PARTY Things that Parties have an interest in and has value LOCATION The internal accounting of the business An individual or group of individuals. A geographical area, physical or electronic address. CAMPAIGN AGREEMENT EVENT A strategy, plan or promotional event for the purpose of acquiring retaining, or expanding usage by customers. An arrangement between the customer and financial institution or insurance company for a product. Financial or non-financial event which may involve contact with the customer. CHANNEL PRODUCT The vehicle by which a customer interacts with the Financial institution/insurance company. INTERNAL ORGANIZATION Any marketable product or service including terms and conditions. A unit of business within the financial institution or insurance company.
(六)金融行业通用模型以及实施方法 IBM金融行业FSDM模型
(六)金融行业通用模型以及实施方法 2)NCR以及IBM在具体dw项目中实施方法 客户化 逻辑模型 分析 源系统 前期 准备 项目组 交流研讨 统一 业务定义 模型 验证 • 介绍源业务系统 • 分析整理数据结构 • 分析样本数据 • 指标定义 • 应用验证 • 数据验证 • 合理性验证 • 规范验证 • 框架设计 • 模型详细设计 • 完善和回顾 • 组建团队 • 收集资料 • 确定范围 • LDM介绍 • 客户化研讨 • 讲解模板
B2B数据仓库体系架构 统一运维平台 源系统 ODL BDL IDL ADL ETL DHW ETL ETL 浏览 网站内容 网站内容数据 会员宽表 灵活报表 当事人 CRM CRM数据 产品宽表 数据产品 服务 … … … 浏览行为多维分析模型 STAGE … … 日志文件 资产 日志数据 分析应用 敏捷数据区 VIEW 元数据管理
ODL数据建模方法及原则 • ODL建模方法 • 采用与源系统结构一致的数据模型 • 增量抽取数据-hash、erosa、源系统时间戳字段、其他接口等等
BDL数据建模方法及原则 • BDL建模方法 • 偏源结构建模 • 存储历史数据,记录所有历史数据变迁 • 缓慢变化维(SCD) • 快照 • 数据清洗 • 数据解析 • 轻度数据整合
IDL数据建模方法及原则 • BDL建模方法 • 多维模型技术和宽表结合 • 重要宽表数据域 • 会员 • Offer/产品 • 交易 • 浏览 • 帐户 • 反馈 • 。。。。
ADL数据建模方法及原则 • 以实际业务需求为驱动 • 多维分析报表 • 数据产品引用(推荐引擎,WAI) • 数据集市应用 • ADHOC查询 • 临时取数 • 运营工具 • 高层KPI