当前位置: 首页 > news >正文

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

数据基建-数据质量

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

数据质量

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

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

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

数据质量保障措施

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

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

模型上线:设计模型–>组内模型评审–>代码编写–>提交运行(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数据应用:将数据明细插入最终报表数据模型中,最后通过报表的数据汇总呈现

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

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

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

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

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

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

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

数据质量思考

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

全链路数据质量保障项目

相关文章:

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

数据基建-数据质量 数据质量数据质量保障措施如何推动上下游开展数据质量活动数据质量保障如何量化产出数据质量思考全链路数据质量保障项目 数据质量 概念:数据质量,意如其名,就是数据的准确性,他是数据仓库的基石,控…...

WINUI——Behavior(行为)小结

前言 在使用MVVM进行WINUI或WPF开发时,Command在某些时候并不能满足逻辑与UI分离的要求。这时肯定就需要其它技术的支持,Behavior就是一种。在WPF中是有Behavior直接支持的,转到WINUI后,相对有一些麻烦,于是在此记录之…...

Ruoyi5.x RuoYi-Vue-Plus新建Translation翻译类

若依框架(RuoYi)中的Translation翻译类主要作用在于实现字段值的转换或翻译功能,以提高数据展示的准确性和友好性。以下是其具体作用的一些关键点: 字段值转换:若依框架在处理数据时,有时需要将某些字段的…...

类加载的奥秘

一、类的加载过程将类的字节码文件加载到Java虚拟机中进行执行。 1.通过一个类的全限定名来获取定义此类的二进制流字节码文件(如zip 包、网络、运算生成、JSP 生成、数据库读取等)。 2.将这个字节流所代表的静态存储结构(如常量池、字段、方法等)转化为…...

Spring知识点总结

1. 简介一下Spring框架。 答:Spring框架是一个开源的容器性质的轻量级框架。主要有三大特点:容器、IOC(控制反转)、AOP(面向切面编程)。 2. Spring框架有哪些优点?谈谈你的看法。 答&#xff…...

STM32Cube系列教程11:STM32 AES加解密模块性能测试

文章目录 本次测试环境本次测试所使用的系统时钟为48MHz本次测试主要测试对大量数据进行加解密所需的时间,本次为不严谨测试,忽略了程序调用耗时,结果仅供参考。 AES算法与数据加解密加密与解密对称加解密AES算法AES-ECBAES-CBC 填充算法PKCS…...

Vue2基础:.sync修饰符的使用,认识,作用,本质案例演示,实现父子之间的通信。

.sync的作用: 可以实现子组件与父组件数据的双向绑定,简化代码。 与v-model的不同点,prop属性名可以自定义,不要一定要用value. .sync的本质: 就是:属性名和update:属性名合写。 下面我们进行代码演示…...

【数据结构与算法】使用单链表实现队列:原理、步骤与应用

💓 博客主页:倔强的石头的CSDN主页 📝Gitee主页:倔强的石头的gitee主页 ⏩ 文章专栏:《数据结构与算法》 期待您的关注 ​ 目录 一、引言 🎄队列的概念 🎄为什么要用单链表实现队列 二、单…...

DHCP服务

文章目录 一、DHCP介绍二、DHCP应用场景三、DHCP工作原理3.1)工作方式3.2)工作原理解析3.3)计算机获得IP的时间点3.4)租约更新阶段 四、DHCP服务器部署4.1)DHCP安装4.2)DHCP配置文件详解4.3)DHCP启动 五、D…...

C++笔试-剑指offer

