(学习笔记)数据基建-数据质量

news2024/11/26 16:42:48

数据基建-数据质量

  • 数据质量
  • 数据质量保障措施
  • 如何推动上下游开展数据质量活动
  • 数据质量保障如何量化产出
  • 数据质量思考
  • 全链路数据质量保障项目

数据质量

概念:数据质量,意如其名,就是数据的准确性,他是数据仓库的基石,控制好数据质量,是做数据仓库基本要求,也使得下游业务方对数据用的放心

痛点:
数据问题该如何上报修复,缺少流程化。
数据链路缺少卡点保障。
数据不能及时产出影响到下游用数。
用户无感知,除了发现的数据问题,隐藏的数据问题仍存在。

疑问:
很多人会有一种想法,做了这么久的数仓为什么还存在质量问题?

数据质量保障措施

数据质量保障措施-全流程卡点总览
在这里插入图片描述

上线/变更规范
模型上线/变更流程

模型上线:设计模型–>组内模型评审–>代码编写–>提交运行(dev环境)–>代码审核数据校验(数据校验时需要给审核人提供数据比对结果)–>配置DQC–>数据初始化(线上环境)

模型变更(例如加字段):确定需求(了解需求背景)–>代码编写–>提交运行(dev环境)–>代码审核&数据校验(数据校验时需要给审核人提供数据比对结果)–>配置DQC(可省略,或添加业务dqc)–>数据初始化(线上环境)

指标变更:如果发现字段变更后对下游自己的表/报表产生影响,那自己负责修改代码并让其他同学进行代码审核、数据质量审核且任务运行成功后方可发布线上。如果下游血缘存在不是自己的表/报表,需要在相关业务群里说一下/找到下游表owner/报表owner发送通知,让下游owner进行修改,如联系不上需要向owner的leader说明问题,并且让下游表/报表的owner当天回复一下受不受影响,不回复则对方承担问题责任,如果对方不接受修改方案,需要双方约定一下修改内容、修改日期,重定方案

代码检验工具
平台化
手动验证(sql查询记录)
开源项目

数据质量监控(dqc)
DQC概念:dqc全称Data Quality Center,中文又称数据质量监控,用于监控表/字段数据的质量,防止问题数据流入下游任务,是数据仓库强有力的保障卡点,dqc触发于每个任务执行后

DQC平台展示
在这里插入图片描述

DQC种类
强规则可以中断任务的进行,将任务置于失败,并对任务负责人及值班人发送任务失败的消息(消息包括电话、邮件、短信、钉钉、飞书等)
弱规则不能中断任务的进行,只对任务负责人及值班人发送任务失败的消息(消息包括电话、邮件、短信、钉钉、飞书等)

DQC划分
基础dqc(每个表必加)
主键唯一:联合主键、单主键
主键不为空
表行数波动
表不为空

业务dqc
文本类:
字段不为空或空串
json中key不为空
字段是香脱敏

数值:
数值在区间范围
字段不能为0

枚举值
枚举值类型是香正常
枚举值波动
枚举值占比

日期
字段不为空
日期小于当天

数据基线及sla
数据基线概念(数仓内部):数据基线是指数仓内部对数据产出严格把控标准,当数据产出较晚(可能任务报错、强dqc拦截等因素导致),会通知对应的值班人及任务负责人解决任务保障底层数据按时产出,在布置基线时会配置基线告警时间

sla概念(下游业务方):sla是指数仓与业务方约定好的数据产出时间,像是与业务方"签字画押",能够按时为下游提供数据,当数据产出较晚(可能任务报错、强dqc拦截等因素导致),会通知对应的值班人及任务负责人解决任务保障底层数据按时产出,在布置基线时会配置基线告警时间

基线sla平台
在这里插入图片描述

基线sla等级
例如L1-L4,等级越低,基线分配资源越多

容灾备份快恢能力
痛点:核心任务产出不及时,以及值班同学及任务负责人夜间未起来,无法保障数据及时交付下游
解决办法:通常给下游临时任务切换为t-2数据,恢复整体任务进行,但数据资产、数据应用模型较多不能顾全还容易出现误操作情况,所以需要容灾备份任务还原所有数据资产,保障sla补破线能够及时交付

数据问题上报
痛点:下游缺少反馈数据问题渠道,也不清楚提出的问题是否解决,问题提出过于分散,需要平台管理整体流程
数据问题上报平台:
数据平台
在这里插入图片描述
需求平台:通过管理数仓需求方式来管理数据上报问题,业务方通过工单方式上报问题到数据仓库同学,数据仓库同学跟进,并记录问题跟进情况,使得双方相互了解,从而完成数据问题统一管理,统一解决

数据质量长期监测跟踪体系(面向下游)
痛点:数仓本身仍存在数据质量问题,解决了数据问题无法保障日后是否还出现此类数据问题产生,下游用户无法感知具体产生什么数据问题及问题具体明细

