目录
1.3数据分层体系结构
1.3.1分层结构示意图
1.3.2 .数据流
1.3建模原则
1.3.1规范定义
1.3.2建模原则
http://www.Sina.com/http://www.Sina.com /
1.3 数据分层架构
3358 www.Sina.com/http://www.Sina.com/http://www.Sina.com /
1.3.1分层架构示意图
1.3.2.数据流向
1.3 建模原则
1.3.1 规范定义
规范定义指以维度建模作为理论基础,构建总线矩阵,划分和定义数据域,业务过程,维度,度量、原子指标,修饰类型,修饰词,时间周期,派生指标。
1.现在对一些常用的名词术语进行解释
数据域
指向业务分析,将业务过程或者维度进行抽象的集合。 其中,业务过程可以概括为一个个不可拆分的行为事件,在业务过程之下,可以定义指标;维度是指度量的环境,如买家下单事件,买家是维度。为了保障整个体系的生命力,数据域是需要抽象提炼,并且长期维护和更新的,但不轻易变动。在划分数据域时,既能涵盖当前所有业务需求,又能在新业务进入时无影响地被包含近已有的数据域中和扩展新的数据域。
业务过程
指企业的业务活动事件,如下单,支付,退款都是业务过程。注意,业务过程是一个不可拆分的行为事件,通俗的讲,业务过程就是企业活动中的事件。
时间周期
用来明确数据统计的时间范围或者时间点,如最近30天,自然周,截止当日等。
修饰类型
是对修饰词的一种抽象划分。修饰类型从属于某个业务域,如日志域的访问终端类型涵盖无线端,pc端等修饰词。
修饰词
除了统计维度以外指标的业务场景限定抽象。修饰词隶属于一种修饰类型,如在日志域的访问终端类型下,有修饰词pc端,无线端。
度量/原子指标
原子指标和度量含义相同,基于某一业务事件行为下的度量,是业务定义中不可再拆分的指标,具有明确业务含义的名词,如支付金额。
维度
指标最近1天海外买家支付金额。2.派生指标分类
事务型指标
是对业务活动进行衡量的指标。例如新发商品数,重发商品数,订单支付金额等。
存量型指标
是指对实体对象(如商品,会员)某些状态的统计。例如商品总数,注册会员总数,这类指标需要维护原子指标及修饰词,在此基础上创建派生指标,对应的时间周期一般为“历史截止当前某个时间”。
复合型指标
是在事务型指标和存量指标的基础上复合而成的。例如浏览UV-下 单买家转化率,有些时候需要创建新原子指标,有些则可以在事务型或者存量型原子指标的基础上增加修饰词得到派生指标。
3.复合型指标的规则
排名型:创建原子指标,一般为top_xxx_xxx.创建派生指标时选择对应的修饰词如下:升序/降序统计方法,排名名词,排名范围等
统计型:例如均值,分位数。不创建原子指标,增加修饰词,在此基础上创建派生指标。例如人均,日均,行业平均等。
变化量型:不创建原子指标,增加修饰词。在此基础上创建派生指标。例如,最近1天订单支付金额较上一天变化量。
比例型:创建原子指标,如百分比,占比。例如,最近一天无线支付金额占比。
1.3.2 建模原则1.高内聚和低耦合
主要从业务特性和访问特性两个角度考虑:
将业务相近或者相关,粒度相同的数据设计为一个逻辑或者物理模型;
将高概率同时访问的数据放一起,将低概率同时访问的数据分开存储。
2.核心模型与扩展模型分离
建立核心模型与扩展模型体系,核心模型包括的字段支持常用的核心业务,扩展模型包括的字段支持个性化或少量应用的需要,不能让扩展模型的字段过度侵入核心模型,以免破坏核心模型的架构简洁性与可维护性。
3.公共处理逻辑下沉及单一
越是底层的公用处理逻辑越应该在数据链路的底层进行封装与实现,以提高代码复用。
不要让公用的处理逻辑暴露给应用层实现
不要让公用的处理逻辑多处同时存在
处理方式
对象
描述
关键字段抽取
Map,Json,字符串
线上经常会使用半结构化类型字段来存储大量信息,可以根据具体使用频次和重要程度,在数据链路的底层将其解析出来作为单独字段
加工新字段
已有字段,关联维表
主要是归类处理,可以基于已有字段处理归类类型,或者在加工维表时候处理归类逻辑;
枚举值汉化
加工新表
抽取关键信息
如果公用的处理逻辑足够复杂,则可以将处理过程单独加工成一张独立的表。
4.成本与性能均衡
适当的数据冗余可以换取查询和刷新的性能,不宜过度冗余与数据复制。
5.数据可回滚
处理逻辑不变,在不同时间多次运行数据结果确定不变。
注意添加时间约束,如果目的是处理截止到当天日期以前的历史所有数据,务必进行时间限制。
有些业务指标在特定周期内会随着时间的变化二变化,但时间一旦越过界后需要重跑保证结果不变,对于这种情况需要明确发酵周期。例如注册7天后转化率。
6.一致性
维度一致性:不同业务过程的事实如果具有相同的维度,则需要使用相同的维度表
命名一致性:具有相同含义的字段在不同表的命名必须相同,必须使用规范定义中的名称,命名做到幸福的花生。
代码一致性:多个数据源对相同属性可能采用不同的值域描述,数仓建设时需要将其统一。例如对性别的描述可能是男女,或者0,1,或者F,M等。这种情况就需要统一规范。
7.命名清晰,可理解
表命名需要清晰,一致,表名易于消费者理解和使用。