数据中心数据质量线上监控的实践(上)

发表于:2022-11-07 09:15

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:侨歌    来源:有赞技术

  有赞数据报表中心为商家提供了多维度、多渠道、多周期的数据,帮助商家更合理、科学的运营店铺,同时也直接提供分析决策方法供商家使用。
  多维度是指支持正逆向交易、商品、客户、流量、营销活动...
  多渠道是指支持全渠道、H5、APP、小程序(微信、支付宝、百度...)...
  多周期是指支持实时、自然日、自然周、自然月、近7天、近30天、季度、自定义。
  监控背景&解决的问题
  因为数据涉及商家运营策略的制定,所以在商用数据及时性和准确性上都会有很高的要求,而数据除了发布可能引入问题之外,每日调度时依赖表缺失、组件异常或者数据异常等均可能造成数据问题,所以线上监控就显得非常重要,是发现和拦截问题的重要手段。本文主要分享有赞针对离线和实时数据做的一些监控实践,当前商家数据基本在7点前完成产出,所以线上监控规则大多是7点开始调度,为了更早的发现问题,我们也开始做业务层表(kylin)构建完成后触发监控。
  章节分为4块,1.有赞的数据流图 2.离线数据(批处理)的线上监控详解 3.实时数据(流处理)的线上监控详解 4.线上监控效果 5.后期规划。
  一、有赞的数据流图
  有赞的数据主要来源于交易、商品、客户等各业务方和C端的埋点日志,在数据处理阶段提供离线和实时数据两个维度,在应用层不仅支持了通用的数据报表,也支持定制化的业务数据。
  二、离线数据(批处理)的线上监控详解
  1 离线数据描述
  离线数据定义为昨天及以前时间的数据统计,周期维度有自然日、自然周、自然月、近7天、近30天、季度、自定义,主要是通过hivesql来处理和聚合。在梳理规则前,先简单了解下离线数据链路每层的特性。
  1.1 准确性规则-线上监控梳理
  离线数据的线上准确性监控分为指标、表和应用层三个维度,其中指标准确性又分为“跨表对比”、“同表逻辑性判断”和“自身判断”;表维度分为“行数判断”和“大小判断”;应用层分为“接口返回历史数据不变判断”。
  指标维度
  跨表对比:是指不同表相同指标之间的等值判断,有赞数据中心当前仍然存在着页面不同定义相同的指标,来源于不同的底层表,后期随着底层表统一模型的建设,此类对比监控比重会逐步下降。
  同表逻辑性判断:是指同表不同指标之间的逻辑判断,比如支付人数<=支付订单数。
  自身判断:是指做指标本身的规则判断,比如枚举值、唯一性、非空性判断。
  表维度
  行数判断:是指表全量或者分区表行数基于过去某时间数据的同比/环比的变化判断,同时也支持取值范围的判断。
  大小判断:是指表全量或者分区表大小基于过去某时间数据的同比/环比的变化判断,同时也支持取值范围的判断。
  应用维度
  历史数据不变判断:是指过去某天/周/月下,在指标定义不变的前提下,接口返回数据不变判断,属于数据回归部分。
  基于上述描述,离线数据线上准确性监控模型的脑图如下:
  监控维度确认后,下一步需要确认的是触发时机,离线数据处理流程长,每层的数据特性决定了对应的判断规则case,规则case详情描述如下:
  1.2 及时性规则-线上监控梳理
  离线数据产出时间,上层表象主要由作业的开始调度时间、执行时长、deadline时间和规则校验时间这4个因子影响,下层影响因子是作业开发平台和大数据组件的稳定性。
  开始调度时间,是指作业的开始进入队列时间,不是开始执行时间。
  执行时长,是指作业开始执行到结束的时间,通常是由作业优先级、执行引擎、SQL执行效率影响。
  deadline时间,是指从作业开始调度,最长的可执行时间。
  规则校验时间,是指针对表编写的校验规则(电话告警)执行时间,数据更新时触发,当前最多可执行8分钟,超过即开始下游调度。
  通过上述描述的4个影响因子,同时结合上层表象是下层的体现,确认了商用指标工作流优先级P3及以上和数仓时间基线(待实现)的策略,以及deadline和电话告警耦合、接口返回指标数值判断兜底等保障方法(当数据未产出时,应用代码默认为0或者直接返回空,接口返回指标数值判断,更新为接口返回指标数值>0判断。),其中接口返回指标数值>0判断和deadline告警为线上监控,也是接下来着重介绍的。
  2 线上监控规则的实现
  针对不同层级数据,所有线上监控覆盖面参考下图(实圈为覆盖项,空圈为无交集项):
  平台监控职责以及保障维度拆解如下:(图中“BI报表”主要是做元数据管理平台监控数据的报表统计,本次不做详细介绍。)
  2.1 线上监控示例
  2.1.1 准确性示例
  基于元数据管理平台,实现“同表逻辑性”判断,数据变更时自动触发规则校验,具体实现如下图:
  基于接口自动化平台,实现数据回归用例-“数据接口返回历史数据不变”判断,7-24点每10分钟定时触发,对于离线数据做10分钟间隔触发,也是为了监控数仓刷数和应用发布的动作。
  准确性监控,示例数据中心全量指标,如下图:
  2.1.2 及时性示例
  基于接口自动化平台,实现“数据接口返回指标数值>0”判断,7点定时触发。 及时性监控,示例流量概况页面指标,如下图:
  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号