数仓建模思想:
ODS(操作数据存储)层设计思想
ODS需要保持也源业务系统表保持统一,尽可能反映数据原貌,不做数据加工,需要执行的原则是:
(1).统一管控,由统一的基础数据团队来统一管控,存储,引用,数据检查方式等
(2).权限申请管理,不允许各条线数据研发团队再从数据源同步数据生成新的ods数据,也就是ods层数据复制。
DW(明细粒度事实)层设计思想
结合vivo互联网业务特点,数据特点进行dw层设计,由于存量用户多,每天基于用户的互联网行为数据量更是庞大,日增量数据100t,请求,点击,曝光,下载等数据量最高达到上千亿次,庞大的数据量的整合加工,需要细化拆分,dw层存放小时级别的数据,汇总层基于小时数据进行加工汇总计算。
dw层统一管控,明细表按照高内聚低耦合原则,将业务相近或业务访问使用数据内容相似的,粒度一致的数据整合,尽可能拓宽,减轻dm、da层计算成本压力,整合过程原则是:
(1).统一库,举例说明,商业化广告有多个项目,每个项目都有相同的dw业务过程明细数据,但来源是同一个,这样产生了很多冗余存储和计算资源浪费,所以统一一个库,保持一份业务过程数据,按照项目类型做分区。
(2).轻度业务过程整合,结合业务实际情况,互联网用户行为数据量大,明细粒度整合过度计算资源消耗会更大,耗时更长,违背了降本提效的初衷。
DM(公共指标)层设计思想
根据业务现状和数据现状,以及调研结果,DM层我们作为最重要的数据加工层,承接业务需求,根据业务诉求,业务分析,业务发展需求从顶向下设计DM层模型, 根据公共层建设的思想,将业务相近,访问数据和粒度相似的数据做宽表化整合,基于长远考虑,公共层模型不仅要满足现有业务核心指标的覆盖,而且需要具备前瞻性,为数据融通,中台数据资产沉淀做准备,做到易懂易用。
基于数据量和业务使用数据收口的原因,我们尽可能在这一层进行逻辑加工计算,将dm层作为业务主要使用数据的源头,屏蔽上游变更的影响,基于此,我们将dm层进行功能拆分,dmd 公共指标明细汇总层(也可以称为轻量级汇总层),dma 公共指标聚合汇总层(深加工汇总层),dmd层提供冗余维度,冗余修饰词的明细汇总表,宽表化处理。dma层基于dmd明细汇总表,面向业务分析进行深度加工汇总,宽表化处理,明细汇总+聚合汇总覆盖80%以上的业务数据指标需求,核心数据指标和常用数据指标,提供公共层通用性和可复用性,容易数据打通,命名规范 dma_xxx_xxx,dmd_xxx_xxx
DA(数据应用)层设计思想
DA层数据更多的面向业务个性化应用,主题类的数据需求,da层面向特定产品或业务应用需求结合业务特点进行模型设计,模型结构以应用便捷和快速为原则,有几个原则:
数据指标计算加工来源尽量从dm层获取
数据指标非常用,非核心基础指标,更多的基础指标和常用指标都下沉到dm层
数据生命周期严格管理,不能让这层野蛮生长,更多的要丰富公共层,使公共层健壮