服务器 频道

得物离线数仓发布流水线质量门禁实践

  一 前言

  随着企业数字化转型加速推进,大数据业务规模呈现指数级增长,迭代变更越发频繁。此背景下,呈现"高频变更"与"超大规模"并存的特征,这种双重特性给大数据任务的发布变更带来了严峻挑战。

  二 项目目标

  离线数仓任务资产管理

  增量:通过大数据变更发布流水线进行卡点,确保末端任务发布前,消费场景&风险等级完成绑定。增量任务发布消费场景绑定率100%覆盖。

  存量:盘点存量资产任务,人工梳理打标,完成初始化消费场景绑定。

  大数据变更发布流水线

  数仓任务发布流水线管控100%覆盖,任务发布效率提升60%。

  三 项目方案  

  数仓任务资产管理  

  消费场景定义

  根据业务用途梳理消费端内容,根据风险高低定义风险等级P0、P1、P2,从末节点自动倒推追溯上游全链路,并全部打上风险等级P0、P1、P2标识,以相同的生产规范标准要求上下游各方协同保障。  

  风险等级定义  

  消费场景注册&绑定

  消费场景注册

  当前数仓任务消费场景已经完成初步盘点和梳理,并且将盘点的消费场景数据初始化到平台中。随着迭代场景的新增,需要注册新的场景,从而应业务所需。  

  存量资产任务绑定

  针对当前数仓存量资产任务进行盘点,将adm、ads层表进行梳理、打标,最终初始化到平台中,完成存量资产绑定消费场景。

  任务消费场景应用

  任务和消费场景完成绑定后,从而决定任务的应用场景、风险等级,P0、P1任务将在变更管控、线上稳定性保障等得到重保。

  数仓变更管控流水线  

  质量定义(DQC)

  在离线数据仓库(数仓)中,数据质量检查(DQC,Data Quality Check)是确保数据准确性、一致性、完整性的重要环节。数仓ETL任务在加工完成后,会执行DQC检查,从而有效、及时发现数据质量问题,便于研发人员及时修复,避免问题数据对业务造成损失。

  DQC强规则

  当强规则执行不通过后,直接失败任务,及时通知任务Owner,并拦截下游任务执行,待修复后下游链路再继续执行。(拦截任务,需要值班人员及时修复。)

  DQC弱规则

  当弱规则执行不通过后,及时通知任务Owner。任务正常执行成功,下游任务也正在运行。(不拦截任务,会通知到任务Owner。)

  质量定义配置  

  通用型DQC规则  

  

  

  质量定义通过可视化界面操作,让用户可以直接通过简单的勾选方式,即可生成对应的DQC规则,大大提高研发人员配置DQC的效率。

  自定义DQC规则  

  用户可以按照规则SQL补充规则逻辑,从而实现自定义验证SQL融入DQC-SQL中,达到自定义DQC规则的效果。

  强弱规则配置  

  DQC强规则和弱规则的配置方式完全一致,通过Tab的切换,可以完成强弱规则的配置。

  质量DQC试运行  

  所有DQC配置完成后,需要通过试运行之后才能保存上线,确保DQC配置的合理性、有效性。

  告警策略  

  支持飞书、电话、短信、邮箱等方式告警通知。其中强规则一旦触发,必定电话告警(采取15分钟无响应即逐级上升原则)。

  发布流水线管控  

  

  静态扫描  

  

  检测规则:任务依赖、建表规范、编码规范、集成规范、DQC规范等。

  冒烟测试

  在数仓测试环境下,完成任务冒烟测试执行,执行内容包含:ETL任务、DQC规则。  

  CodeReview

  描述:根据业务熟悉对,由数据域数仓PM 或者 业务数仓技术负责人进行评审,给出评审结论。

  内容:ETL代码、调度配置、质量定义配置、DQC-SQL等。

  注意:审批人飞书会接收到来自“xx稳定中心”机器人推送的消息,点击进入审批详情完成审批即可。  

  数据探查

  描述:针对表内所有字段进行探查和校验,主要场景:数字探查、字符探查、主键验证、无效字段验证、异常字段验证

  PS:数字探查和字符探查会给出明显问题红色高亮标识。  

  

  数据比对

  描述:针对生产表和测试表进行数据比对,比对场景:数据量对比、聚合指标对比、明细对比。

  注意信息:对比的两张表用户无法输入,用户需要输入执行分区、主键字段、去噪字段、风险阈值(针对明细对比生效)。  

  发布审批

  描述:发布审批节点,用户输入本次发布的基础信息,提交审批即可。

  所有需求都需要数据域PM和对应数据域的责任QA进行审批。  

  四 总结&未来规划

  实践总结

  得物离线数仓发布流水线过去1年有着从0到1的建设,以及后期从1到10的优化和改进。当前流水线能力已经足以支撑数仓内部日常迭代变更需求的发布管控,为发布准出规则执行提供了巨大帮助。  

  发布管控对于QA来说是最重要的一个环节,所有发布都能够达到准出标准的要求,从而才能守住发布的最后一道线。

  未来规划

  节点能力优化

  当前数仓表单分区大于3TB(十亿、百亿、千亿级别)存储数据后,数据探查、数据比对将不提供验证服务,主要源于数据量、存储过大、字段过多,对计算资源、计算存储带来巨大的消耗,严重影响其他任务的执行进度。后续通过数据抽样验证的方式从而降低资源的消耗,从而提升场景覆盖度。

  流水线能力补充

  数据探查未来考虑通过和历史探查结果比对参考的方式,给出诊断结果,进一步提升工具卡点能力。

0
相关文章