开发者学堂课程【智能数据建模训课程 :数仓建模理论与规范(二)】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/1223/detail/18308
数仓建模理论与规范
四、数据分层架构设计
关于数据分层,目前占大多数的比较传统的经典的三层模型架构设计以及台内外的分层设计方式都是按照从 ODS 贴原,中间系列的公共层进行一些设计,CDM 层在梳理业务完成后,ADS 层会进行数据整合,针对每一部分业务过程进行分域,并进行中间层明细的事实设计。事实包括两部分,即事实的明细和汇总。在 CDM 之上,会做做很多面向产品、面向业务场景等的应用,即进行偏向业务的应用设计应用层的模型。
以淘宝为例,其包括三个核心的 project,即 tbods、tbcdm 和 tbads。图中的数字更多说明的是存储的大小,而不是表的数量,因为表的数量一定是倒三角的,但是在存储方面,30%的用于 ods,更多的则期望于的收藏在中间层,当中间层足够后,一般占到60%,而最终应用层的存储则相对小很多,因为数据都变成了一些高度聚合的指标。
五、数据分域架构设计
在分层完成后,再进行相应的数据的分域。不论接触的是新业务,或者已有的业务,在建设数仓时,首先要进行数据的收集、提炼与归纳。
1、收集
收集的主要目的是对现有的业务数据以及核心的业务诉求进行合并。因为接触的可能是新业务,数仓不存在,其建设完全是从零开始,而对于已有业务,其可能已经建设好了一些数仓数据,当然也有一些已经建设了过程、步骤、阶段,因此要对现有的数仓数据以及现有的业务数据进行梳理。同时,还会调研一些核心的业务诉求,如面向业务时,在台内会向数据分析师、核心的业务运营人员调研其业务诉求,以及他们观测数据的方法以及待解决的问题等,再根据调研数据进行了解组织,合并出来一份数据建设范围和内容的全集。此时即可输出一些数据,如粒度以及维度等,所谓的维度是指观测数据的视角。
2、提炼
在数据收集阶段完成后,再对业务过程进行总结提炼,业务过程泛化的概念指的是企业的业务活动的行为,聚焦在具体的实例中,如说在淘宝下单,首先在某宝贝曝光的基础上,用户直接或搜过搜索点击某个宝贝,进入详情页之后用户进行浏览以及下单、支付,以上每个环节都是业务过程。但所有的过程都是一个不可拆的行为事件,如下单、支付等,其无法再往下进行拆解。
3、归纳
针对这些业务过程,数据模型就会对整个业务数据全集去做业务过程的拆解、梳理,最终归纳出整个数据域。数据域可以对以上过程中拆解数的业务过程进行分类,如对于以上浏览、下单、支付业务过程,数据域可以将这些业务过程分类在交易环节,而对于用户的退货以及评价则分类在逆向域中。此外还有一些其他的情况,如用户作为该业务过程中的实体,除了作为普通用户,还可以选择成为特殊的个体,如淘宝会员,在交易过程中,买家与卖家均可以抽提出一个会员域等。也就是相当于前面的业务过程划分了不同的数据域,最终输出数据域大图,其中包括了业务过程以及业务过程状态,哪些元素构成了相应的业务数据。
4、案例
以下图片展示了一个数据分域的的例子:
首先在收集环节,我们会收集到一些现有的数据报表以及数据指标,也会与业务人员或分析师了解一些指标以及维度,如从商品维度,一天商品的下单量以及商品售卖的情况等,再如从消费者的维度,一日的销售额、订单数等,从收集环节整理出来的相当于需求的全集;然后从过程中提炼业务过程,再对业务过程拆解到最细粒度;最终再归纳出数据域的过程,如支付、退款、下单均为单独的业务过程,但可以将三者都分类放交易域中,点击、浏览等事件消息在归纳环节可以把它推放到日志域中。