数据中台实战课
郭忆
网易大数据专家
31971 人已学习
新⼈⾸单¥59
登录后,你可以任选2讲全文学习
课程目录
已完结/共 19 讲
数据中台实战课
15
15
1.0x
00:00/00:00
登录|注册

07 | 同事老打脸说数据有问题,该怎么彻底解决?

准确性规则
一致性规则
完整性规则
任务配置异常
数据格式处理错误
任务发布上线,使用了固定分区
任务发布上线,测试库未修改为线上库
源系统日志数据格式异常
源系统环境变更
源系统数据库表结构变更
数据完整性监控误判情况
质量度量
全链路监控
稽核规则管理
数据产品SLA
需要立即介入的报警次数
基于稽核规则,计算表级别的质量分数
4点半前数据中台核心任务产出完成率
规范化管理制度
通过应用的重要性区分数据等级,加快恢复速度
通过智能预警,确保任务按时产出
建立全链路监控
添加稽核校验任务
基础设施不稳定
物理资源不足
数据开发任务变更
业务源系统变更
思考时间
数据质量中心
如何衡量数据质量?
如何提高数据质量?
数据质量问题的根源

该思维导图由 AI 生成,仅供参考

你好,我是郭忆。
上一节课,我带你从模型设计层面,逐步将分散、杂乱、烟囱式的小数仓整合成了可复用、可共享的数据中台,数据研发效能提升了一倍。那是不是交付数据足够快,使用数据的人就满意了? 当然不是,来看发生在我身边的一件事儿。
供应链部门运营陈英俊(化名)每天上班第一件事情,就是打开供应链辅助决策系统(数据产品),根据系统上给出的商品库存数据、区域下单数据,制订商品的采购计划,然后发送给供货商。可是今天当他准备工作时,突然发现系统中部分商品库存数据显示为 0,他第一时间将问题反馈给了数据部门。与此同时,与他一样无法工作的还有供应链部门的其他 50 多名运营。
图1 ADS层商品库存表加工链路图
接到投诉后,负责库存域的数据开发郝建(化名)立即开始定位,首先就“商品库存”指标的产出表 ads_wms_sku_stock_1d 进行排查,确认它产出任务没有问题,是这个任务的上游输入表数据有问题,引发下游表数据异常。
从数据血缘图中你可以看到,ads_wms_sku_stock_1d 上游有 20 多张表,郝建逐层校验是哪个表的数据出现问题,结果锁定在了 dwd_wms_inbound_stock_df。这张表的产出任务在前一天有一次线上变更,任务代码存在漏洞,对部分商品入库数据格式解析异常,但是没有将异常抛出,导致产出数据表 dwd_wms_inbound_stock_df 数据异常,进而影响了所有下游表。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文介绍了数据质量问题在企业中的重要性以及解决数据质量问题的方法。通过一个实际案例,描述了数据异常对业务运营的影响,并分析了数据质量问题的根源,包括业务源系统变更、数据开发任务变更、物理资源不足和基础设施不稳定等方面。作者提出了提高数据质量的方法,包括添加稽核校验任务,设计一些校验逻辑,确保数据的完整性、一致性和准确性等。文章强调了“早发现,早恢复”的重要性,提出了一套数据质量建设的方法,为读者提供了解决数据质量问题的思路和方法。 文章还介绍了如何衡量数据质量,包括核心任务产出完成率、表级别的质量分数、需要立即介入的报警次数和数据产品SLA等指标。此外,文章还提到了数据质量中心的核心功能,包括稽核校验和基于数据血缘的全链路数据质量监控。 总的来说,本文通过实际案例生动形象地展示了数据质量问题对业务的影响,同时提出了解决问题的方法,对于企业数据管理和数据质量保障具有一定的指导意义。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《数据中台实战课》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(35)

  • 最新
  • 精选
  • 吴科🍀
    数据部门作为下游系统,上游业务系统变更,往往不能第一时间通知,第二天跑批是才发现,早晨五点起来处理太平常不过了。 资源抢占也时常发生,分析师临时加了一个任务跑全量的数据,还加到了资源主列队中,第二天所有跑批都延迟了。 数据部门,要规范各种数据相关的变更才能解决。实际中,我们数据部门都是弱势的。 😂

    作者回复: 你说的都是大实话。 我真心觉得数据开发真是苦逼的职位,白天忙需求,晚上接报警,因为指标业务口径不一致、数据质量问题天天被人怼,处于弱势地位,工具产品也不到位,所以需要数据中台来拯救他们。 感谢你的阅读,期待与你在留言区再次相遇~

    2020-04-17
    5
    25
  • 君为
    DQC 全链路监控功能不错,还需要在各个节点上增加执行时间和时长,监控各节点执行时长也很重要。 节日促销异常问题:可以将监控的所有指标作为数据,通过机器学习训练出稽核规则模型,这样每天每次任务跑完的指标,由稽核规则模型判别这次任务是否为异常。

    作者回复: 赞, 确实基于AI去判断稽核失败到底是正常失败还是异常失败,是一条可行的路,至少可以降低人接入的频率。Good! 感谢你的阅读,期待与你再次相遇~

    2020-04-17
    11
  • 叫我小名
    有这样一个场景,上游业务系统变更(表结构变更等),怎么自动通知到数据人员这边

    作者回复: 你好,我来介绍一下我们这边的方案。 你说的这是一个很典型的协作问题导致的数据质量问题,而且在一般的数据团队中还很常见。 我们所有数据库的变更都是经过工单系统提交,由DBA审核后,自动执行的。我们在工单系统中增加了一个环节,就是如果涉及到表结构变更,会根据数据血缘,找到它影响到数据中台原始数据的表的负责人,并在负责人确认以后,才能继续执行下去,这样就保证了业务系统数据库变更能够通知到数据负责人了。 这里,依赖全链路数据血缘,这里不仅仅是数据中台内的大数据加工的血缘,还要包括数据导入和导出任务的血缘,所以你才能建立业务系统源数据库源表到数据中台某张hive表的血缘关系。这个可以通过数据传输中心中,把血缘关系传递给元数据中心实现。 感谢你的阅读~

    2020-04-23
    4
  • leslie
    数据规则,各自为战。最近刚碰到数据问题,历史遗留下来的数据库设计造成的坑;虽然之前指定了一堆相应的规则,可是提交层还是出了不少隐患。 提交到平台其实是一个不错的方式与方法:多方面皆有隐患,今天的课程倒是引发了一些思路和操作方式。 现在来回答今天的问题:误判的原因是源自对于某些表的数据量或者说设计上做复杂了,过于精细有时反而会细致过度;例如我们经常会看到云数据库的分析报告,正确率是站在365天的基础上而非每年的数个双11类似场景的,这其实就是需要对于项目的理解,数据的设计越复杂在特殊场景的适用性越难准确;这其实是一个蛮纠结的事情。 谢谢老师今天的分享,期待后续的分享。

    作者回复: 感谢你的肯定和鼓励,看到能够引发你的一些思考,我真的觉得这篇文章还是很有意义的。 再来谈谈我在课后留的这个问题。其实稽核监控的规则设定,都是根据日常流量的正常波动范围来设定的,如果遇到大规模的引流或者重大促销,必然会不适用,所以如果不调整,大促期间,稽核监控基本全部会触发报警,也失去了早发现早恢复的用途。 所以一般在大促期间,我们一般会根据历史大促的经验,预留一些Buffer,来调整稽核监控。 感谢你的阅读,期待与你再次相遇~

    2020-04-17
    4
  • Weehua
    azkaban.flow.1.days.ago,看到这个参数,请问郭老师,你们网易的任务调度系统是用azkaban吗?还是在此基础上做了二次开发?我们团队2018-2019就是用azkaban做调度的,为了方便设置前后依赖,我们采用了flow依赖,每一层是一个flow,比如ods_flow,dwd_flow,但这样会存在木桶原理,每个flow的结束时间就是最长的那个任务,当有几千个任务的时候,任务运行非常不稳定,每天凌晨人肉值班,非常辛苦。

    作者回复: HI, 你好,WeehuaZheng, 我们的调度系统是基于开源的azkaban 进行的二次开发,至于你提到的flow之间的依赖,我们支持跨flow的job之间的依赖设置,这个属于自研的feature,基本原理是在job运行前,会周期性的检查前置依赖节点运行状态,只有依赖job 运行完成后,才能被执行。这个可以避免你说的flow级别的依赖木桶效应。 感谢你的提问,欢迎你有任何数据建设中的问题,在留言区与我们分享~祝好~

    2020-05-22
    3
  • 外星人
    额外起任务做数据校验和资源额外使用,怎么做衡量啊?

    作者回复: 你好,数据质量的稽核监控,本质上也是提交了一个数据校对任务到yarn上执行,必然会涉及到计算资源的消耗。所以并不是每个表都需要稽核监控,只有核心链路的表才需要稽核监控。 那问题来了,什么是核心链路的表,这个主要取决于应用,只有影响到下游核心应用的表,才是核心表,这些表需要添加稽核监控。比如,老板每天都要看的KPI报表,上游产出链路的所有的表,都需要添加稽核监控~ 感谢你的提问,你的问题挺好的,相信很多人都有这样的困惑~祝好~

    2020-05-21
    3
  • 你好
    老师,对于DQC中的规则控制里的强弱规则,是怎么控制调度流程继续或者终止的呢?怎么实现的。。。谢谢老师

    作者回复: 你好,通过azkaban中任务执行的后置检查条件执行的,在任务执行后,会自动开始执行稽核校验任务,如果任务失败的话,调度系统会根据任务的执行结果,中断任务流的执行。 感谢你的提问,期待下次与你再会~

    2020-04-27
    3
  • keke
    给这种大促活动单独设定一套稽查规则,随时切换~

    作者回复: 你好,你说的确实是一种可行的方法,不过,一般可以通过横向对比数据之间的一致性趋势来进行数据的初步判断。 感谢你的留言~祝好~

    2020-05-20
    2
  • zhuxueyu
    来自传统企业的科技公司的大数据部门。 公司数据质量问题的根因更多是: 1、业务终端人员操作不规范,导致数据错误、数据不一致等 2、某一类系统设计欠缺,导致缺少核心字段等 诸如上面两种根因,单纯是从数据层面建立全链路监控,只能监测到数据的表象问题。但整个过程最令人头疼往往是要解决上游终端/系统的规范性操作、合理设计等问题

    作者回复: 你好, 这部分还是要从流程规范的层面来推动业务系统的改造。 举个例子来说吧,对于日志格式的规范,要与业务系统定义好日志的格式,我们有一个日志管理平台,可以定义日志格式,然后监测不符合规范的日志,出现问题,第一时间发现,推动业务系统改造。

    2020-05-14
    3
    2
  • JohnT3e
    关于全链路监控深有体会。如果问题不早发现,而最终由业务反馈的话,可能会面临整个数据流程的数据回滚和重新加工,进而引发连锁反应,导致更多任务超时或者错误。

    作者回复: 看来你也遇到了,哈哈。希望07数据质量的介绍对你有所帮助,能够解决你当前面临的问题~

    2020-04-17
    2
收起评论
显示
设置
留言
35
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部