(1)ER模型:数据仓库之父Bill Inmon提出从全企业的高度设计一个3NF模型,用ER模型来描述企业业务。数据仓库中的3NF与OLTP系统中的3NF的区别在于数据仓库是站在企业角度面向主题的抽象,而不是针对某个具体业务流程的实体对象关系的抽象。其具有几个特点--需要全面了解企业业务和数据,实施周期长,对建模人员的能力要求非常高。
(2)维度模型:数据仓库领域的Ralph Kimball大师所倡导的,维度建模从分析决策的需求出发构建模型,为分析需求服务,因此它重点关注用户如何更快速地完成需求分析,同时具有较好的大规模复杂查询的响应性能。其典型的代表是星型模型,以及在一些特殊场景下使用的雪花模型。
此外还有:
数据仓库模型实施过程:
目标:可管理、可追溯、可规避重复建设。
整体架构:
以维度建模作为理论基础,构建总线矩阵,划分和定义数据域、业务过程、维度、度量/原子指标、修饰类型、修饰词、时间周期、派生指标。
数据域:指面向业务分析,将业务过程或维度进行抽象的集合。
业务过程:指企业的业务活动事件,如下单、支付、退款都是业务过程;
时间周期:用来明确数据统计的时间范围或时间点;(如最近30天、自然周、截止当日等)
修饰类型:对修饰词的抽象划分;(比如,修饰词花呗,它的修饰类型是支付方式)
修饰词:隶属于修饰类型,是指除了统计维度以外指标的业务场景的限定抽象;(如在修饰类型支付方式下:花呗、账户余额、余额宝、银行卡,都是修饰词)
度量 / 原子指标:度量和原子指标含义相同,对某一业务行为(或业务过程中的不可拆分的行为事件)的度量(如,花呗,花了多少钱,具体的金额数值就是度量);
维度:是度量的环境,用来反映业务的一类属性(如,维度订单,是交易域下的一类属性),这类属性的集合构成一个维度,也可称为实体对象;
维度属性:隶属于一个维度,如地理维度里面的国家名称、国家 ID、省份名称等,都属于维度属性;
派生指标:派生指标 = 一个原子指标 + 多个修饰词(可选)+ 时间周期;
例:原子指标:支付金额,最近 1 天海外买家支付金额则为派生指标(最近 1 天为时间周期,海外为修饰词,买家作为维度,而不作为修饰词)
1)组成体系之间的关系
2)命名约定
3)算法
1)派生指标的种类
派生指标可以分为三类:事务型指标、存量型指标、复合型指标;(按照特性不同,有些需要新建原子指标,有些可以在其他类型原子指标的基础上增加修饰词形成派生指标)
2) 复合型指标的规则
比率型:创建原子指标,如 CTR、浏览 UV - 下单买家数转化率、满意率等;
例:“最近 1 天店铺首页 CTR(点击率)”,原子指标为 “CTR”,时间周期为 “最近 1 天”,修饰类型为 “页面类型”,修饰词为 “店铺首页”;
比例型:创建原子指标,如百分比、占比;
例:“最近 1 天无线支付金额占比”,原子指标为 “支付金额占比”,修饰类型为 “终端类型”,修饰词为 “无线”;
变化量型:不创建原子指标,增加修饰词,在此基础上创建派生指标;
例:“最近 1 天订单支付金额上 1 天变化量”,原子指标为 “订单支付金额”,时间周期为 “最近 1 天”,修饰类型为 “统计方法”,修饰词为 “上 1 天变化量”;
变化率型:创建原子指标;
例:“最近 7 天海外买家支付金额上 7 天变化率”,原子指标为 “支付金额变化率”,修饰类型为 “买家地域”(因为需求中重点强调“海外买家”),时间周期为 “最近 7 天”,修饰词为 “海外买家”;
统计型(均值、分位数):不需要创建原子指标,增加修饰词,在此基础上创建派生指标;
在修饰类型 “统计方法” 下增加修饰词,如人均、日均、行业平均、商品平均、90 分位数、70分位数等;
例:“自然月日均 UV(访问量)”,原子指标为 “UV”,修饰类型为 “统计方法”,修饰词为 “日均”;
排名型:创建原子指标,一般为 top_xxx_xxx ,有时会同时选择 rank 和 top_xxx_xxx 组合使用;创建派生指标时选择对应的修饰词如下:
对象集合型:主要指数据产品和应用需要展现数据时,将一些对象以 k-v 对的方式存储在一个字段中,方便前端展现。比如趋势图、TOP 排名对象等。其定义方式是,创建原子指标,一般为 xxx 串;创建派生指标时选择对应的修饰词如下:
上下层级同时存在时:如最近 1 天支付金额和最近 1 天 PC 端支付金额,建议使用前者,把 PC 端最为维度属性存放在物理表中体现;
父子关系原子指标存在时:派生指标使用子原子指标创建派生指标;(如 PV、IPV(商品详情页 PV),当统计商品详情页 PV 时,优先选择子原子指标)
以维度建模理论为基础,基于维度数据模型总线架构,构建一致性的维度和事实;
主要分三层:操作数据层(ODS)、公共维度数据层(CDM)、应用数据层(ADS);其中 CDM 数据层包括明细数据层(DWD)和汇总数据层(DWS);
(1)操作数据层(ODS):把操作系统数据几乎无处理的存放子数据仓库系统中;
同步:结构化数据增量或全量同步到 MaxCompute;
结构化:非结构化(日志)结构化处理并存储到 MaxCompute ;
累积历史、清洗:根据数据业务需求及稽核和审计要求保存历史数据、清洗数据;
(1)公共维度模型层(CDM):存放明细事实数据、维表数据及公共指标汇总数据,其中明细事实数据、维表数据一般根据 ODS 层数据架构生成;公共指标汇总数据一般根据维表数据和明细事实数据加工生成;
CDM 层又细分为 DWD 层和 DWS 层,分别是明细数据层和汇总数据层,
主要功能:
(3)应用数据层(ADS):存放数据产品个性化的统计指标数据,根据 CDM 层与 ODS 层加工;
2.3、基本原则
如何从具体的需求或项目转换为可实施的解决方案,如何进行需求分析、架构设计、详细模型设计等,则是模型实施过程中讨论的内容;
Kimball 维度建模主要讨论需求分析、高层模型、详细模型和模型审查整个过程;
构建维度模型主要经历 4 个阶段:
(1)高层模型设计
(2)详细模型设计
(3)模型审查、再设计和验证
Inmon 认为 数据模型 扮演着通往数据仓库其他部分的智能路线图的角色;(建立一个路线图——数据模型,描述数据仓库各部分是如何结合在一起的)
Inmon 将模型分为 3 个层次:ERD(Entity Relationship Diagram,实体关系图)层、DIS(Data Item Set,数据项集)层、物理层(Physical Model,物理模型);
建议采用螺旋式开发方法,采用迭代方式完成多次需求;但需要采用统一的 ERD 模型,才能够将每次迭代的结果整合在一起;
ERD 模型是高度抽象的数据模型,描述企业完整的数据,而每次迭代则是完成 ERD 模型的子集,通过 DIS 和物理数据模型实现;
业务建模,生成业务模型,主要解决业务层面的分解和程序化;
领域建模,生成领域模型,主要是对业务模型进行抽象处理,生成领域概念模型;
逻辑建模,生成逻辑模型,主要将领域模型的概念实体以及实体之间的关系进行数据库层次的逻辑化;
物理建模,生成物理模型,主要解决逻辑模型针对不同关系数据库的物理化以及性能等一些具体的技术问题;
收集数据使用者的需求;(可以找分析师、业务运营人员了解他们有什么数据诉求,一般更多的就是报表需求)
需求调研的两种途径:
例:分析师需要了解大淘宝(淘宝、天猫、天猫国际)一级类目的成交金额
获知需求后,需要考虑的问题:
- 根据什么(维度)汇总,汇总什么(度量 / 原子指标)?(这里类目是维度,金额是度量)
- 明细数据和汇总数据应该怎么设计?
- 这是一个公用的报表吗?
- 是需要沉淀到汇总表里面,还是在报表工具中进行汇总?
数据域:指面向业务分析,将业务过程或者维度进行抽象的集合;
业务过程可以概括为一个个不可拆分的行为事件,如下单、支付、退款;
为保障整个体系的生命力,数据域需要抽象提炼,并且长期维护和更新,但不轻易变动;
划分数据域原则:既能涵盖当前所有的业务需求,又能在新业务进入时无影响地被包含进已有的数据域中,或者扩展新的数据域;
例(构建采购分销数据域的总线矩阵):
一致性维度 是 在不同的业务动作中都包含的维度。
主要包括维度及属性的规范定义,维表、明细事实表、汇总事实表的模型设计;
OneData 的实施过程是一个高度迭代和动态的过程,一般采用螺旋式实施方法;
在总体架构设计完成后,开始根据数据域进行迭代式模型设计和评审;
在架构设计、规范定义、模型设计等模型实施过程中,都会引入评审机制,以确保模型实施过程的正确性;
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- hzar.cn 版权所有 赣ICP备2024042791号-5
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务