热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

面试题:如何验证指标结果准确?

问题昨日群内发起一项比较有意思而且开放性的问题:在日常工作当中,大家开发完指标后,是如何验证结果是准确的?这里把大佬们的

问题

昨日群内发起一项比较有意思而且开放性的问题:在日常工作当中,大家开发完指标后,是如何验证结果是准确的?

这里把大佬们的思考分享出来,同时也做一下汇总,笔者能力和水平有限,如有错误之处,请多多指点。如果同学有更好的想法欢迎一起加入讨论。


大佬解答

以上大佬们的解答相信也是很多同学日常的操作,可以说是丝毫没有半点毛病。


总结

这里需要把该问题和保障数据一致性问题区分开来,本文讨论的是数据的准确性问题(DQC范畴)。

笔者结合前面大佬们的讨论并查询了一些资料,做出一些总结供大家参考。主要分为以下几个部分:
1、验证指标结果准确的几个方向
2、确保指标结果准确的几项措施


验证方法


口径对齐、数据源统一

做过数据开发的同学应该都有过因为口径理解不一致或者使用数据源不同出现返工的情况,这种情况的出现就会和需求方心中所预期的结果有所偏差。所以笔者这里把口径对齐和数据源统一作为指标结果准确的前提,否则无论经过后续的多少种验证方法都无法完成交付。


直接核对

这种校验方式如前面大佬所提,比如对于统计当日新增用户数这类简单指标,可直接通过明细比对。这种方式也是最简答粗暴的。


参照对比

对于无法直接通过明细比对的情况,可以跟历史数据或者同类数据进行对比,通过观察是否有大幅度的波动差异来验证合理性,比如历史日活在30w左右,新统计的日活数据只有几w,这种大幅度的升高或者降低的现象,要么是出现业务异常或者进行了一些业务操作,要么就是数据统计错误。当然参照对比的方式只能接近需求方的容忍程度,并不能完全保证准确性。


勾稽关系验证

先来介绍下勾稽关系的定义:指账簿和会计报表中有关数字之间存在的,可据以相互考察、核对的关系。举个简单的例子:公司发了1000 的薪资给A,那么A就会有1000 的收入,这两者间可互相验证,互相勾稽,就是勾稽关系了。一般对于指标之间有逻辑或者计算关系的时候,可以采用该种方式。比如B指标值=A指标+C指标值。


穿行测试

穿行测试(walk through testing)是指追踪交易在财务报告信息系统中的处理过程,这里所指的是通过一个实际的数据来串联整个业务逻辑进而检查每个环节是否符合业务逻辑。通常这种方式是由测试人员介入验证,也是验证开发逻辑最好的一个方式。


合理判断

合理判断的方法就需要开发同学要对业务有深刻的理解,和前面介绍的参照对比有点类似,这里的合理需要结合企业当前业务情况进行评估判断,心里清楚的知道自己统计出的指标值应该在什么样的一个范围。

简单为大家介绍以上几种验证方法,当然通常还会通过检查结果空值率、是否存在无效值、格式类型、离散分布等等指标来验证结果的准确度。笔者这里找了一份关于统计数据准确评估方法列表供大家参考

注:该图来自于《王华 金勇进. 统计数据准确性评估:方法分类及适用性分析[J]. 统计研究, 2009, 26(1): 32-39.》

如果大家有其他好的验证方式,欢迎一起讨论。


保障措施

要想保障数据准确,那么我们需要知道数据出错可能会在哪几个环节上,要想知道数据可能会出错在哪几个环节上,那么我们就要知道数据的流转是怎样的。大家都知道数据的整个生命周期包括:生产、存储、清洗、加工处理、对外服务。

那么要想保障最终结果的准确,那么就要保障每个环节的准确。这里引入一个数学题:假设一个工作需要100道工序完成,如果每一道工序的合格率都达到99%,经过100道工序后,那么产品的总合格率就是36.6%。可想而知,要保障数据准确性,涉及到的因素非常多,出错率也是非常高的,但我们仍需要各种措施来提高准确度。

笔者这里以数仓为例,对于数据流转抽象成入仓、仓内加工、出仓三块
1、首先要保障源头准确,入仓采集质量要严格把关,比如日志采集是否丢失、数据漂移、主备库延迟等问题。对于核心数据必须要配置稽核以此来保证贴源。

