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

数据基建-数据质量

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

数据质量

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

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

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

数据质量保障措施

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

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

模型上线:设计模型–>组内模型评审–>代码编写–>提交运行(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.mzph.cn/news/848733.shtml

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

相关文章

fastadmin设置表字段不参与搜索

再对应的js文件中,把operate设置为false即可

容器(Docker)安装

centos安装Docker sudo yum remove docker* sudo yum install -y yum-utils#配置docker的yum地址 sudo yum-config-manager \ --add-repo \ http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo#安装指定版本 - 可以根据实际安装版本 sudo yum install -y docke…

easyexcel动态表头导出

动态表头导出excel 红框固定&#xff0c;绿框动态 引入依赖 <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.1.1</version></dependency>工具类 import com.alibaba.excel.util…

【C++修行之道】类和对象(五)日期类的实现、const成员、取地址及const和取地址操作符重载

目录 一、 日期类的实现 Date.h 1.1 GetMonthDay函数&#xff08;获取某年某月的天数&#xff09; 问&#xff1a;这个函数为什么不和其他的函数一样放在Date.cpp文件中实现呢&#xff1f; 1.2 CheckDate函数&#xff08;检查日期有效性&#xff09;、Print函数&#xff08;…

【WP】猿人学13_入门级cookie

https://match.yuanrenxue.cn/match/13 抓包分析 抓包分析发现加密参数是cookie中有一个yuanrenxue_cookie 当cookie过期的时候&#xff0c;就会重新给match/13发包&#xff0c;这个包返回一段js代码&#xff0c;应该是生成cookie的 <script>document.cookie(y)(u)(a…

【初阶数据结构】栈和队列(附题目)

目录 1.栈 1.1栈的概念及结构 1.2栈的实现 1.2.2实现结构的选择 a.数组 b.链表 c.更优的选择 1.2.3实现结构 a.栈的结构体 b.栈的初始化 c.栈的销毁 d.入栈 e.出栈 f.获取栈顶元素 g.获取栈中有效元素个数 h.检测队列是否为空&#xff0c;如果为空返回非零结…

m1系列芯片aarch64架构使用docker-compose安装seata

之前看到 DockerHub 上发布了 m1 芯片 aarch64 架构的 seata 镜像, 所以就尝试的安装了下, 亲测可用: 使用该命令查看正在运行的 seata 容器 docker ps | grep seata 一. docker-compose.yml 命令编写 volumes 命令所指定的宿主机映射地址, 需要根据自己的电脑环境更换 环…

MySQL条件查询

018条件查询之或者or or表示或者&#xff0c;还有另一种写法&#xff1a;|| 案例&#xff1a;找出工作岗位是MANAGER和SALESMAN的员工姓名、工作岗位 注意字符串一定要带单引号 select ename, job from emp where jobmanager or jobsalesman;任务&#xff1a;查询20和30部门的…

Redis 7.2.x 主从复制

IP操作系统服务版本192.168.140.153CentOS 7remaster7.2.5192.168.140.159CentOS 7redis-slave7.2.5 一、安装依赖 yum -y install gcc gcc-c 二、安装Redis 1、下载安装包 wget http://download.redis.io/releases/redis-7.2.5.tar.gz 2、解压 tar -zxvf redis-7.2.5.t…

西湖大学最新AI工具:识别虚假新闻和辨别AI生成内容,准确率达99%

你好&#xff0c;我是郭震 随着人工智能技术的发展&#xff0c;生成式AI在文本生成领域展示了惊人的潜力。然而&#xff0c;随之而来的虚假新闻和AI生成的文章让人们难以分辨。 近日&#xff0c;西湖大学团队发布了一款名为Fast-DetectGPT的新工具&#xff0c;为识别虚假新闻和…

Linuxftp服务001匿名登入

在Linux系统中搭建FTP&#xff08;File Transfer Protocol&#xff09;服务&#xff0c;可以让用户通过网络在服务器与其他客户端之间传输文件。它有几种登入模式&#xff0c;今天我们讲一下匿名登入。 操作系统 CentOS Stream9 操作步骤 首先我们先下载ftp [rootlocalhost…

Napster诞生25周年:文件共享革命的引领者

Napster诞生25周年&#xff1a;文件共享革命的引领者 一、引言 随着信息技术的飞速发展&#xff0c;互联网已成为人们生活中不可或缺的一部分。在数字化时代&#xff0c;文件的传输与共享成为了网络使用的重要方面。回顾历史&#xff0c;Napster的诞生无疑是这一领域中一个具…

第十一届蓝桥杯C++青少年组中/高级组选拔赛2020年5月30日真题解析

一、单选题 第1题 下面哪个密码最安全 A:111111 B:123456 C:qwerty D:Z2a8Q1 答案&#xff1a;D 这四个选项都是 6 位密码&#xff0c;那么字符种类最多的最安全。D 选项即有大小写字母&#xff0c;又有数字&#xff0c;所以最安全。 第2题 如果今天是星期六&#xff0c;…

Webpack基本配置

Webpack 是一个流行的模块打包工具,它可以将你的应用程序的各种资源(如 JavaScript、CSS、图片等)打包成一个或多个优化过的文件,以便于浏览器加载。以下是创建一个基本的Webpack配置文件的步骤: ①:安装Webpack 首先,确保你已经安装了Node.js和npm。然后,在你的项目根…

Webpack 开发快速入门

WebPack详细入门教程&#xff08;一&#xff09;之简介 Webpack详细入门教程&#xff08;二&#xff09;之安装配置 WebPack详细入门教程&#xff08;三&#xff09;之loader加载器 Webpack详细入门教程&#xff08;四&#xff09;之Source Maps调试 Webpack详细入门教程&#…

数字智能数字人直播带货软件系统 实现真人形象的1:1克隆 前后端分离 带完整的安装代码包以及搭建教程

系统概述 数字智能数字人直播带货小程序源码系统是一套集人工智能、3D建模、云计算等技术于一体的综合性解决方案。该系统通过深度学习算法&#xff0c;能够实现对真人形象的精准捕捉和1:1克隆&#xff0c;使数字人在直播过程中呈现出与真人无异的表现力。同时&#xff0c;系统…

Docker面试整理-Docker 常用命令

Docker 提供了一套丰富的命令行工具,使得用户能够管理容器、镜像、网络和卷等资源。这里列出了一些常用的 Docker 命令: 镜像相关命令:docker pull [OPTIONS] NAME[:TAG|@DIGEST]: 从仓库拉取一个镜像或仓库。docker push NAME[:TAG]: 推送一个镜像或仓库到远程仓库。docker …

OpenCv之简单的人脸识别项目(动态处理页面)

人脸识别 准备九、动态处理页面1.导入所需的包2.设置窗口2.1定义窗口外观和大小2.2设置窗口背景2.2.1设置背景图片2.2.2创建label控件 3.定义视频处理脚本4.定义相机抓取脚本5.定义关闭窗口的函数6.按钮设计6.1视频处理按钮6.2相机抓取按钮6.3返回按钮 7.定义关键函数8.动态处理…

实验报告5-页面调度

一、实现思路 实验报告5-页面调度 1、关于页面调度 页式虚拟存储器实现的一个难点是设计页面调度&#xff08;置换&#xff09;算法&#xff0c;即将新页面调入内存时&#xff0c;如果内存中所有的物理页都已经分配出去&#xff0c;就要按某种策略来废弃某个页面&#xff0c;将…

el-input添加clearable属性 输入内容时会直接撑开

<el-inputclearablev-if"item.type number || item.type text":type"item.type":placeholder"item.placeholder":prefix-icon"item.icon || "v-model.trim"searchform[item.prop]"></el-input>解决方案 添加c…