源宝导读:天际数见平台是一个数据可视化的BI平台,定位于为高层决策提供数据可视化赋能。数据准确性是生命线,如何提前发现数据问题,快速定位和修复问题,成为我们必须攻克的难点。本文将介绍数见平台通过架构优化,提升数据巡检准确率和效率的技术实践。

一、项目背景介绍

天际数见平台是一个数据可视化的BI平台,定位于为高层决策提供数据可视化赋能。数见平台接入多种数据源,屏蔽数据源底层差异,统一将数据呈现给客户。由于数据来源复杂,偶然会出现数据不一致/延迟/抖动等情况,往往是在客户发现问题后反馈给一线,再由一线反馈给技术团队。这种情况不仅给客户造成平台不稳定的错觉,同时沟通过程涉及链条较长导致难以快速定位问题源头。为此数见平台规划了数据质量巡检功能,定时巡检数据准确性/一致性/实时性,并巡检问题的源头,系统第一时间通知相关责任人进行解决。

由于时间紧任务重,团队在较短时间内满足了客户的基本需求,但在使用过程中仍然发现了一些问题,因此决定对该功能进行系统性分析并进行优化。

二、老版本数据质量巡检架构

上图中ERP数据中心即为数见平台数据源的一种(也称之为主题包数据集),可以看出最终接入数见平台的数据链路较长,数据来源较多,与之匹配的数据质量巡检如下图:

说明:DMP为数据可视化平台,RunDeck 为定时任务调度系统,DMP-Proc为任务执行子系统,DMP-Celery为异步任务系统。通过上图可以发现当DMP-Proc子系统处理完成后,通过API和DMP-Celery异步任务系统发生通信,通信完成后DMP-Celery又向DMP-Proc子系统回传消息。

整个巡检逻辑如下图:

通过上图可以发现,DMP-Proc子系统负责向各个节点分发巡检任务,然后处于等待状态,但是由于无法知悉各个节点需要执行的具体时间,因此此处设置了固定等待时间。这种做法实际会造成不必要的时间等待,同时在等待过程中处于协程阻塞状态,无法接收其他巡检任务。若此时系统因为各种原因重启,则该次巡检消息丢失,将永远无法完成直至下次巡检覆盖本次巡检结果。

三、为什么需要重构

通过上面的内容我们可以发现老的数据质量巡检存在以下问题:

  1. 链路过长:链路过于复杂,涉及多个子系统,代码业务逻辑难以理解。开发过程十分痛苦,需要在多个系统之间进行切换。涉及链路过多故障发生的机率也随之大幅提升;

  2. 子系统之间形成循环通信:子系统之间形成循环通信,使架构变的复杂难以维护,需要精简为单向通信;

  3. 系统性能时效性较低:由于使用了通道超时机制,每次检查都需要等待固定的时间,实际业务巡检有长有短,而非花费时间都是统一的;

  4. 系统稳定性不足:由于使用了协程常驻内存检测通道消息,当遇到整个子系统重启后或者发生故障,通道消息丢失,该次巡检便无法更新为完成状态。

四、怎样进行优化

1. 精简链路,重新设计表结构,实现每个节点只关注自身业务和节点,中间节点不再处理所有业务,每个节点只关心自身节点数据,完成巡检即更新节点结果,DMP-Proc系统接收到巡检消息后定时轮询各个节点状态,最终更新总状态和结果。

2.通信方式优化为单向通信,子系统不再向中间节点回传信息。由于各个节点只更改本节点数据,不会导致多节点并发更新同一份数据的问题,因此无需再向中心节点回传结果消息。

3.监控超时机制更改为单独的独立协程常驻内存进行监控,不依赖于其他通道传送信息,只依赖于数据库中最终数据。

4.系统启动便开始检测所有巡检节点,及时重启或者异常宕机也不影响。系统每次启动时自动检查状态未结束的巡检节点,重新启动巡检任务。

五、优化效果

  1. 架构简单清晰,链路得到精简,各个节点只关心自己的数据,不再回传消息;

  2. 巡检数据更加精准,不再有中心节点,不再产生节点结果偶尔被覆盖的情况;

  3. 系统稳定性得到较大提升,发布或dmp-proc意外宕机,都不会影响最终巡检结果;

  4. 提升巡检效率,一.减少通道不必要的等待时间,提升巡检速度;

  5. 客户满意度提升,认可数见平台数据质量巡检体系。

------ END ------

作者简介

曹同学: 研发工程师,目前负责天际-数见平台的后台研发工作。

也许您还想看

Go语言plugin的两种实现方式

在明源云客,一个全新的服务会经历什么?

云客后台优化的“前世今生”(一)

云客后台优化的“前世今生”(二)

回归统计在DMP中的实战应用

