浅谈离线数仓落地
前言
数据仓库、数据湖、湖仓一体等一系列大数据理念的成熟和落地,已快速推动着各种数据资产的搭建。其中在离线数仓的搭建也最为成熟,方法论也最为普适性,本文就想浅谈一下,站在数据产品的视角,如何去推动数仓的搭建和保障数仓的质量。
数仓建设过程
1.业务过程的梳理
数仓的核心理念是主题建模,能够清晰的描绘出站在一个业务全局的视角,业务的增长包括哪些核心的业务模块(大白话说就是有哪些的部门或者业务方向),对应每个模块是在执行什么样子的动作和策略(大白话说就是业务每天都在做些啥)。
当我们能够全面的梳理清楚整个业务体系下所涉及的所有业务模块和业务过程之后,对应就能清晰的知道底层的数仓主题应该怎么去划分,每个主题应该建设哪些范围的内容。
2、指标体系的搭建
当我们理解清楚我们所处的业务全貌之后,下一步核心要做的是去梳理指标体系,对于上述所说的每一个主题下面的业务过程,我们应该用什么样子的指标去评估每一个业务策略做的好于坏,当指标异动的时候,应该去拆解哪些过程指标,同时应该从什么样子的维度去分析拆解,体系化的评估这一块的好坏。
在梳理这一块的过程,就会同步梳理出一套分层的指标和一套下钻的维度。比如针对于推广模块,核心关注的可能是拉新数,基于拉新数这个结果指标——
纵向维度:我们可以拆解成曝光用户数*曝光转化率。引起拉新数波动的可能是推广预算限制,导致媒体整体给的曝光量级不够?也可能是投放素材的问题,不够吸引用户导致整体的转化率偏低?通过指标拆解的方式能够帮助我们定位一些业务问题。 横向维度:我们可以去拆解平台——是否所有平台的拉新数均环比下降?是否平台下所有的投放形式带来的拉新数均环比下降?通过多维度的异动归因方式也能帮助我们去定位业务问题。
通过同样的方式,我们不断地去完善对每块业务模块、每个业务过程的目标、策略和量化指标的(OSM模型),能够清晰的帮助我们去理解业务的增长情况,形成一套体系化的指标和维度分析体系。
3、指标维度的拆解
当对每个业务过程都有清晰化的指标体系之后,对应在业务层面会形成一系列的指标和维度,包括复合指标(比如:曝光转化率)、衍生指标(比如:近7日曝光率)、原子指标(比如:拉新数)、衍生维度(比如:一线城市)、原子维度(比如:美国)。下一步拆解复合指标(多个衍生指标的四则运算)、衍生指标(原子指标+统计周期+业务+统计粒度),在此基础上我们能较为清晰去知道,每个主题域、业务过程会涉及到哪些细粒度的原子指标、粗粒度的衍生指标和复合指标。
4、维度建模的开展
那在下一步就会数仓最为核心的工作--维度建模,当我们能把前置的内容梳理清楚之后,大数据同学能够清晰的知道,底层的数据需要怎么做数据域划分来支撑上层应用,以及
每个数据域需要搭建哪些最细粒度的明细事实表(数仓中DWD层核心做的事情)
基于上层分析拆解所涉及的复合指标和衍生指标,如何前置做实体聚合,提升数据的复用性和查询效率、减少底层明细数据的重复查询计算(数仓中DWS层核心做的事情)
基于每个业务模块的分析维度,做好维度的归类,形成各种主题性质的维表,比如:渠道维表、用户维表、游戏维表等,提升维度的一致性和复用性(数仓中DIM层核心做的事情)
三、数仓质量把控
1、数据的规范
数据的规范是指:①源数据是否按照约定的规则入仓,指标维度的是否正确入仓,不出现数据丢失、缺失等情况,②模型的设计在实体定义、条例、字段、表名、分层划分等一系列命名设计规范上是否规范等
2、模型的质量
模型的质量包括:①ETL过程的数据一致性问题,DWD与ODS、DWS与DWD、ADS与DWS,不同分层之间的条例一致性、数量一致性、取值一致性,以及整体的调度任务的成功预警等,能够通过脚本实时监控预警,保障数据的质量 ②模型的质量,通过模型的完善度(看DWS和ADS层的出数比例和DWD直接出数的比例,评估中间层建立是否足够完善)、模型的覆盖度(模型的引用系数,看平均每个模型被其他模型引用的情况,评估一个上游模型被下游模型引用超过4次才合格)
3、指标的监控
指标的监控指ADS的核心指标的异动监控,能够通过阈值设定、移动平均等方法,实时提供数据预警,保障数据的正确性,及时为业务带来告警,提升业务敏感度。