数仓任务开发规范流程
点击上方 "蓝色"关注, “星标”一起成长
点击加我wx, 可以一起交流
导读:做数据研发多年,是否思考或复盘过数仓任务开发规范流程,即上线一个数仓任务,上线前、中、后分别需要做什么呢?
一、上线前
上线前
01.需求评审
需求沟通,需求评审会。数据分析师、产品经理、数据产品经理,参与会议。判断是否需要客户端or服务端埋点,判断是否需要埋点同学参与。如果是数据API,如服务接口、线上人群包等还需要server同学参与会议。会议主要三个方面:业务背景与收益、数据模型与拉齐口径、排期及可能隐患与风险点。
02.数据调研
数据探查、数据调研。数据源,主要是要熟悉客户端埋点全链路、服务端埋点探查追踪、db数据的binlog的生成解析与集成。尤其是接到一个需求或主题域模型设计之前,如何数据探查(数据调研、数据摸底),可以从以下几点展开:
1.量级。如果是埋点数据,这个可直接推测是否重复上报或少上报,如果是db数据,这个可有效评估数据集成是增全量的抽取策略(建议db数据统一走binlog)。
2.schema。字段含义、业务描述,枚举值解释,空置率、单位等。特别注意一点,json、struct等复杂数据类型的结构、key等。
3.主键。db数据主键一般没有问题,服务端埋点上报的数据需要格外注意。
4.一致性。如供给侧与消费侧的一致、B端与C端的一致。
以上都建议配置到数据治理DQC里,每天自动化监控,充分保障数据质量与及时发现问题止损、降低数据故障风险。
03.公共模型
公共模型设计与开发。dwd dws dim 通用数据模型,是否可复用已有模型,是否收口模型。需求导向丰富已有模型,尤其是一些大公司。如果是一块新业务,可能还需要梳理业务流程图、CDM、领域模型。梳理维度指标矩阵、模型血缘依赖。同时考虑设计几个模型,维度如何具象,粒度如何变化,是否高内聚低耦合,及复用性等。
特别的,公共模型禁止耦合线上业务逻辑。
04.应用模型
应用层数据开发。相对简单,但不可大意。需要考虑透出形式、量级、粒度、幂等、是否需要cube等。
05.模型评审
模型评审。补充这一点,开发前一定要模型评审。既能及时发现规避模型设计中自己没注意到的问题,又能让其它同事快速了解相关模型与业务。公司越大越要评审,哪怕AB角。
小插曲,工作中经常会遇到与同事、leader建模理念与思想不合,也可能是业务角度和出发点不同,这在工作中很常见也很正常。如果工作中遇到了,不必有心理负担,几种处理方式可以参考:
平心。晓之以情,动之以理。
上卷。德不配位,取而代之。
中空。心有乾坤,敷衍于事。
下沉。决不惯着,跳槽离职。
当然圈子真的很小,说不定哪一天又是同事了,最好还是要冷静处理,争取最佳方式。
06.规范核查
规范核查。再次检查模型设计、字段命名、表命名、性能、生命周期等是否符合规范。
二、上线中
上线中
主要是ETL开发,注意开发规范约束。本文不再多述,后面单独展开讨论。感兴趣可参考之前看过的一篇文章:系列 | 漫谈数仓第三篇NO.3 『数据魔法』ETL
三、上线后
上线后
01.DQC
1 DQC,数据质量。主键是否唯一,量级是否符合预期,维度等是否做了非空处理,指标字段数据类型精度等是否有问题。主键 波动 枚举,一定要检查验证。核心指标、核心模型,必不可少。数据质量数据一致性的必要条件。基于上述,最好产出数据验证报告且wiki或知识库资产留存维护。
02.SLA
2 SLA,及时性保障。上游血缘任务最迟的一个产出时间,本次上线任务预计执行时长,是否有数据倾斜等性能风险,是否需要挂载基线且无破线风险。
空空(渣渣空),空杯的空。7年大数据、数仓开发经验,目前就职于一线大厂,校招入职国企、后经历外包、中小企业,先后涉猎电信、电商、金融、教育、直播等领域。期待与大佬们交个朋友,一起聊技术、赚钱、谈人生、搞事情。