天际数见数据质量巡检架构优化相关推荐

  1. 如何保障数仓数据质量?(建议收藏)

    导读 文|傅宇康 有赞数据报表中心为商家提供了丰富的数据指标,包括30+页面,100+数据报表以及400+不同类型的数据指标,它们帮助商家更合理.科学地运营店铺,同时也直接提供分析决策方法供商家使用. ...

  2. 数据流被污染?数据质量不高?蚂蚁金服数据资产管理平台了解一下

    今年年初,蚂蚁金服ATEC城市峰会在上海举办.金融智能专场分论坛上,蚂蚁金服数据平台部高级数据技术专家李俊华做了主题为<蚂蚁金服数据治理之数据质量治理实践>的精彩分享. 演讲中,李俊华介绍 ...

  3. 数据质量(DQ)的建设方法论!离线实时通用

    目录 基础概念 数据质量问题根源 数据质量四个保障原则 数据质量六大基本要素 数据质量管理的方法 数据分析的方面 数据质量检核和监控 数据质量的监控指标一般有哪些 数据质量问题分析及报告 基础概念 什 ...

  4. 华数大数据平台解决方案

    http://www.soft78.com/article/2016-03/8a2389fd5310d3e40153300fbe9901c0.html 第1章 华数大数据分析平台方案介绍 1.1 华数 ...

  5. 智能&大数据时代,架构师思维的十个学习步骤(优化版)

    前言: 秦朝的<书同文.车同轨>,加上唐朝的<诗同形>,有效的减法设计,创造了大一统(加法)的辉煌国度.君不见,在前面各步骤里,诸如:从复杂中设计出简单.以需求检验设计等都是基 ...

  6. Entity Framework 数据并发访问错误原因分析与系统架构优化

    本文主要记录近两天针对项目发生的数据访问问题的分析研究过程与系统架构优化,我喜欢说通俗的白话,高手轻拍 1. 发现问题 系统新模块上线后,使用频率较高,故在实际使用和后期的问题重现测试中,产生了一下系 ...

  7. 这种思路讲解数据仓库建模,你见过吗?数据人与架构师必看

    文|傅一平 今天跟着我来学学数据仓库的基础知识,希望你结合案例可以把它吃透. 商业智能时代,无论是程序员,数据分析师,架构师也好,这篇一定要懂,这样才能更好的赋能自己的工作. 一.数据仓库建模的意义 ...

  8. 数据库架构优化的12种组合方式与风险解读

    韩锋 阿里云高级产品专家 dbaplus社群联合发起人,CCIA(中国计算机协会)常务理事: Oracle ACE,具有丰富的一线数据库架构.设计.开发经验,著有<SQL优化最佳实践>&l ...

  9. 数据运营平台-基础架构

    目录 一.数据存储 二.数据计算 三.作业调度 四.架构安全 五.运维管理 六.数据权限 七.数据查询 八.应用层框架 一.数据存储 底层为统一分布式存储HDFS,HDFS默认采用三份副本策略保证数据 ...

最新文章

  1. linux remote
  2. OpenCvSharp 图像像素归一化
  3. 自由自在珍珠奶茶 喝出缤纷夏季
  4. VTK:PolyData之HighlightBadCells
  5. 基于WinDbg的内存泄漏分析
  6. SAP Spartacus lazy load 的一个例子 - User Module
  7. LeetCode 478. 在圆内随机生成点(概率)
  8. 第三节:创建一个Vue实例,超简单
  9. django请求生命周期
  10. 通过wget在Linux上下载Java JDK会显示在许可证页面上
  11. indesign教程,如何改变内容的顺序?
  12. 编译原理的first、follow、select
  13. 通信-RS232、RS485、RS422
  14. js动态获取屏幕宽高度
  15. 【CCNA题库】Ti CCNA640-802V30版题库
  16. m4s格式转换mp3_把MP3格式的音频转换成WAV格式
  17. c语言验证费马大定理,费马大定理,用电脑编程证明
  18. [转]JavaScript自动生成博文目录导航
  19. python学生信息管理系统项目总结_学生信息管理系统案例小结
  20. 乱世奸雄纵横三国:品曹操

热门文章

  1. Vue 的路由实现 Hash模式 和 History模式
  2. 算法61---两个字符串的最小ASCII删除和【动态规划】
  3. Event 事件 - 基础
  4. extjs 前端js代码调用后台函数方法
  5. 使用组策略推送exchange自签名证书
  6. (原創) 07/28/1982 少女A (中森明菜)
  7. 搭建WeApacheb网站服务器
  8. 使用SMART监控Ubuntu
  9. Lync Server 2010迁移至Lync Server 2013部署系列 Part1: 扩展AD架构
  10. JavaFX 一 出生新手村(阅读小规则)