整体代码架构
在这里插入图片描述
流程:
1.现状梳理:对目前现有数据问题,存在隐患的问题进行收集归类,制作规则维表
2规则构建:将目前存在的数据问题按照每个规则进行模块化规则配置,为每个规则配置规则内容,包括规则类型、规则id/名、以及存在问题的字段/表等
3数据开发:建设相应dwd数据模型进行明细数据存放,并做维度退化,可按照规则种类开设二级业务域(模型为二级分区,分区1为ds(业务日期),分区2为rule (规则)),内容包括规则id规则名称,监控字段1-5,来源表,规则是否触发,规则是否加白,规则上线/变更/下线日期,规则状态,负责人等等
4数据应用:将数据明细插入最终报表数据模型中,最后通过报表的数据汇总呈现

数据质量监测门户
在这里插入图片描述
可与前端配合完成,或者低代码平台,或者数据可视化平台搭建

如何推动上下游开展数据质量活动

初期
早期未做平台时候,可以通过组建数据问题答疑大群方式,与业务方进行沟通,明确业务方数据问题痛点,同时也能解决群里业务方提出的问题,其次与下游交流明确产出保障,打好基础

成熟期
当平台完善后,要经常开设培训讲座,带着下游了解数据质量体系,明自该如何按照流程进行数据问题上报,解决,验收,保障大家维护同一个规则,其次要适当给予下游奖励,例如每月一次统计数据问题提出贡献及数据问题解决个数、程度,并通过这些考核为下游提供奖励,让下游有了参与感

数据质量保障如何量化产出

产出统计数据模型
问题发生数/率
问题解决数/率
问题复发数/率

周/月报告
数据问题趋势
数据问题分类
本期解决数
本期新增数
重点问题解决数
数据问题贡献榜

数据质量思考

全链路数据保障是整个数据仓库中的核心,好的数据质量基建要从需求分析->开发->提交/发布->应用,每一个流程都有相应的数据质量保障卡点,保障流程中每一步都不可缺失,如果大家都能遵守流程中每一步去执行,能降低线上问题产生频率,提升下游整体用数信心

全链路数据质量保障项目

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1797003.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Java】static 类方法中注意事项