2、对于仓内清洗加工处理环节,需要确认清洗规则、按规范行事,该统一类型的要统一掉,该填充数据的地方要填充,同时也要注意调度周期、依赖关系、稽核等配置。

3、最后一公里也是要注意数据的正确使用,要跟数据责任人确认其使用方式及适用场景,避免出现引用表错误、限定条件设置错误、关联错误等,同时要保证口径对齐,这里涉及到OneData体系建设,内容比较多的,以后有机会再分享。

只有上游数据源统一、中游加工配置无误、下游使用得当,最后才能得到可靠、有用的数据价值。

当然前面也提到必须要保证每个环节都能达到99%以上的准确率,最终的交付物合格率才有可能达到99%。因此数据出错不可怕,只要能做到及时发现问题、保证沟通流畅,减少数据影响范围,降低损失,如此往复循环,数据可靠性也会越来越高。


推荐阅读
  • 本文讨论了在数据库打开和关闭状态下,重新命名或移动数据文件和日志文件的情况。针对性能和维护原因,需要将数据库文件移动到不同的磁盘上或重新分配到新的磁盘上的情况,以及在操作系统级别移动或重命名数据文件但未在数据库层进行重命名导致报错的情况。通过三个方面进行讨论。 ... [详细]
  • 本文介绍了自动化测试专家Elfriede Dustin在2008年的文章中讨论了自动化测试项目失败的原因。同时,引用了IDT在2007年进行的一次软件自动化测试的研究调查结果,调查显示很多公司认为自动化测试很有用,但很少有公司成功实施。调查结果表明,缺乏资源是导致自动化测试失败的主要原因,其中37%的人认为缺乏时间。 ... [详细]
  • 在Oracle11g以前版本中的的DataGuard物理备用数据库,可以以只读的方式打开数据库,但此时MediaRecovery利用日志进行数据同步的过 ... [详细]
  • tomcat的log文件夹下有以下几种日志:1、catalina.YYYY-MM-DD.logcatalina引擎输出的日志;catalina是tomc ... [详细]
  • 原标题:如何进行兼容性测试一、什么是兼容性测试很多人都知道兼容性测试,但是却很少能准确理解兼容性测试,大多都只会想到浏览器的兼容ÿ ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了数据模型续相关的知识,希望对你有一定的参考价值。#数据模型### ... [详细]
  • 本文介绍了如何在VSCode中查看运行日志的方法,对于新手来说,需要注意日志文件的设置位置。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
  • Android JSON基础,音视频开发进阶指南目录
    Array里面的对象数据是有序的,json字符串最外层是方括号的,方括号:[]解析jsonArray代码try{json字符串最外层是 ... [详细]
  • 本文介绍了在使用TortoiseSVN的Repo-browser浏览SVN时出现的错误,以及解决方法。文章提到了卸载当前版本、安装较低版本、使用更下一层的路径等解决方案。同时指出该问题可能是客户端与SVN服务端不匹配造成的,且服务端无法升级更高的SVN版本。 ... [详细]
  • mysql-cluster集群sql节点高可用keepalived的故障处理过程
    本文描述了mysql-cluster集群sql节点高可用keepalived的故障处理过程,包括故障发生时间、故障描述、故障分析等内容。根据keepalived的日志分析,发现bogus VRRP packet received on eth0 !!!等错误信息,进而导致vip地址失效,使得mysql-cluster的api无法访问。针对这个问题,本文提供了相应的解决方案。 ... [详细]
  • 腾讯安全平台部招聘安全工程师和数据分析工程师
    腾讯安全平台部正在招聘安全工程师和数据分析工程师。安全工程师负责安全问题和安全事件的跟踪和分析,提供安全测试技术支持;数据分析工程师负责安全产品相关系统数据统计和分析挖掘,通过用户行为数据建模为业务决策提供参考。招聘要求包括熟悉渗透测试和常见安全工具原理,精通Web漏洞,熟练使用多门编程语言等。有相关工作经验和在安全站点发表作品的候选人优先考虑。 ... [详细]
  • publicclassTesting{ ... [详细]
  • 模型融合(集成)参考博客:KaggleEnsemblingGuide(https_mlwave.com模型集成是融合多个训练好的模型,基于某种方式实现测试数据的多模型融合,这 ... [详细]
author-avatar
手机用户2602933123
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有