本文为您介绍CDM公共维度层设计规范。
设计准则
一致性维度规范
公共层的维度表中相同维度属性在不同物理表中的字段名称、数据类型、数据内容必须保持一致。除了以下情况:
在不同的实际物理表中,如果由于维度角色的差异,需要使用其他的名称,其他名称也必须是规范的维度属性的别名。例如,定义一个标准的会员ID时,如果在一个表中,分别要表示买家ID和卖家ID,那么设计规范阶段就预先对会员ID分别定义买家ID和卖家ID。
如果由于历史原因,在暂时不一致的情况下,必须在规范的维度定义一个标准维度属性,不同的物理名也必须是来自标准维度属性的别名。
维度的组合与拆分
组合原则
将维度所描述业务相关性强的字段在一个物理维表实现。相关性强是指经常需要一起查询或进行报表展现、两个维度属性间是否存在天然的关系等。例如,商品基本属性和所属品牌。
无相关性的维度可以适当考虑杂项维度(例如交易),可以构建一个交易杂项维度收集交易的特殊标记属性、业务分类等信息。也可以将杂项维度退化在事实表中处理,不过容易造成事实表相对庞大,加工处理较为复杂。
所谓的行为维度是经过汇总计算的指标,在下游的应用使用时将其当维度处理。如果有需要,度量指标可以作为行为维度冗余到维度表中。
拆分与冗余
对于维度属性过多,涉及源较多的维度表(例如会员表),可以做适当拆分:
拆分为核心表和扩展表。核心表相对字段较少,刷新产出时间较早,优先使用。扩展表字段较多,且可以冗余核心表部分字段,刷新产出时间较晚,适合数据分析人员使用。
根据维度属性的业务不相关性,将相关度不大的维度属性拆分为多个物理表存储。
数据记录数较大的维度表(例如商品表),可以适当冗余一些子集合,以减少下游扫描数据量:
可以根据当天是否有行为,产出一个有活跃行为的相关维表,以减少应用的数据扫描量。
可根据所属业务扫描数据范围大小的不同,进行适当子集合冗余。
表命名规范
命名规则:{project_name}.dim{业务/pub}{维度定义}[_{自定义命名标签}],其中的pub与具体业务无关,各个业务部都可以共用,例如时间维度。
数据存储及生命周期管理规范
CDM公共维度层的表的类型为维度表,存储方式为按天分区。
模型设计者根据自身业务需求设置表的生命周期管理。您可依据3个月内的最大需要访问的跨度设置保留策略,具体计算方式如下:
当3个月内的最大访问跨度小于或等于4天时,建议将保留天数设为7天。
当3个月内的最大访问跨度小于或等于12天时,建议将保留天数设为15天。
当3个月内的最大访问跨度小于或等于30天时, 建议将保留天数设为33天。
当3个月内的最大访问跨度小于或等于90天时,建议将保留天数设为93天。
当3个月内的最大访问跨度小于或等于180天时, 建议将保留天数设为183天。
当3个月内的最大访问跨度小于或等于365天时,建议将保留天数设为368天。