一、元数据管理
1、什么是元数据
元数据简单来说就是描述数据的数据,更直白来说就是描述表名、表制作者、表字段、表生命周期、表存储信息的数据。
2、元数据的分类
元数据信息主要对治理无效表下线、表优化(执行引擎优化、压缩格式优化、存储格式优化),计算优化(费时任务、计算链路、引擎升级)、僵尸文件治理,最终目标实现通过元数据的可视化,便捷的对系统进行管理优化
1、基础信息:解决表归属问题
库表名、数据域、分层、负责人、生命周期、文件路径
2、存储信息
存储量(日增量)、文件数、记录数、文件格式、压缩格式
3、读写信息:解决跨项目、跨产品血缘追踪问题
下游标数量、数据最新更新日期、读取频次、读取来源、执行引擎、引用最长链路数
4、任务信息:解决任务批量提交问题
任务名、责任人、创建人、最近提交人、调度周期
5、计算信息:解决多执行引擎合并计算与分摊问题
cpu使用、内存使用、单表计算费用、计算链路分摊费用
3、元数据如何管理
1、工具化
开源:可使用atlas获取表依赖以及信息、可做二次开发,也可以做可视化界面
自研平台化、云服务:①通过数据地图做元数据的一站式管理,②数据资产门户(对主题域、数据表、归纳、提升下游使用效率)
2、规范化:表/字段命名、注释、使用说明、存储规范、创建者、模型热度(读取、引用、收藏、检索、是否核心表),模型质量评分、质量监控
3、数据血缘:清晰知道表的上下游、方便排查问题知道下游那个模块在使用,提升开发效率以及后期管理维护。
①血缘分类:
活跃血缘、静默血缘
②数据血缘在项目中的使用:
数仓中表/字段上下游查询、发送字段变更通知,探查除数仓外其他场景使用报表、olap库
二、指标体系
1、数据指标体系
1、指标体系建设目的
与下游(风控、bi)达成合作,保障指标建设时口径的统一,完成指标覆盖,提升复用,通过可视化方式提升查询的效率
2、指标体系建设难点
①能否与下游达成共识(沟通)
②指标能否做到数仓收口
③需要与其他部门配合(数据平台、前端),进度难把控,容易烂尾
④如何推广给下游
⑤开发、变更、下线规范难保障
3、指标标准
①来源表信息保持一致,坐到尽可能从‘核心表’复用字段
②口径统一(多数在dws层),业务口径、计算口径、计算维度统一
③指标类型,原子、派生、复核指标
④指标变更、下线流程
三、数据质量管理
1、数据质量介绍
数据质量就是数据的准确性、他是数据仓库的基石、控制好数据质量是做数仓的基本要求,也使得下游业务方对数据用的放心。
痛点:数据问题该如何上报修复,缺少流程化;数据链路缺少卡点保障;数据不能及时产出影响到下游 用数;用户无感知、除了发现的数据问题,隐藏的数据问题仍然存在;
疑问:很多人会有一种想法,做了这么久的数仓为什么还存在质量问题?
2、数据质量保障措施
1、全流程卡点总览: 可视化数据质量跟踪监测体系,任务基线及SLA,数据质量监控(DQC),开发上线流程及变更机制,容灾备份及快恢复能力,数据质量问题上报。
2、代码验证:平台验证(数据探查、比对)、手动验证(通过写sql)
3、dqc(data quality center)数据质量监控,用于监控表、字段的数据质量问题,防止问题流入下游任务,是数据仓库强有的保障卡点,dqc触发于每个任务执行之后。
①基础dqc(每个表必须加):主键唯一、主键不为空、表行数波动、表不为空
②业务dqc:a.文本类:字段不为空(或空串)、json的key不为空、字段脱敏
b.数值类:数值在区间范围、字段不为0
c.枚举类:类型是否正常、枚举值波动、枚举值占比
d.日期:字段不为空、日期小于等于当天(正常情况,例如还款日可能大于当前)
4、数据基线及SLA:
①数据基线概念(数仓内部):是指数仓内部对数据产出严格把控标准,当数据产出较晚(可能任务报错、强dqc拦截等因素导致),会通知对于的值班人、任务负责人解决任务保障底层数据按时产出,在布置基线时会配置基线告警时间。
②sla概念(下游业务方):是指数仓与业务方约定好的数据产出时间,像是与业务方签字画押,能够按时为下游提供数据,当数据产出较晚(可能任务报错、强dqc拦截等),会通知对于的值班人、任务负责人解决任务保障底层数据按时产出,在布置基线时会配置基线告警时间。
5、容灾备份快恢能力:重跑,先灌数、保障下游(兜底做法),然后及时补救。
6、数据质量监测门户
3、如何推动上下游开展数据质量问题
1、早期:组建数据问题群,与业务方沟通,明确业务方问题痛点,同时也能解决群里业务方提出的问题,其次与下游交流明确产出保障,打好基础。
2、成熟期:搭建平台,完善平台,开设培训,带领下游了解数据质量体系,明台如何按照流程进行数据问题上报、解决、验收、保障大家维护同一个规则。
4、量化质量保障
问题发生数、解决数、复发数,
月报、周报:数据问题趋势、分类、新增那些
全链路数据保障是整个数据仓库的核心,好的数据质量基建要从需求分析、开发、提交/发布、应用,每一个流程都有相应的数据质量保障卡点,保障流程中每一步都不可缺失,如果大家都能遵守流程中的每一步去执行,能够去降低线上问题的产生频率,提升下游整体用数信心。
本文转载自: https://blog.csdn.net/sinat_42406646/article/details/128838096
版权归原作者 书不尽言 言尽于此 所有, 如有侵权,请联系我们删除。
版权归原作者 书不尽言 言尽于此 所有, 如有侵权,请联系我们删除。