无懈可击的数据仓库体系规划及实施流程

作者介绍
水大人,数据开发小哥,爱折腾、爱记笔记,热衷方法论提炼和效率提升 。虽然半路出家,但致力于全栈远景 。《七天数据埋点之旅》系列作者 。
一、前言数仓规划是数仓建设的蓝图,涵盖从需求分析开始到最终的数仓评估验收整个环境;数仓规划之所以重要,是因为它是描述了数据流动的概念性框架,为元数据管理奠定了基础,对数据加工过程的理解、数仓建设的交流分享、数据的使用和问题排查、数仓健康度的评估都提供了极大的帮助 。
需要强调的是本节是从宏观上描述数仓的框架,具体到数据模型的细节对比、存储选型和管理、接入数据源管理等数仓建设的周边在本节不涉及 。通过本节的阅读,你将了解到以下知识:

  • 从业务矩阵的设计(宏观、微观)、横向的分层、纵向的分线到主题划分等角度解构数仓;
  • 数仓建设的实施流程 。
二、规划1、矩阵
分宏观和微观来看,宏观的是公司的整体业务布局,微观的是产品的业务过程布局和业务过程的维度分解交叉信息 。
2、宏观矩阵
宏观矩阵描述的是公司的业务线和对应的数据状况,其行和列一般分别对应着业务主题和数据主题 。
1)业务主题对应着公司的业务线布局,比如电商、游戏、视频、应用商店、新闻资讯、浏览器等 。
2)数据主题根据抽象的程度和视角有不同的取法:
  • 一般取业务线中用户对内容的消费或者相关行为,比如曝光、点击、消费、播放、分享等,对这些行为的划分又可分为原生行为主题(通用和业务相关)、衍生行为主题(留存、活跃、流失等),这种划分方法更多的取自数据的底层和公共层,因为高层的数据都是多行为的汇总 。
  • 对数据主题的另外划分方式参加分主题部分,这种划分方法更多的取自数据的高层 。

无懈可击的数据仓库体系规划及实施流程

文章插图
引自《数据仓库实践之业务数据矩阵的设计-木东居士》
3、微观矩阵
微观矩阵描述的是主题和对应的维度关系,下面以常见的内容消费和用户主题两个维度来看微观矩阵的规划 。
无懈可击的数据仓库体系规划及实施流程

文章插图
-w698
业务过程描述的一般是对内容的消费抽象,可以是原子的,也可以是抽象的,比如卡片曝光维度的划分可以从以下两个大方向入手:
  • 通用标识维度(版本、机型、渠道、网络、时间等);
  • 业务过程维度:消费者等级、消费位置、消费路径、其它等 。
4、分层
ODS->DW->DM->DA(ADS)层是如何划分的,分层的原因(引自《一种通用的数据仓库分层方法-木东居士》):
  • 清晰数据结构:每一个数据分层都有它的作用域和职责,在使用表的时候能更方便地定位和理解;
  • 减少重复开发:规范数据分层,开发一些通用的中间层数据,能够减少极大的重复计算;
  • 统一数据口径:通过数据分层,提供统一的数据出口,统一对外输出的数据口径;
  • 复杂问题简单化:将一个复杂的任务分解成多个步骤来完成,每一层解决特定的问题 。
5、层划分
一个完整数仓分层演示图如下:
无懈可击的数据仓库体系规划及实施流程

文章插图
一个典型的数仓分层样例:
无懈可击的数据仓库体系规划及实施流程

文章插图
-w730
6、分层依据
分层的依据在ods、da、dim层一般无歧义,关键在dw层的分层依据,也是数据仓库分层建设的核心 。
无懈可击的数据仓库体系规划及实施流程

文章插图
每层划分的依据如下:
  • ods层:存放原始数据信息,原则上不进行任何的数据清晰,和数据源保持一致;
  • dw层:数据公共层,是数仓建设的重点,一般是日志子表和一些宽表,主要完成数据的清洗、转换等;
  • dm层:数据集市层,是最直接体系数据资产的层,一般是汇总数据,现在已经逐步弱化,面向挖掘、数据分析等;
  • da层:数据应用层,高度汇总数据,主要用于报表展示 。
7、分线
分线也分宏观和微观,宏观的是整体的业务线,比如应用分发线、商业智能线、游戏运营线、广告流量线等;微观的是某个App或者某个具体的线,本节介绍的是app的数据线 。分线和分主题有很多相似的地方,只是看待数据的角度不同,分主题是从数据内容分类和对外服务的角度看,类似商品分类;而分线是从数据生产加工过程的角度来看,类似业务生产流水线 。


推荐阅读