《全链路数据治理-智能数据建模 》——数仓建模理论与规范(4) https://developer.aliyun.com/article/1231081?groupCode=tech_library
3. 规范定义
1) 一致性维度
维度及维度属性
在总线矩阵下,维度必须归属某一个数据域,维度属性的来源一种是源系统,一种是挖掘计算,如最近一次支付时间。
特殊维度
• 杂项维度:将事实表中的状态、分类等字段定义为维度,比如交易订单、物流订单中的状态等均可称杂项维度。
• 行为维度:基于历史事实构建,如会员最近一次支付时间就是一个行为维度,可作为其父维度会员维度的维度属性,不建议单独创建维度。
维度整合和拆分
• 维度整合
同一业务板块下同维度不同属性信息可整合,如会员维度基本属性、星级等
信息。
不同业务板块同维度信息可整合,如天猫淘宝基本会员信息。
• 维度拆分
同一维度不同分类的属性,差异较大或业务关联度不大的信息,如不同业务板块的商品维度可拆分成不同维度表。
每个商品会有主属性(形状、颜色、价格,等)和扩展属性,比如有些产品的一个扩展属性是带电的,那么在物流业务上就会有相应的限制,因此需要根据其业务属性拆分到不同维度表。
从产出时效、易用性考虑垂直拆分出主商品维表和商品维度扩展表。比如“跨境十日达”商品,会根据其业务属性划分维度属性,并放入维度扩展表。
命名规则
• 命名规则尽可能使用英文简写。
• 若英文简写过长,可考虑拼音首字母简写,如:商品itm,商家slr,买家byr。
最佳实践
以淘系常用维度来看命名规则。
2) 一致性度量
基本原则
• 度量必须归属某一个业务过程。
• 度量类型:一般是数值,所以在定义数据类型时候一般为数字类型,同时需要和维度属性做区别。
• 度量分类:按照事实的是否可加性分为:可加性度量、半可加性度量、不可加度量。
命名规则
• 尽可能使用英文简写。
• 当英文简写很长可以考虑汉语拼音首字母的简写,但一般要保持整个数仓一致性,所以尽可能选择一种命名缩写规则,如:数量cnt、金额amt。
最佳实践
• 前面已经定义了业务过程,比如交易域的支付过程,接下来要规范定义交易业务过程涉及的度量,例如金额amt、单量cnt 等。
3) 指标定义
基本原则
• 派生指标可以选择多个修饰词,唯一归属于一个原子指标,属于某一个数据域。
• 派生指标一般由原子指标和时间周期、若干修饰词构成。
• 派生指标的命名要继承原子指标的命名规则和名称,可以抽象为:修饰词+原子指标+时间周期。
命名规则
• 尽可能使用英文简写。
• 若过长,考虑拼音首字母简写,如:
原子指标:支付单量pay_ord_cnt
派生指标:近1 天淘特支付单量tt_pay_ord_cnt_1d
最佳实践
• 下图左边是逻辑结构图,右边是指标举例,最近1 天淘特支付单量的逻辑结构图:
• 下图是以交易域的指标为例看命名规则:
电商版块:ed
交易域:trd
支付:pay
单量:ord_cnt
订单:ord
业务来源类型:From_group
最近一天:1d
淘宝特价版:tt
支付单量:pay_ord_cnt
订单:ord
订单ID、订单状态:order_id,order_status
最近1 天淘特支付单量:tt_pay_ord_cnt_1d
《全链路数据治理-智能数据建模 》——数仓建模理论与规范(6) https://developer.aliyun.com/article/1231079?groupCode=tech_library