一.数据质量监控指标
数据完整性检测
数据完整性:主要用于记录数据缺失的程度,可以分为数据条目缺失与数据字段值缺失。
可以通过以下步骤对数据完整性进行监控:
- 数据条目缺失检测:可以通过对比上游源数据库上的表数据量和目的库上对应表的数据量来判断数据总数条目是否存在缺失。
- 数据字段值缺失检测:根据数据探查规则,选择需要进行完整性检查的表字段,计算该字段中空值数据的占比,一般来说数据表的主键及非空字段空值率为0%。空值率越小说明表字段信息越完善,空值率越大说明表字段信息缺失越多。
数据准确性检测
数据准确性:主要用于记录数据值与客观事物真实值的接近情况,一般我们会对数据记录的信息进行检测,检测其是否存在错误或异常。例如:我们在系统中提交信息,或接入外部数据源时字段顺序错位,在"出生日期"字段中填入"xx省xx市",在"联系电话"字段中填入"ssxdtsfs"之类的错误信息,造成了数据库中的信息与真实信息存在不一致的情况。导致其他业务系统调用或数据开发人员在使用时无法使用等异常问题。通常我们可以通过正则表达式校验的方式对特定业务字段的值进行准确性检测。
数据有效性检测
数据有效性:主要用于记录数据的字段值是否符合字段类型的定义,是否超出字段类型的限制。
可以通过以下步骤对数据有效性进行监控:
- 根据数据探查规则筛选需要进行数据有效性检测的字段。
- 明确有效性检测的规范,例如,字段类型,字段范围等。
- 使用SQL函数或正则校验等收盘来判断字段值是否符合字段类型的设置,是否超出字段类型的有效范围。
数据时效性检测
数据时效性:是一个在单位时间内数据对决策产生价值的属性。
数据从生成到ETL加工处理再到写入持久化数据库中存在一定的时间间隔。对于特定数据如果时间间隔较长,则可能会导致已经生成的决策或结论失去参考意义或价值。例如:在实时标签计算场景下,当部分属性的输入或同步出现延迟,则会导致标签计算出现误差。进而计算出的标签结果则会与预期产生较大偏差。
数据一致性检测
数据一致性:主要用于记录数据从输入到输出,经过一系列ETL加工处理后,特定唯一字段是否出现加工前后不一致的情况。
可以通过以下步骤堆数据一致性进行监控:
- 基于数据探查规则,筛选需要监控的数据表,与数据字段。
- 设置源表与结果表之间的关联项,用于匹配源表与结果之间的字段值是否一致。
二.质量监控系统实施
1.数据接入阶段
- 验证数据文件是否符合接入规范。
- 验证文件中是否为空文件。
- 验证文件中关键字段的数据值是否合规。
2.数据入库阶段
- 使用SQL语句与函数统计分析数据完整性,计算空值率。
- 使用正则表达式对特定表字段进行数据准确性检测。
- 基于业务有效时间,可定时或实时统计数据入库时间是否超出有效时间阈值。
- 使用SQL语句对源表与结果表进行特定字段的数据匹配,用于校验数据一致性。
三.数据质量监控产出物
数据质量报告:
根据数据质量指标与评估规则,对数据质量的相应指标数据进行分析,最后得出各个评估规则的百分比得分。使用合理的方法进行设置规则的权重。然后对规则进行打分。最后得出数据质量报告。
效果如下图所示:
四.使用的组件与技术
调度框架:XXL-JOB
主要技术:SQL,Python爬虫
BI工具:metabase
数据库:MYSQL
五.整体设计思路
我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!