你了解你的数据吗(元婴篇):血缘分析

0x00 前言

本篇是《你了解你的数据吗》的第五篇,在前面的几篇文章中,我们聊到了数据接入量、数据的坑、数据核心维度分布、数据口径和数据质量监控。本篇将引入一个新的概念:数据血缘分析 ,或者叫血统分析。

0x01 血缘分析

那么什么是数据血缘分析呢?在这里我们不给出它的严谨的定义,仅从感觉上来解释一下这个东西。

数据血缘,我们可以大致理解为是一个表的生成过程。它依赖了哪些表,怎么生成的。同时加上它依赖的表又是怎么生成的。

觉个栗子

下面举个栗子来解释一下。

现在假设你是一只数据开发工程师,为了满足一次业务需求,,然后为了生成这张表,可能是处于程序逻辑清晰或者性能优化的考虑,你会使用很多份数据表,也会通过 MR、Spark 或者 Hive 来生产很多中间表。

如下图,是你将花费时间来实现的整个数据流。

  • 其中 Table X 是最终给到业务侧的表。
  • 蓝色的 Table A-E,是原始数据。
  • 黄色的 Table F-I 是你计算出来的中间表。这些表都是你自己写程序要处理的表。
  • 然后你为了懒省事,嗯,应该说本着不重复开发的原则,你还要用到同事小伙伴处理的表,Table J 就是别人处理过的结果表。

过了一段时间后,业务侧的感觉你提供的数据中有个字段总是不太对劲,其实就是怀疑你的数据出问题!需要你来追踪一下这个字段的来源。

首先你从 Table X 中找到了异常的字段,然后定位到了它来源于 Table I,再从 Table I 定位到了它来源于 Table G, 再从 Table G 追溯到了 Table D,最终发现是某几天的来源数据有异常。

或者说,你从 Table X 定位到了异常的字段原来来自于其它小伙伴处理的表 Table J,然后继续向前回溯,找到了这张表在处理过程中的某一个步出现了问题。

上面的过程是数据血缘分析的过程。

0x02 数据血缘分析有什么用???

咋一看,其实感觉数据血缘分析并没有什么用,其实就我个人感觉来看,其实的确没什么用,特别是在你的业务规模比较小并且数据合作不频繁的情况下,基本不需要数据血缘分析。但是当遇到了下面一些场景的时候,数据血缘绝对能帮你提高很高的效率。

  1. 问题定位。上面的例子,假设你用到了别人的数据,数据血缘分析能快速帮你定位到问题。
  2. 理解数据。如果你想用其它的数据源,首先要能理解它,不然数据口径能给你带来很大的麻烦。
  3. 修改某份数据的时候能评估影响的范围大小。比如说现在你的小伙伴要调整自己开发的 Table J,这时候如果他不知道有谁在依赖这张表,冒然修改的话会带来毁灭性的伤害,但是有数据血缘分析的时候,至少能知道谁在使用这份数据。

其实总的说来,数据血缘能帮你更好地理解自己的数据!

0x03 关于实现

实现的话不打算在这里多聊,因为数据血缘一般是和元数据管理紧紧绑定起来的,在设计元数据管理系统的时候应该要考虑到数据血缘的内容。关于元数据系统的设计可以参考这篇博客《别人家的元数据系统是怎么设计的》

这里随便提一句,数据血缘的管理可以考虑使用图数据来实现,用图数据的好处是更容易展现表之间的关系。比如说下面两个需求点,用关系型数据库写 Sql 的话会很麻烦,但是用图数据库的话逻辑就十分简单。

  • 找到一张表依赖的所有的表和生成路径。
  • 找到依赖于某张表的所有表,和它们的生成路径。

补充: 有朋友会问,数据的关系从哪来?这个其实途径很多,最简单的方式可以从所有的 Hive Sql 中解析出来关系对,也可以从其它的代码或者调度系统中解析。具体实现可以根据业务场景来实现。

0xFF 总结

居士个人理解,数据血缘关系是理解数据的一个十分重要的点,它能让你快速清晰地理解你所关注的数据的生成路径。

然后关于本文,闲扯的比较多,而且不是特别严谨。居士希望能帮助没怎么听过数据血缘的童鞋熟悉一下这个概念,至于深入的挖掘点,可以再多交流。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏企鹅号快讯

服务器数据保护解决方案

作为韩国最大、世界第三大在线零售商,GS 的日营业额大约为 700 万美元。对于该公司而言,一旦 IT 基础架构停机,后果不堪设想,因此其采用赛门铁克提供的一套...

2667
来自专栏腾讯Bugly的专栏

微信iOS收款到账语音提醒开发总结

一、背景 为了解决小商户老板们在频繁交易中不方便核对、确认到账的痛点,产品MM提出了新版本需要支持收款到账语音提醒功能。这篇文章总结了开发过程中遇到的坑和一些小...

4466
来自专栏IT派

爬取了陈奕迅新歌《我们》10万条评论数据发现:原来,有些人只适合遇见

最近就有一部“怀旧”题材的电影,未播先火,那就是刘若英的处女作——《后来的我们》。青春,爱情,梦想,一直是“怀旧”题材的核心要素,虽然电影现在还未上映,但先行发...

1290
来自专栏博客园

WPF---Binding学习(一)

程序的本质是数据+算法。数据会在存储、逻辑和界面三层之间流通,所以站在数据的角度上来看,这三层都很重要。但算法在3层中的分布是不均匀的,对于一个3层结构的程序来...

1475
来自专栏IT大咖说

第一个国人主导的开源项目——Apache Kylin成长之路

2563
来自专栏SDNLAB

SDN技术分享(十):GoogleFiber的宽带接入速率控制解决方案

本次分(zhuang)享(bi)呢,主要探讨一个新兴SP客户的案例。 G家,这是非传统的SP。我们一起来看一下G家的市场策略以及使用的关键技术. 内容比较多,我...

3097
来自专栏Sorrower的专栏

OpenEmu:一个让你在Mac上爽快体验任天堂的模拟器

2833
来自专栏杨建荣的学习笔记

关于提问的一些建议(r5笔记第41天)

今天看到一个网友的提问,在晚上分析了问题之后还是有一些感慨的。 网友的问题做move tablespace的操作时,报了类似下面的错误。 alter table...

3689
来自专栏知晓程序

开发 | 什么?他用 2 小时做出了一个「简版大众点评」小程序

有人曾说:「人生至少有两次冲动,一次为了奋不顾生的爱情,还有一次就是为了说走就走的旅行」。

1264
来自专栏牛客网

有赞三面面经

9月底电话面试,国庆后现场面,前段时间发的offer,分享一下面试时问的问题。 一面 电话面 1、一个类被加载到JVM,发生了什么 2、GC的判定 3、GC标记...

7167

扫码关注云+社区

领取腾讯云代金券