static 类方法中注意事项 目录 代码示例: package suziguang_d4_staticNote;public class Student {public int score 66;public static String name "zhangsan";// 1.类方法中可以直接访问类的成员,不可以直接访问实例成员public static v…

Unity Vuforia

首先在unity2019版本里可以在windows->PackageManager里搜Vuforia EngineAR; (unity2021版本里搜不到) 在官网注册账号: 添加识别图等; 将导出的unitypackage包导入unity中。 unity里导入package之后,新建场景&am…

【SpringBoot + Vue 尚庭公寓实战】房间支付方式管理接口实现(三)

【SpringBoot Vue 尚庭公寓实战】房间支付方式管理接口实现(三) 文章目录 【SpringBoot Vue 尚庭公寓实战】房间支付方式管理接口实现(三)1、查询全部支付方式列表2、保存或更新支付方式3、根据ID删除支付方式 房间支付方式管理…

C++设计模式——Adapter适配器模式

一,适配器模式简介 适配器模式是一种结构型设计模式,用于将已有接口转换为调用者所期望的另一种接口。 适配器模式让特定的API接口可以适配多种场景。例如,现有一个名为"Reader()"的API接口只能解析txt格式的文件,给这…

CF1553F Pairwise Modulo

#include<bits/stdc.h> #define int long long using namespace std; int n,s,ss,ma,l,r,a[300005],b[300005],c[300005]; //b 记录个数 //c 记录a[i]*k void insert(int x) {int yx;while(x<ma) b[x],x(x&-x); } void insert1(int x,int y) {while(x<ma) c[x]…

掌控数据流:深入解析 Java Stream 编程

Java 8 引入了一种新的抽象称为流&#xff08;Stream&#xff09;&#xff0c;它可以让你以一种声明的方式处理数据。Java 8 Stream API 可以极大提高 Java 程序员的生产力&#xff0c;使代码更简洁&#xff0c;更易读&#xff0c;并利用多核架构进行外部迭代。这里将详细介绍 …

电商核心技术系列58:电商平台的智能数据分析与业务洞察

相关系列文章 电商技术揭秘相关系列文章合集&#xff08;1&#xff09; 电商技术揭秘相关系列文章合集&#xff08;2&#xff09; 电商技术揭秘相关系列文章合集&#xff08;3&#xff09; 电商核心技术揭秘56&#xff1a;客户关系管理与忠诚度提升 电商核心技术揭秘57:数…

【python进阶】python图形化编程之美--tkinter模块初探

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

SwiftUI中GeometryReader与GeometryProxy的理解与使用

SwiftUI中的GeometryReader是一个视图&#xff0c;使用它我们可以很容易地访问父视图的大小和位置&#xff0c;并使用这些信息来创建一个响应式布局&#xff0c;以适应不同的设备和方向。 在本文中&#xff0c;我们将探索使用GeometryReader的好处&#xff0c;并提供一些如何在…

iPhone 16 Pro 将打破智能手机上最窄边框的记录

iPhone 16 Pro 据悉&#xff0c;苹果即将发布的 iPhone 16 Pro 将拥有令人瞩目的超窄边框设计&#xff0c;这一创新将超越目前市场上所有智能手机的边框宽度&#xff0c;甚至相较于其前代产品 iPhone 15 Pro 而言也更为出色。 根据多方消息透露&#xff0c;虽然整体设计变化…

打造新引擎,迈向数智金融新未来

数智技术正在全面赋能金融机构转型升级以及促进金融与实体经济的加速融合&#xff0c;已呈现出金融机构数智化经营加速、产业 数字金融深度融合、数字技术驱动绿色金融发展、金融信创成果涌现、金融机构加快数字化组织管理变革等行业趋势。 根据银行业协会调研&#xff0c;78%…

HTML静态网页成品作业(HTML+CSS)—— 节日母亲节介绍网页(5个页面)

&#x1f389;不定期分享源码&#xff0c;关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 &#x1f3f7;️本套采用HTMLCSS&#xff0c;未使用Javacsript代码&#xff0c;共有5个页面。 二、作品演示 三、代…

【Android】使用EventBus进行线程间通讯

EventBus 简介 EventBus&#xff1a;github EventBus是Android和Java的发布/订阅事件总线。 简化组件之间的通信 解耦事件发送者和接收者 在 Activities, Fragments, background threads中表现良好 避免复杂且容易出错的依赖关系和生命周期问题 Publisher使用post发出…

界面控件Telerik UI for WPF中文教程 - 用RadSvgImage升级应用程序UI

Telerik UI for WPF拥有超过100个控件来创建美观、高性能的桌面应用程序&#xff0c;同时还能快速构建企业级办公WPF应用程序。UI for WPF支持MVVM、触摸等&#xff0c;创建的应用程序可靠且结构良好&#xff0c;非常容易维护&#xff0c;其直观的API将无缝地集成Visual Studio…

IIS漏洞

IIS7.5解析漏洞 安装IIS7.5 安装完成之后直接访问浏览器&#xff1a; 安装phpstudy for IIS 安装这个的目的是方便&#xff0c;不用自己去配置 解压开傻瓜式安装即可。然后查看探针&#xff1a; 漏洞原理 IIS7/7.5在Fast-CGI运行模式下,在一个文件路径(/shell.jpg)后面加上/…

Linux日志服务rsyslog深度解析(上)

&#x1f407;明明跟你说过&#xff1a;个人主页 &#x1f3c5;个人专栏&#xff1a;《Linux &#xff1a;从菜鸟到飞鸟的逆袭》&#x1f3c5; &#x1f516;行路有良友&#xff0c;便是天堂&#x1f516; 目录 一、引言 1、日志在Linux系统中的作用 2、rsyslog历史背景 …

postgresql常用命令#postgresql认证

PostgreSQL 是一个功能强大的开源关系数据库管理系统&#xff0c;提供了一系列命令行工具来管理和操作数据库。以下是一些常用的 PostgreSQL 命令&#xff0c;涵盖数据库和用户管理、数据操作以及查询和维护等方面。 #PostgreSQL培训 #postgresql认证 #postgreSQL考试 #PG考试…

微信小程序多端框架打包后发布到APP Store

IPA 上架 App Store 生成 iOS 证书和 Provisioning Profile iOS 开发者账号缴/续费的发票查看和获取 个人开发者把小程序发布到 App Store 5个步骤&#xff08;保姆级教程&#xff09; 一、参数的设置、证书的生成、生成profile文件 微信小程序多端应用Donut IOS相关的参数…

基于springboot实现农产品直卖平台系统项目【项目源码+论文说明】

基于springboot实现农产品直卖平台系统的设计演示 摘要 计算机网络发展到现在已经好几十年了&#xff0c;在理论上面已经有了很丰富的基础&#xff0c;并且在现实生活中也到处都在使用&#xff0c;可以说&#xff0c;经过几十年的发展&#xff0c;互联网技术已经把地域信息的隔…

C语言 RTC时间(年月日时分秒) 和 时间戳 互相转换

一、介绍 在C语言中&#xff0c;将年月日时分秒转换为时间戳&#xff08;Unix时间戳&#xff0c;即从1970年1月1日00:00:00 UTC到现在的秒数&#xff09;通常需要使用struct tm结构体和timegm或mktime函数。&#xff08;注意&#xff0c;mktime函数假设struct tm是本地时间&…