第9章:阿里巴巴数据整合及管理体系
大数据系统建设的方向
- 对数据有序有结构的分类组织和存储
- 避免重复建设
- 避免数据不一致
- 保证数据的规范性
9.1概述
方法论核心:从业务架构设计到模型设计,从数据研发到数据服务,做到可管理,可追溯,可规避重复建设。
未来发展方向是以数据服务为核心的,比如数据质量,数据治理提升服务准确度,数据产品提升数据可视化服务的体感
从现实场景看,并不能完全规避重复建设,只能减少
9.1.1 定位及价值
定位:建设统一的,规范化的数据接入层(ods)和数据中间层(DWD 和 DWS)
对外产出:数据服务和数据产品
价值:降低数据互通成本,释放计算,存储,人力等资源
9.1.2 体系架构
业务板块
根据业务属性划分出业务板块
规范定义
数据规范命名体系
模型设计
以维度建模为基础。
表规范命名体系。
9.2.1 名词术语
数据域 :
- 指面向业务分析,将业务过程或者维度进行抽象的集合。
- 数据域是需要抽象提炼的
- 需要长期维护
- 不会轻易变动
业务过程:
- 一个个不可拆分的行为事件,在业务过程之下可以定义指标
- 通俗的讲业务过程是企业活动中的事件
时间周期:
- 用来明确数据统计的时间范围或者时间点,如最近30天,自然周,截止当日等
修饰类型:
- 是对修饰词的一种抽象划分。
修饰词:
- 指除了统计维度以外的业务场景限定抽象。
度量/原子指标:
- 相同的含义,指基于某一业务事件行为下的度量
- 是业务定义中不可再分的指标
- 具有明确的的业务含义的名词
维度:
- 是指标的度量环境
- 反映业务的一类属性,这类属性的集合构成一个维度,也可以称为实体对象。
- 维度术语一个数据域,如地理纬度,时间维度
纬度属性:
- 隶属于一个维度,如地理维度下的国家名称,国家id,省份等
派生指标:
- 一般由 原子指标,多个修饰词(可选) ,时间周期组成
9.2.2 指标体系
原子指标+时间周期限定+其他修饰词=派生指标
指标算法描述:原则上是能让使用人员能够看得明白,可以通过以下三个方面介绍:
- 算法概述--算法对应的用户容易理解的阐述
- 举例-- 通过具体的例子帮助理解指标算法。
- sql算法说明-- 对于派生指标鬼畜sql的写法或者伪代码
派生指标的种类
- 事物型指标:对业务活动进行衡量的指标。如新增注册会员数。
- 存量型指标:对实体对象的状态进行统计。如注册会员数。
- 复合型指标:是在事物型指标和存量型指标的基础上复合而成的。例如:浏览UV-下单买家数转化率。
复合型指标的规则
- 比率型:需要创建原子指标,如转化率,满意率
- 比例型:需要创建原子指标,如百分比,占比
- 变化量型:不创建原子指标,增加修饰词,在此基础上创建的派生指标。
- 变化率型:创建原子指标。
- 统计型(均值,分位数等):不创建原子指标,增加修饰词,在此基础上创建派生指标
- 排名型:需要创建原子指标
- 对象集合型:主要是指数据产品和应用需要展现数据时,将一些对象以k-v对的方式存储在一个字段中,方便前端展示。
其它规则
-
上下级派生指标同时存在时,将下级指标的限定词作为维度属性存放到物理表中体现
比如 近1天支付金额和最近一天PC端支付金额,可以将PC端作为维度数据存放到物理表中。
-
父子关系原子指标同时存在时(疑问点:父子关系原子指标怎么理解?)
当父子关系原子指标存在时,派生指标使用原子指标创建派生指标。如PV,IPV(商品详情页PV),当统计商品详情页PV时,优先选择原子指标。
9.3 模型设计
以维度建模理论为基础,基于维度数据模型总线架构,构建一致性维度和事实。
9.3.2 模型层次
-
ODS-- 操作数据层
-
CDM-- 公共维度模型层
- DWD-- 明细数据层
- DWS-- 汇总数据层
-
ADS-- 应用数据层
操作数据层(ODS)
- 数据同步,几乎无处理的存放到数据仓库中(一般会有增量和全量两种方式)
- 将非结构化(日志)的数据处理并存储到数据仓库
- 数据简单的清洗和转化
公共维度模型层(CMD)
- 明细事实数据:来源ods层
- 维表数据:来源ods层
- 公共指标汇总数据:来源维表数据和明细事实数据
维度层建模方法论
- 一般会采用维度退化的方法将维度退化至事实表中,减少事实表和维表的关联次数,提高明细数据表的易用性
- 在汇总数据层,加强指标的维度退化,构建公共的(原子)指标数据层,提升公共指标复用性,减少重复加工。
- 组合相关相似的数据,采用明细宽表,复用关联计算,减少数据扫描
- 公共指标统一加工,做到命名统一,口径一致,算法统一的统计指标
- 建立一致的数据分析维表,降低数据计算口径、算法不统一的风险。
应用数据层(ADS)
用来存放数据产品的个性化统计指标数据,根据CDM和ODS层加工生成
个性化指标特性
- 不公用性
- 复杂性(指数型,比值型,排名型指标)
【阿里巴巴数仓模型架构图】
数仓建模方法论
- 优先使用公共维度模型层(CDM)数据
- 当公共层没有数据时,优先评估是否需要新建公共层数据,当不需要建设公用的公共层时,直接使用操作数据层(ODS)数据。
- 应用数据层(ADS)作为产品特有的个性化数据一般不对外提供数据服务,但是ADS作为被服务方也需要遵守这个约定。
疑问点: 是否需要新建公共层的评估原则是什么? 什么情况不需要新建公共层?
9.3.3 基本原则
1.高内聚和低耦合(2个原则)
- 将业务相近或者相关,粒度相同的数据设计为一个逻辑或者物理模型
- 将高概率同时访问的数据放到一起,将低概率同时访问的数据分开存放
2.核心模型与扩展模型分离
- 建立核心模型和扩展模型体系
- 核心模型包括的字段支持常用的核心业务
- 扩展模型 包括的字段支持个性化或者少量应用的需要
- 原则上不能让扩展模型过度侵入核心模型,以免破坏核心模型的架构简洁性和可维护性
3.公共处理逻辑下沉及单一
- 越是底层公用的处理逻辑越应该在数据调度依赖的底层进行封装和实现
- 公共的处理逻辑不要暴露给应用层实现
- 公共逻辑不要多处同时存在
4.成本与性能平衡
- 适当数据冗余可以换区查询和刷新性能
- 不宜过度冗余与数据复制
5.数据可回滚
疑问点:具体的实现方式是什么?
- 处理逻辑不变,在不同时间多次运行数据结果不变。
6.一致性
- 具有相同含义的字段在不同表中的命名必须相同,必须使用规范定义中的名称
7.命名清洗可理解
- 表命名需要清晰,一致,表名需易于消费者理解和使用。
9.4 模型实施
9.4.1 业界常用的模型实施过程
1. kimball 模型实施过程
高层模型
产出:高层维度模型图
详细模型
填补高层模型缺失信息
模型审查、再设计和验证
提交ETL设计和验证
2.Inmon 模型实施过程
模型的三个层次
- ERD 实体关系图
- DIS 数据项集
- 物理层
3.其他模型实施过程
9.4.2 OneData 实施过程
数据调研
分为 业务调研,和需求调研两部分
业务调研:需要对业务系统进行了解
需求调研的2个途径:1.对分析师,运营人员的沟通获知 2. 通过报表系统中的报表进行分析
架构设计--数据域划分
数据域是指面向业务分析,将业务过程或者维度进行抽象的集合。
业务过程可以概括为一个个不可拆分的行为事件,如下单,支付,退款。
架构设计-- 构建总线矩阵
明确每个数据域下有哪些业务过程
业务过程与哪些维度相关
明确统计指标
明确原子指标
明确派生指标
以下工作是oneData工具核心功能
------------------开始------------------------------
规范定义
构建一致性的逻辑维度和维度的属性
构建一致性度量和指标(原子指标,派生指标)
明细层模型设计
构建一致性维表(DIN)
构建一致性事实表(DWD)
汇总模型设计
构建公用汇总模型(DWS)
构建应用汇总模型(ADS)
--------------------结束--------------------------------
代码开发
数据业务逻辑
部署运维
生成ETL任务
运行状态监控