查看原文
其他

数仓任务开发规范流程(进阶篇)

The following article is from 实时数仓Flink Author 渣渣空24

点击上方 "蓝色"关注, “星标”一起成长


导读:做数据研发、数据开发多年,是否思考或复盘过数仓任务开发规范流程,即上线一个数仓任务,上线前、中、后分别需要做什么呢?




一、上线前

上线前

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,及时性保障。上游血缘任务最迟的一个产出时间,本次上线任务预计执行时长,是否有数据倾斜等性能风险,是否需要挂载基线且无破线风险。


ps:欢迎加我微信:edw0808 讨论技术,批评指正!

猜你喜欢:
大数据产品平台化体系.xmind
大数据生态0-1全景图谱.xmind
ClickHouse全面进阶指南.xmind
Flink学习0-1知识点全景图.xmind



数据同行,点击关注↓


  作者:职业规划 | 空谈5年数仓之路




空空(渣渣空),空杯的空、学渣的渣。7年大数据、数仓开发经验,目前就职于BAT一线大厂,校招入职国企、后经历外包、中小企业,先后涉猎电信、电商、金融、教育、直播等领域。期待与大佬们交个朋友,一起聊技术、赚钱、谈人生、搞事情。

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存