前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >记一次架构设计的经验--数据质量监控

记一次架构设计的经验--数据质量监控

作者头像
哲洛不闹
发布2018-12-17 11:08:33
8290
发布2018-12-17 11:08:33
举报
文章被收录于专栏:java一日一条java一日一条

在工作中跟同事沟通很重要,有多重要呢,一个月前,领导给分派了一个工作:要做一套针对线上实时数据的质量监控。监控这种工作首先第一点也是最重要的一点要跟生产流程解耦,这个性质也间接的导致了这份工作优先级别无限下降,最后只有我一个人搞这个项目。

不知道有多少人有过一个人开发整个项目的过程,从零到一,从无到有,时间比较急,来不及用一些比较成熟但是复杂的开源框架,这种情况下只能针对需求敲代码开发。之前没有搞过监控类的项目,只能从网上找案例,找相关的文章,看看前辈们是怎么思考的怎么开发的。

当时浏览了一整个晚上网站,总结出要实现这个功能至少需要三步:1.数据收集;2.规则引擎;3.数据展示及报警

从功能上讲整个系统分为三类之后,就要开始设计你的表结构和文档了,这个过程就是我之前写的一篇架构那些事中的抽象过程了。抽象这个事情很有意思,我们不妨先一步一步把各方以及需求都写到一张纸上,发现他们的相同点与不同点。

图1 数据的具体层级

上图是我根据数据性质以及业务方需求把每一个变量作为一个单元,由数据来源将每一个变量级的数据传过来,然后由我方存储。所以三张表油然而出,数据来源表,数据集表,变量表,具体每一个变量是我们应该对监控的对象,所以接下来的规则引擎类的表就要针对每一个变量做文章了。

常见的数据质量规则是数据偏移,数据偏移就是我们常见的psi公式了,将一个变量分多份,当然分的种类也不同,一般常见的有等宽和等频。然后根据公式:

psi = sum((实际占比-预期占比)* ln(实际占比/预期占比))开始计算psi值。计算psi值一般小于0.1属于非常稳定,在0.1与0.25之间属于正常,再大了就需要报警了,同时也可以把每一个分区的预期比例和当前占比做一个比较,可以很好的显示出数据偏移方向,针对情况可以做出针对性的策略,举个简单的现实中的例子:如果一些注册用户的性别年龄区间相较于预期的比较大,这种情况下必须赶紧分析一下当前的推广活动啊等等的。

到现在为止设计工作数据收集模块和规则引擎模块已经有一个大体的印象了。提前剧透我们的数据量非常大,一天的数据有接近一个T的大小,后期我会接着写第二篇,讲一下具体用到的技术框架和数据展示报警模块以及数据存储的设计。

趁着晚上下班的时间,写的这篇文章,如果还算可以记的点个赞哦

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-11-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 java一日一条 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档