• 【数仓】数据质量监控


      今天来填 2 个月前的坑。之前提到了数据质量:

    【数仓】数据质量

    我在面试中也碰到了数据质量的问题,没回答出来。今天学习一下数据质量监控原则。欢迎点击此处关注公众号。

    1.数据质量概述

    数据质量的高低代表了该数据满足数据消费者期望的程度,这种程度基于他们对数据的使用预期,只有达到数据的使用预期才能给予管理层正确的决策参考。数据质量管理作为数据仓库的一个重要模块,主要可以分为数据的健康标准量化、监控和保障。

    2.数据质量标准分类

    1. 数据完整性:数据不存在大量的缺失值、不缺少某一日期/部门/地点等部分维度的数据,同时在 ETL 过程当中应保证数据的完整不丢失。验证数据时总数应符合正常规律时间推移,记录数总数的增长符合正常的趋势。
    2. 数据一致性:数仓各层的数据,应与上一层保持数据一致,最终经过数据清洗转化(ETL)的宽表/指标能和数据源保持一致。

    3.数据质量校验

    3.1 单表数据量监控

    一张表的记录数在一个已知的范围内,或者上下浮动不会超过某个阈值。

    • 方法:select count(*)from 表 where 时间等过滤条件。
    • 报警触发条件设置:如果数据量不在 [数值下限, 数值上限], 则触发报警。
    • 同比增加:如果 ((本周的数据量 - 上周的数据量) / 上周的数据量 * 100) 不在 [比例下线,比例上限],则触发报警。
    • 环比增加:如果 ((今天的数据量 - 昨天的数据量) / 昨天的数据量 * 100) 不在 [比例下线,比例上限],则触发报警。
    • 报警触发条件设置一定要有。如果没有配置的阈值,不能做监控。

    监控的指标:日活、周活、月活、留存(日周月)、转化率(日、周、月)、GMV(日、周、月)。

    例如:平常复购率(日周月)大约 30%,某天检测发现只有 20%。

    3.2 单表空值检测

    某个字段为空的记录数在一个范围内,或者占总量的百分比在某个阈值范围内。

    • 目标字段:选择要监控的字段。
    • 方法:select count(*) from 表 where 目标字段 is null。
    • 单次检测:如果(异常数据量)不在 [数值下限, 数值上限],则触发报警。

    3.3 单表重复值检测

    一个或多个字段没有重复记录。

    • 目标字段:选择要监控的字段。
    • 第一步先正常统计条数;select count(*) form 表;
    • 第二步,去重统计;select count(*) from 表 group by 目标字段;
    • 第一步的值和第二步的值做减法,看是否在上下线阀值之内;
    • 单次检测:如果(异常数据量)不在 [数值下限, 数值上限], 则触发报警。

    3.4 单表值域检测

    一个或多个字段是否满足某些规则。

    • 目标字段:选择要监控的字段,支持多选。
    • 检测规则:填写“目标字段”要满足的条件。
    • 阈值配置与“空值检测”相同。

    3.5 跨表数据量对比

    主要针对同步流程,监控两张表的数据量是否一致

    • 方法:count(本表) - count(关联表)
    • 阈值配置与“空值检测”相同。
  • 相关阅读:
    安全漏洞-linux漏洞修复命令
    java8新特性,Lambda 表达式
    TypeScript 学习笔记
    计算机网络 基础面试第一弹
    DB2和mysql活动日志满了会自动回滚最早未提交的事务吗?
    深入解析Java HashMap的Resize源码
    经过打包后运行app.exe文件之后问题解决
    Ubuntu18.04 ROS-Melodic安装Moveit
    【行为型模式】备忘录模式
    react中useRef的应用
  • 原文地址:https://blog.csdn.net/weixin_45545090/article/details/126142357