剑指offer 文章目录 剑指offer数组[数组中重复的数据 ](https://leetcode.cn/problems/find-all-duplicates-in-an-array/description/)将元素交换到对应的位置 二维数组中的查找二叉搜索树 旋转数组的最小数字二分查找 数组中出现次数超过一半的数字相互抵消 连续子数组的最大…...

Mac安装jadx并配置环境

jadx官网:GitHub - skylot/jadx: Dex to Java decompiler 第一种: 安装jadx命令: brew install jadx 启动jadx-gui命令: jadx-gui 可能遇到的问题: Downloading https://formulae.brew.sh/api/formula.jws.json** h…...

前端学习----css基础语法

CSS概述 CAscading Style Sheets(级联样式表) CSS是一种样式语言,用于对HTML文档控制外观,自定义布局等,例如字体,颜色,边距等 可将页面的内容与表现形式分离,页面内容存放在HTML文档中,而用于定义表现形式的CSS在一个.css文件中或HTML文档的某一部分 HTML与CSS的关系 HTM…...

超详解——python条件和循环——小白篇

目录 1. 缩进和悬挂else 2. 条件表达式 3. 和循环搭配的else 4. 可调用对象 总结: 1. 缩进和悬挂else 在Python中,代码块是通过缩进来表示的。条件判断和循环结构的代码块需要正确缩进。悬挂else指的是else子句和相应的if或循环在同一级别的缩进。 …...

DNS协议 | NAT技术 | 代理服务器

目录 一、DNS协议 1、DNS背景 2、DNS协议 域名 域名解析 二、NAT技术 1、NAT技术 2、NAPT技术 3、NAT技术的缺陷 三、代理服务器 1、正向代理服务器 2、反向代理服务器 一、DNS协议 域名系统(Domain Name System,缩写:DNS&#…...

深入ES6:解锁 JavaScript 类与继承的高级玩法

个人主页:学习前端的小z 个人专栏:JavaScript 精粹 本专栏旨在分享记录每日学习的前端知识和学习笔记的归纳总结,欢迎大家在评论区交流讨论! ES5、ES6介绍 文章目录 💯Class🍟1 类的由来🍟2 co…...

领域驱动设计:异常处理

一、异常的处理 异常处理是领域模型要考虑的一部分,原因在于模型的责任不可能无限大。在遇到自己处理能力之外的情况时,要采用异常机制报告错误,并将处理权转交。异常就是这样一种机制,某种程度上,它可以保证领域模型…...

网络网络层之(6)ICMPv6协议

网络网络层之(6)ICMPv6协议 Author: Once Day Date: 2024年6月2日 一位热衷于Linux学习和开发的菜鸟,试图谱写一场冒险之旅,也许终点只是一场白日梦… 漫漫长路,有人对你微笑过嘛… 全系列文章可参考专栏: 通信网络技术_Once-Day的博客-CS…...

《大道平渊》· 拾壹 —— 商业一定是个故事:讲好故事,员工奋发,顾客买单。

《大道平渊》 拾壹 "大家都在喝,你喝不喝?" 商业一定是个故事,人民群众需要故事。 比如可口可乐的各种故事。 可口可乐公司也只是被营销大师们, 作为一种故事载体,发挥他们的本领。 营销大师们开发故事…...

JavaScript 如何访问本地文件夹

在浏览器环境中的JavaScript(通常指的是前端JavaScript)由于安全限制,无法直接访问用户的本地文件或文件夹。这是为了防止恶意脚本访问并窃取用户的敏感数据。 但是,有几种方法可以间接地让用户选择并访问本地文件: 使…...

ArrayList顺序表简单实现

一、创建MyArrayList框架 1.1 MyArrayList 类中实现 arr 数组 import java.util.Arrays;public class MyArrayList {private int[] arr;private int usesize;private static final int P 10;public MyArrayList() {arr new int[P];} 在 MyArrayList 类内创建 arr 数组&…...

144、二叉树的前序递归遍历

题解: 递归书写三要素: 1)确定递归函数的参数和返回值。要确定每次递归所要用到的参数以及需要返回的值 2)确定终止条件。操作系统也是用栈的方式实现递归,那么如果不写终止条件或者终止条件写的不对,都…...

youtube 1080 分辨率 下载方式

YouTube 1080p Video Downloader 这张图像代表了Autodesk Maya中一个名为rocket_body_MAT的材质的着色器网络。下面是对节点及其连接的细分: 节点 place2dTexture12: 该节点用于控制2D纹理在表面上的位置映射。输出: Out UVrocket_body2.jpg: 该节点代表一个纹理文件,具体是…...

计算机网络ppt和课后题总结(下)

常用端口总结 计算机网络中,端口是TCP/IP协议的一部分,用于标识运行在同一台计算机上的不同服务。端口号是一个16位的数字,范围从0到65535。通常,0到1023的端口被称为“熟知端口”或“系统端口”,它们被保留给一些标准…...

测试基础12:测试用例设计方法-边界值分析

课程大纲 1、定义 经验发现,较多的错误往往发生在输入或输出范围的边界上,因为边界值是代码判断语句的点,一般容易出问题(数值写错、多加或丢失等号、写错不等号方向…)。所以增加对取值范围的边界数据的测试&#xff…...

AI大模型在健康睡眠监测中的深度融合与实践案例

文章目录 1. 应用方案2. 技术实现2.1 数据采集与预处理2.2 构建与训练模型2.3 个性化建议生成 3. 优化策略4. 应用示例:多模态数据融合与实时监测4.1 数据采集4.2 实时监测与反馈 5. 深入分析模型选择和优化5.1 LSTM模型的优势和优化策略5.2 CNN模型的优势和优化策略…...

【西瓜书】9.聚类

聚类任务是无监督学习的一种用于分类等其他任务的前驱过程,作为数据清洗,基于聚类结果训练分类模型 1.聚类性能度量(有效性指标) 分类任务的性能度量有错误率、精度、准确率P、召回率R、F1度量(P-R的调和平均)、TPR、FPR、AUC回归…...

使用jemalloc实现信号驱动的程序堆栈信息打印

使用jemalloc实现信号驱动的程序堆栈信息打印 本文介绍应用如何集成jemalloc,在接收到SIGUSR1信号10时打印程序的堆栈信息。 1. 编译jemalloc 首先,确保你已经编译并安装了启用prof功能的jemalloc。以下是ubuntu18.04上的编译步骤: git c…...

树的4种遍历

目录 树的四种遍历方式的总结 1. 前序遍历(Pre-order Traversal) 2. 中序遍历(In-order Traversal) 3. 后序遍历(Post-order Traversal) 4. 层序遍历(Level-order Traversal 或 广度优先遍…...

深入探讨5种单例模式

文章目录 一、对比总览详细解释 二、代码1. 饿汉式2. 饱汉式3. 饱汉式-双检锁4. 静态内部类5. 枚举单例 三、性能对比 一、对比总览 以下是不同单例模式实现方式的特性对比表格。表格从线程安全性、延迟加载、实现复杂度、反序列化安全性、防反射攻击性等多个方面进行考量。 …...

SPOOL

-----How to Pass UNIX Variable to SPOOL Command (Doc ID 1029440.6) setenv只有csh才有不行啊PROBLEM DESCRIPTION: You would like to put a file name in Unix and have SQL*Plus read that file name, instead of hardcoding it, because it will change.You want to pa…...

洛阳网站建设联系方式/淘宝指数查询

Attribute selectors are a particularly helpful subset of CSS selectors. They allow us to specify an element by one of its HTML attributes, such as a links title attribute or an images alt attribute. 属性选择器是一个相当有用css选择器的子集。 它允许我们通过…...

网站首页布局修改/友情链接交易网站源码

1. 数组的概述 * 1.数组的理解:数组(Array),是多个相同类型数据一定顺序排列的集合,并使用一个名字命名,* 并通过编号的方式对这些数据进行统一管理。* 2.数组相关的概念:* >数组名* >元素* >角标、下标、索引…...

网络管理员是做什么的/深圳网站seo外包公司哪家好

子类默认不会继承父类的初始化方法,然而,假设某种条件满足的话。父类的初始化方法还是能够继承给子类。在通常情况下,这意味着你不必复写父类的初始化方法。在安全的前提下能够以最低的代价继承父类的初始化方法。 如果子类新增的stored prop…...

nas可做网站服务器吗/关键词排名优化易下拉排名

雷帝网 乐天 8月7日报道作为NAND行业的新晋者,长江存储科技有限责任公司(简称:长江存储)今天公开发布其突破性技术——XtackingTM。据知情人士透露,这之前存储一直都是三星的强项。长江存储称,该技术将为3D…...

建设公司官方网站/网站seo优化8888

一.HTML文档基本结构二.常用HTML标签(元素)文本标签:(—)标题大小、标签、本段落、文本容器、换行符、链接标签:https://www.baidu.com图像标签:表格标签:boder为表格边框属性,一个表格可以thead、thbody甚至tfoot构成…...

yandex网站推广/网站推广优化业务

事件与消息的区别 在osal中 事件是驱动任务去执行某些操作的条件,当系统中产生一个事件,OSAL将这个事件传递给相应任务后,任务才能执行一个相应的操作(传递这个行为是通过调用轮训函数实现,完成操作时通过时间处理函数…...