保证标签数据质量是画像平台建设不可或缺的一个重要环节,只有保证产出高质量的标签,画像平台上的功能才有价值,这也是人群圈选准确性和画像分析结论有效性的前提和基础。如何通过工程化的方式评估一个标签的质量?表3-13展示了评价标签质量的主要检测维度。
表3-13 标签质量检测维度
检测维度 | 说明 | 示例 |
---|---|---|
及时性 | 度量数据达到指定目标的时效性。画像平台常见的是数据产出时间监控,如果重要标签数据产出时间有延迟,需要及时发出告警 | 很多例行任务依赖性别标签数据,需要严格监控性别标签产出时间,当产出时间晚于预期时及时报警 |
唯一性 | 度量数据记录是否重复、数据属性是否重复。画像平台常见监控为标签主键唯一性检测,指定标签数据表中不能有重复的主键ID | 一个用户只能有一条兴趣爱好标签数据,如果兴趣爱好标签中出现了重复UserId,说明产出有异常,需要确保标签数据主键唯一 |
有效性 | 度量数据是否符合约定的类型、格式和数据范围等规范。画像平台需要检测标签实际内容是否与注册类型匹配;定期检测标签值的占比波动是否有变化;数值型标签要根据业务特点,判断取值是否异常 | 手机操作系统,标签注册类型是字符串,如果检测发现标签值是数值类型,需要校验是否正常。近一周用户点赞数标签,其取值不能出现负数,需要检测点赞数数值是否正确。用户常住省标签中每个省份的用户量占比比较稳定,如果占比波动较大,说明数据产出异常 |
完整性 | 度量数据是否缺失。画像平台需要检测各类标签是否有空值,默认情况需要给标签设置默认值;需要校验标签覆盖度,即有标签数据的用户占整体用户的比例 | 用户南北方标签,覆盖历史全量用户,且默认值是未知,需要检测该标签覆盖率是否100%且没有空值 |
精确度 | 度量数据是否与指定的目标值匹配。画像平台主要检测数值类型为浮点类数据的精确度是否满足要求,目前浮点数使用较少,浮点数据一般会转换为整数型数据存储 | 近一周送礼金额,校验金额数据是否满足要求,比如数据粒度到分而不是元 |
一致性 | 度量数据是否符合业务逻辑。画像平台使用较少,一般用于固定业务检测,比如PV数据需要大于UV数据,送礼次数总和应该等于收礼次数总和 | 所有用户当日送礼次数与用户当日收礼次数累加和应该相等。当数据不对等时说明存在数据异常,需要找到异常数据并修复 |
可以根据上述表中标签的检测维度进行工程化实现。为了检测标签产出及时性,可以编写定时调度任务,通过查询Hive的元数据服务来判断分区是否就绪,如果在规定时间尚未产出最新分区,可以发出报警信息。为了检测标签数据是否具备唯一性,可以查询指定数据表里面主键数目,通过该数目与数据表行数进行对比,数据量不一致则说明主键不唯一。有效性检测可以通过每日分析标签取值的变化以及每一个标签值数量占比波动来判断数据是否有效,如果T日标签值集合与T-1日标签值集合差异率较高,或者T日各标签值数据量与总量的占比波动超过指定阈值,则说明标签内容波动较大,不满足有效性要求。
业界有一些开源的数据质量监控框架和解决方案。Apache Griffin,起源于eBay中国,于2016年进入Apache孵化器,支持批处理和流模式两种质量检测方式,可以从不同维度检测数据质量。Deequ是亚马逊提供的开源工具,可以基于Spark来做大数据质量检测。DataWorks是阿里云重要的平台产品,提供了数据集成、开发、质量检测和数据服务,其中质量检测包括数据探查、对比、质量监控、SQL扫描和智能报警等功能。DataMan是美团开发的大数据质量监控平台,可以对大数据做技术性和业务性的质量检测,并形成完整的数据质量报告和问题跟踪机制。画像平台标签数据质量检测,除了通过自行编写代码实现之外也可以选择上述开源工具实现。
本文节选自《用户画像:平台构建与业务实践》,转载请注明出处。