在一个大家族里,每位成员都有一份族谱和一份健康档案。族谱清楚记着谁是谁的祖先、谁是谁的后代,家族血脉如何延续;健康档案则记着每个人的血压、血糖和体检指标。过去这两份文件分开放,用处都很有限。直到一位聪明的家庭医生把两份合在一起看:族谱告诉他,某位患者的遗传病很可能来自哪一位祖先;健康档案告诉他,这位祖先的指标早已出现异常;再顺着族谱往后推,所有携带同源基因的后代都应提前体检。于是,一次本来被动的治病,变成了主动的全家族健康管理。 数据世界里,也有一份“族谱”,叫数据血缘(Data Lineage);也有一份“健康档案”,叫数据质量(Data Quality)。本篇文章将带你用“家族医生”的视角,理解血缘如何与质量联动,让数据问题无处遁形。

岗位关联

掌握血缘与质量联动,你就能在数据洪流中快速锁定问题源头、预判变更风险,成为团队里真正的“数据医生”——这是数据治理岗位最具含金量的核心能力。

目录
  1. 可视化演示
  2. 血缘与质量关系
  3. 质量评估体系
  4. 血缘质量映射
  5. 数据问题溯源
  6. 影响分析联动
  7. 质量闭环治理
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

本节配有交互动效(进入视口后自动加载,约 3KB)。

血缘与质量关系

想象一下,家族里新添了一个宝宝。族谱记下“他是谁的孩子”,健康档案记下“他是否健康”,这两件事看起来毫无关系。直到医生发现宝宝的血常规异常,而翻看族谱,宝宝的外公年轻时也有同样的指标——这时族谱和健康档案才第一次产生了化学反应。血缘提供了“谁影响谁”的结构,质量提供了“影响得有多严重”的数值,两者一旦结合,孤立的记录就活了起来。

在数据世界,数据血缘(Lineage)记录一条数据从产生、加工到最终消费的完整生命周期,包括每一张表、每一个字段、每一次计算转换的来龙去脉。数据质量则衡量数据在完整性、准确性、一致性、时效性等维度上是否满足业务要求。血缘回答“数据从何而来、流向何处、经过哪些变换”,质量回答“这份数据此刻是否值得信赖”。

两者的关系可以概括为:血缘是骨架,质量是血肉。血缘定义内涵决定了我们以什么样的粒度描述数据之间的依赖关系;质量维度指标决定了我们用什么尺子衡量数据健康。没有血缘,质量评估只能看到单个表的孤立得分,无法回答“这个低分是天生如此,还是被上游污染的”;没有质量,血缘图只是一张漂亮的静态拓扑图,无法指导工程师优先修复哪一张表。把它们联动起来,就形成了“质量感知的血缘图谱”——每条边上都带着质量状态的传递关系,这正是两者关联逻辑与联动价值意义的核心。

回到家族医生。他手里那张“族谱+健康档案”合订本,就是数据世界的血缘质量图谱。每一段家族关系都是一条血缘边,每一条体检记录都是一个质量分——合在一起,才能一眼看出病从何起、又将传到谁身上。

Qdown=Qup×(1−λ)hops\displaystyle Q_{down} = Q_{up} \times (1 - \lambda)^{hops}
这个公式是说:下游数据的质量,约等于上游质量经过每一跳血缘加工后“打了折扣”的结果。折扣大小由加工复杂度(衰减系数 \(\lambda\))和血缘跳数 \(hops\) 决定。
  1. 下游质量 \(Q_{down}\)数据流转到下游节点后的质量得分,是评估结果,也是监控对象。
    QdownQ_{down}
  2. 上游质量 \(Q_{up}\)血缘路径起点上的质量基线,通常是下游异常的源头。
    QupQ_{up}
  3. 衰减系数 \(\lambda\)每一跳加工带来的质量损耗比例,例如过滤掉 10% 的错误记录时 \(\lambda = 0.1\)。
    λ\lambda
  4. 血缘跳数 \(hops\)从上游到下游经过的边数,跳数越多,质量传递链越长、累积衰减越大。
    hopshops

质量评估体系

医生不会只凭一项指标就下诊断。血压高、血糖高、血脂高,每一项都有各自的判断标准,合起来才是完整的健康画像。同样,数据质量也不是一个黑箱分数,而是一张多维度的“体检单”。质量评估体系就是这套体检单的设计方案。

业界通常用四个经典维度来给数据打分。完整性评估关注该有的记录和字段是否缺失,比如一张订单表是否丢了某几行;准确性评估关注数据值与真实业务是否一致,比如用户年龄有没有被错填成负数;一致性评估关注同一实体在不同表中的定义是否统一,比如两张表里“北京”和“BJ”是不是同一个城市;时效性评估关注数据是否在要求的时间窗口内新鲜可用,比如日报是否每天早上七点前准时产出。

实践中,每个维度都可以用规则引擎自动化评估。完整性 = 非空记录数 / 总记录数;准确性 = 抽样比对业务后的正确比例;一致性 = 无冲突字段记录数占比;时效性 = 按时到达批次比例。最终把四个维度的得分加权求和,就得到一张表或一条链路的综合质量分。权重由业务场景决定:金融报表更看重准确性,实时推荐更看重时效性。

体检单上每项指标都不是孤立的——就像血糖偏高会提示糖尿病风险,完整性异常往往意味着上游采集环节出了问题。质量评估的价值不在于算出一个总分,而在于每个维度的异常都为后续血缘溯源留下了线索。

Qtotal=w1C+w2A+w3S+w4T\displaystyle Q_{total} = w_1 C + w_2 A + w_3 S + w_4 T
一句话理解:数据总分就是四张“体检单”按重要程度加权后的综合成绩。权重之和始终为 1,业务越看重哪个维度,就把越大的权重分给它。
  1. 权重 \(w_1 \sim w_4\)各维度权重之和为 1,体现业务对不同质量维度的侧重程度。
    w1+w2+w3+w4=1w_1 + w_2 + w_3 + w_4 = 1
  2. 完整性 \(C\)数据“有没有缺斤短两”,缺失越少得分越高。
    CC
  3. 准确性 \(A\)数据“说得对不对”,错得越少越好。
    AA
  4. 一致性 \(S\)数据“口径是否统一”,例如两张表对同一用户的地区编码是否一致。
    SS
  5. 时效性 \(T\)数据“来及不及时”,迟到批次越多得分越低。
    TT

血缘质量映射

家族遗传病是怎么往下传的?不是靠“整个家族成员随机得病”,而是通过一条条具体的基因链条。对应到数据世界,质量也不是凭空扩散,而是通过一张张表、一个个字段之间的“血缘映射”精准传递。血缘质量映射,本质上是搞清楚“上层数据以什么方式变成下层数据”。

映射有三个层级。字段级映射:源表的一个字段如何变成目标表的字段,例如 user_id 直接复制,或 age + 1 这样的表达式变换;表级血缘追踪:一张表经过哪些 ETL 任务进入下游表,画出表与表之间的完整链路;转换规则分析:过滤、聚合、联表中,哪些操作会放大或削弱质量缺陷。举例来说,上游表有一个脏字段(5% 的身份证号格式非法),下游通过 JOIN 把这些行关联到订单表时,非法的 join key 会让这部分记录直接丢失——这就是“映射 + 转换规则”放大了缺陷。

在工程实现中,我们要给每条血缘边标注一个“传递系数”:直接复制的传递系数接近 1;JOIN 可能只有 0.9;聚合可能把异常吞没,也可能把异常放大。沿一条血缘路径,质量分数就是逐边传递系数的连乘。质量传播模型告诉我们:哪怕每跳只衰减 5%,经过 10 跳后质量也会衰到原来的约 60%。

就像家族中“致病基因”并不总是显性表达,可能隔代才发病——血缘映射的传递系数也决定了质量缺陷是“完全显性”还是“隐性携带”。把每段继承方式的系数算清楚,才能精准预测后代的健康风险。

Qpath=∏i=1nqi\displaystyle Q_{path} = \prod_{i=1}^{n} q_i
沿一条血缘路径,质量得分是所有边上传递系数的连乘。这条公式把“逐级衰减”的想法压缩成了一个简洁的乘积。
  1. 路径质量 \(Q_{path}\)从源头到目标节点沿同一条血缘路径累计的质量结果。
    QpathQ_{path}
  2. 连乘符号 \(\prod_{i=1}^{n}\)路径上共有 \(n\) 条边,把每边的传递系数依次相乘。
    ∏i=1n\prod_{i=1}^{n}
  3. 单跳传递系数 \(q_i\)第 \(i\) 条血缘边保留质量的比例,由字段映射类型和转换逻辑共同决定。
    qiq_i

数据问题溯源

医生看着宝宝异常的化验单,不会只对宝宝用药——他会翻开族谱,从宝宝到妈妈再到外公一路倒推,找到第一个出现同一异常的先祖,再检查这个先祖是否把问题传给了其他子女。数据分析中的数据问题溯源正是这样一次反向的家族病史排查。

当质量监控发现某张下游报表的得分骤降时,我们要做的不是在下游原地打补丁,而是沿着血缘图逆流而上:哪些上游表最近变更过?哪个字段可能引入脏数据?血缘图把可疑范围从“全链路几十张表”缩小到“一条路径上的四五个节点”。异常定位追溯帮助我们锁定质量分发生拐点的具体位置,上游影响排查则把所有可能传染该异常的上游节点列成候选人清单。

工程上常用条件概率来量化每个候选节点的“嫌疑度”。每个上游节点自身出错的概率称为先验,它出错时导致当前异常的概率称为似然,两者相乘再对所有候选做归一化,就得到每个节点的后验嫌疑分。根因分析结合最近变更时间、告警频次等特征,就能给数据工程师开出一张“根因嫌疑排行榜”,从而高效制定修复方案。

医生问诊时也会说“外公有这个病,所以妈妈的携带概率是 50%,宝宝是 25%”——这正是贝叶斯逐层修正的朴素版本。血缘地图让我们知道往哪个方向问诊,质量历史记录让我们知道先验从哪儿来。

P(Ri∣E)=P(E∣Ri)P(Ri)∑j=1nP(E∣Rj)P(Rj)\displaystyle P(R_i \mid E) = \frac{P(E \mid R_i) P(R_i)}{\sum_{j=1}^{n} P(E \mid R_j) P(R_j)}
这是贝叶斯定理在溯源中的应用:先给每个上游预估一个“出事概率”,再观察到异常发生后,重新修正对每个节点的怀疑程度。
  1. 后验概率 \(P(R_i \mid E)\)看到异常 \(E\) 之后,节点 \(i\) 是根因的概率,也就是最终要的“嫌疑分”。
    P(Ri∣E)P(R_i \mid E)
  2. 似然 \(P(E \mid R_i)\)如果根因真的是 \(i\),下游出现异常 \(E\) 的可能性有多大。
    P(E∣Ri)P(E \mid R_i)
  3. 先验 \(P(R_i)\)还没有异常时,节点 \(i\) 本身出问题的日常概率。
    P(Ri)P(R_i)
  4. 归一化分母把所有候选根因的“未归一化嫌疑”求和,使概率总和为 1。
    ∑j=1nP(E∣Rj)P(Rj)\sum_{j=1}^{n} P(E \mid R_j) P(R_j)

影响分析联动

查清病根还不够。医生会主动提醒所有与外公同源的后代:“你们都有携带可能,建议提前做筛查。”这就是影响分析联动——从病根出发,正向预测谁会受影响。数据世界同样需要这种前瞻性。

当我们要改一张用户表的字段类型,或发现某个上游节点质量告警时,先用血缘图算出这条变更会涟漪到哪些下游报表、哪些数据服务,评估风险后再决定是否执行。下游影响评估输出一张完整的波及清单,变更影响预测则结合每个下游节点的血缘路径深度推算影响程度。血缘图本质上是一个有向无环图(DAG),从节点 \(v\) 出发做图遍历,所有可达节点就是影响范围。

实践中,每个下游节点还会被贴上“依赖紧密度”和“业务重要性”标签,于是有了风险评估分级:核心报表受影响算高风险,仅内部临时表受影响算低风险。配套的通知协同机制会把变更预告自动推送给相关团队,让所有利益方在变更发生前就达成共识。

家庭医生给同源后代群发体检提醒时,用的正是这张“家族影响图”。数据平台上的影响分析,就是把这套提醒逻辑自动化——上游一打喷嚏,下游所有“易感人群”提前知道要加衣服。

R(v)={u∈V∣v⇝u}\displaystyle R(v) = \{ u \in V \mid v \rightsquigarrow u \}
影响范围就是“从 \(v\) 出发沿箭头能走到的一切节点”。箭头越多、层级越深,波及面越广,变更前越要谨慎。
  1. 影响范围 \(R(v)\)从变更点 \(v\) 出发,血缘能覆盖到的下游节点集合。
    R(v)R(v)
  2. 全集 \(V\) 与条件集合\(V\) 是全图节点,花括号内描述的是“满足可达条件的那些 \(u\)”。
    {u∈V}\{ u \in V \}
  3. 可达关系 \(v \rightsquigarrow u\)表示从 \(v\) 沿着血缘有向边可以到达 \(u\),中间可经过任意中间节点。
    v⇝uv \rightsquigarrow u

质量闭环治理

最厉害的家族医生不会只做一次诊断就结束。他会建立全家族健康档案库,每季度复查、更新族谱、调整食谱,让健康管理形成闭环。数据治理也是一样:质量闭环治理把血缘、质量评估、告警、修复和复盘串成一条自动化流水线。

流水线的第一步是质量规则配置:为关键表配置 SLA,比如完整性不低于 99%、时效性不超过 1 小时。第二步是血缘驱动修复:当质量分跌破阈值时,利用血缘自动锁定上游源头并生成修复任务,而不是在下游手工打补丁。第三步是持续监控告警:血缘图随任务调度实时更新,质量分一波动就触发告警,并带着链路上下文通知责任人。第四步是治理效果反馈:治理后对比前后得分,量化每次修复的收益,反哺规则阈值的调优。

这个闭环的收益可以用“治理完成度”来量化。在血缘地图上标注每个节点的质量分数与目标分数,治理效果就是“已经追回了多大的目标差距”。当效果收敛,说明规则配置合理、修复手段有效;长期不收敛,则需要回头审视血缘映射是否丢失了关键路径。

健康管理闭环运行一年后,医生回头看:整个家族的异常指标率下降了 60%——这就是 \(E_{gov}\) 的现实意义。血缘让他知道该管谁,质量体系让他知道管得有没有效,两者联动,数据健康才能真正从“救火”走向“养生”。

Egov=Qafter−QbeforeQtarget−Qbefore\displaystyle E_{gov} = \frac{Q_{after} - Q_{before}}{Q_{target} - Q_{before}}
治理完成度 = 已经提升的质量 ÷ 需要提升的总量。等于 1 说明已达标,接近 0 说明治理仍在起步。
  1. 治理效果 \(E_{gov}\)衡量一轮治理下来质量提升的完成程度。
    EgovE_{gov}
  2. 实际提升 \(Q_{after} - Q_{before}\)治理前后的质量得分差,代表已经取得的进步。
    Qafter−QbeforeQ_{after} - Q_{before}
  3. 目标差距 \(Q_{target} - Q_{before}\)从治理前分数到目标分数之间的总跨度,作为分母。
    Qtarget−QbeforeQ_{target} - Q_{before}

AI 应用场景

数据仓库日常巡检

阶段:数据质量管理

解决的问题:传统巡检靠人工每天盯几十张表的告警,很难定位“哪张上游表拖累了整条链路”。利用血缘与质量联动,把每张表的血缘路径和质量得分叠加,系统能自动生成“污染源 Top 5”清单,把排查范围从几十张表缩小到几张表。

具体案例:某电商公司每天凌晨跑离线数仓任务,用户行为表偶发字段缺失,导致广告报表 GMV 偏低。上线血缘质量联动后,系统在 10 分钟内定位到缺失只来自“埋点日志→解析清洗”这条边上的一个转换规则,工程师修复后,下游报表自动恢复满分。

表结构变更风险预判

阶段:变更管理 / 影响分析

解决的问题:数仓里改一张表的字段名,很可能悄悄弄坏十几个下游报表。传统做法靠“老员工的记忆”或全量回归测试,成本高且容易遗漏。用血缘影响分析,改动前就能一键算出波及范围,按风险级别决定审批流程。

具体案例:某银行数据团队计划把客户表主键从 int 改为 string,血缘系统扫描出 23 张直接下游表和 57 张间接下游表,并对其中 3 张核心报表标注“高风险”。团队提前通知相关 BI 团队并安排灰度切换,上线后零故障。

数据合规审计中的敏感数据追踪

阶段:合规审计

解决的问题:数据合规要求敏感字段(手机号、身份证)必须脱敏后才能进入分析环境,但“是否所有敏感数据路径都覆盖脱敏”常常难以证明。血缘加质量联动可以绘制敏感字段的完整流动路径,并在每个节点检查脱敏规则的质量得分。

具体案例:一家医疗科技公司接受外部审计,审计方要求证明患者病历字段在 12 个加工节点上都经过脱敏。数据团队用血缘图自动生成敏感字段流向报告,配合每个节点的脱敏质量得分,三天内递交了合规证明,顺利通过审计。

Python 演示

python84 行
#!/usr/bin/env python3# -*- coding: utf-8 -*-"""血缘与数据质量联动分析演示"""  class LineageQualityAnalyzer:    """用血缘图分析质量传播, 溯源与影响范围"""     def __init__(self, edges):        self.edges = edges        self.quality = {}        self._init_graph()     def _init_graph(self):        self.nodes = set()        for src, dst in self.edges:            self.nodes.add(src)            self.nodes.add(dst)        self.upstream_map = {}        self.downstream_map = {}        for n in self.nodes:            self.upstream_map[n] = []            self.downstream_map[n] = []        for src, dst in self.edges:            self.upstream_map[dst].append(src)            self.downstream_map[src].append(dst)     def set_quality(self, node, score):        self.quality[node] = score     def propagate(self, decay=0.1):        result = dict(self.quality)        for n in self.nodes:            if n not in result:                result[n] = 0.0        for _ in range(len(self.nodes)):            for n in self.nodes:                if n in self.quality:                    continue                ups = self.upstream_map[n]                if ups:                    avg_up = sum(result[u] for u in ups) / len(ups)                    result[n] = avg_up * (1 - decay)        return result     def trace_root_cause(self, bad_node, lower_than=0.6):        cause_list = []        for n in self.nodes:            if self.quality.get(n, 1.0) < lower_than:                cause_list.append(n)        return cause_list     def downstream_impact(self, node):        visited = set()        stack = list(self.downstream_map[node])        while stack:            cur = stack.pop()            if cur in visited:                continue            visited.add(cur)            stack.extend(self.downstream_map[cur])        return sorted(visited)  def main():    edges = [        ("user_log", "etl_clean"),        ("etl_clean", "dw_user"),        ("dw_user", "report_user"),    ]    analyzer = LineageQualityAnalyzer(edges)    analyzer.set_quality("user_log", 0.42)    analyzer.set_quality("etl_clean", 0.85)    result = analyzer.propagate(decay=0.15)    for node in sorted(result):        print(node, round(result[node], 3))    bad = "report_user"    print("bad node:", bad)    print("root causes:", analyzer.trace_root_cause(bad))    print("impact of user_log:", analyzer.downstream_impact("user_log"))  if __name__ == "__main__":    main()
目的:构建一个微型血缘 DAG,模拟上游质量沿链路衰减传播,自动找出质量异常根因并输出下游影响范围。
  1. self.upstream_map[dst].append(src)为每个节点登记上游来源,形成反向血缘地图,这是溯源能力的基础。
  2. result[n] = avg_up * (1 - decay)质量传播核心代码,对应公式 \(Q_{down} = Q_{up} \times (1 - \lambda)^{hops}\) 的逐跳形态。
  3. for _ in range(len(self.nodes)):迭代节点数次,保证整个 DAG 上的质量分数收敛到稳定值。
  4. stack.extend(self.downstream_map[cur])把当前节点的下游再压入栈,逐层扩散影响范围。
  5. analyzer.set_quality("user_log", 0.42)模拟最上游日志表质量只有 0.42,作为这次质量事件的源头。
  6. print("root causes:", analyzer.trace_root_cause(bad))输出嫌疑根因列表,体现血缘与质量联动的定位能力。
  7. if __name__ == "__main__":Python 标准入口,保证脚本可直接运行演示。

常见误区

误区我觉得数据血缘已经把整条链路都画出来了,数据质量问题肯定都会自动解决,不用再做那么多质量规则和监控了。

正解血缘只是一张“地图”,它告诉你问题可能在哪里,但不会告诉你“当前这段数据是否健康”。质量问题要在血缘的基础上,用采样、规则引擎、异常检测来持续评估。就像医生手里的族谱再完整,也得让病人定期量血压。

为何常见:因为血缘图看起来很全面,容易让人觉得“看见即是掌控”,忽略了测量和监控需要另一套完整体系。

误区只要源头表的数据质量分很高,下游加工出来的表肯定也干净,不用每条链路都检查。

正解血缘路径上的每个转换都可能是“污染源”:一个错误的 join key 会让记录丢失,一个除零 bug 会让指标变成无穷大。质量不仅取决于上游输入,更取决于每一条血缘边上的加工逻辑,这就是传递系数 \(q_i\) 存在的原因。

为何常见:人们习惯把质量问题归因于“源头脏数据”,而忽略加工过程本身也是影响质量的重要环节。

误区画出表与表之间的箭头就够用了,字段那么细,维护成本高,收益感觉不明显。

正解表级血缘只能告诉你“哪张表影响了哪张表”,但无法定位“是哪个字段、哪种转换出了问题”。字段级映射才是质量传播的真正载体,能让问题定位精确到一列数据、一个表达式。就像族谱只写“某家到某家”,不写“哪个基因突变”,医生就无从下手。

为何常见:字段级血缘采集成本高、依赖解析 SQL 的能力强,团队在资源有限时优先砍掉细节,结果关键时刻查不到根因。

误区监控显示报表质量分掉到 60,我第一反应是去查上游 ODS 层,让上游同学背锅。

正解分数下降可能来自上游输入变脏、当前层代码发布变更、血缘映射本身发生了变化,甚至质量评分规则被误调。正确做法是先用血缘图查看“最近有变更的节点”,再结合质量历史曲线判断拐点出现的位置,避免错误甩锅。

为何常见:血缘地图让人形成“向上看”的惯性,忽略了改代码、改配置、改规则这类同样会破坏质量的近因。

误区我把所有血缘关系采集完,画进元数据中心,以后就一直能用了。

正解数据链路天天在变:新任务上线、老表下线、同一张表的加工逻辑重写。血缘必须与调度系统联动、随任务事件实时更新,否则图上的“健康档案”就是过期的体检单,按它去溯源只会误导排查方向。

为何常见:血缘采集常被当成一次性项目制工作,忽视了数据资产的动态性,也低估了元数据持续同步所需的运维成本。

面试题

Q1. 数据血缘记录的是数据之间的什么关系?

单选题 · easy

  • A.数据依赖与流转关系← 正确答案
  • B.数据权限与角色关系
  • C.数据价格与成本关系
  • D.数据喜好与兴趣关系

答案:A。数据血缘本质是数据在加工流转过程中形成的依赖关系图谱,记录“谁产生谁、谁依赖谁”。权限、成本、偏好都不是血缘要回答的问题,因此选 A。

Q2. 数据质量“完整性”描述的是?

单选题 · easy

  • A.数据记录是否缺失← 正确答案
  • B.数据字段是否加密
  • C.数据存储是否扩容
  • D.数据报表是否美观

答案:A。完整性指数据“有没有缺斤短两”,关注记录和字段是否缺失。加密属于安全,扩容属于存储,美观属于展示,都与完整性无关。

Q3. 上游数据质量变差,下游数据通常会怎样?

单选题 · easy

  • A.质量自动修复恢复正常
  • B.质量随之受到影响下降← 正确答案
  • C.质量完全不受任何影响
  • D.存储空间自动清理扩大

答案:B。血缘传播模型告诉我们,质量会沿链路由上游传导到下游,通常逐级衰减而非自动恢复。选 B 反映了对血缘传播的直觉理解。

Q4. 血缘与数据质量联动的核心价值是?

单选题 · mid

  • A.提升数据加密的安全等级
  • B.自动扩容存储空间的资源
  • C.快速溯源数据质量的根因← 正确答案
  • D.降低数据采集的整体频率

答案:C。联动价值在于把“地图”和“体检报告”结合,从而快速定位质量问题的源头。加密、扩容、降频都不是血缘与质量联动的核心价值。

Q5. 数据质量评估的常见维度有哪些?

多选题 · mid

  • A.完整性评估数据是否缺失← 正确答案
  • B.准确性评估记录是否错误← 正确答案
  • C.一致性评估口径是否冲突← 正确答案
  • D.美观性评估界面是否漂亮

答案:ABC。经典四维度是完整性、准确性、一致性、时效性。美观性属于前端体验范畴,不用于衡量数据质量。

Q6. 血缘驱动的质量闭环治理包含哪些环节?

多选题 · hard

  • A.配置质量规则与目标基线← 正确答案
  • B.利用血缘定位问题来源← 正确答案
  • C.持续监控并触发及时告警← 正确答案
  • D.忽略下游反馈只管上线

答案:ABC。闭环治理要求“规则—发现—修复—反馈”全链路协作,忽略下游反馈会打破闭环,让治理失去迭代依据。

Q7. “影响分析联动”主要解决的问题是?

单选题 · mid

  • A.数据备份的效率过低
  • B.变更波及的范围未知← 正确答案
  • C.数据压缩率不够稳定
  • D.服务器负载不均衡

答案:B。影响分析利用血缘正序遍历,回答“这个变更会波及哪些下游”。备份、压缩、负载都不是血缘影响分析的关注点。

Q8. 血缘链 A→B→C,A 质量 0.8,衰减系数 0.2,C 质量约是多少?

单选题 · extreme

  • A.约 0.640 只经过一次衰减
  • B.约 0.800 质量不随链变化
  • C.约 0.512 经过两次逐级衰减← 正确答案
  • D.约 0.200 直接等于衰减结果

答案:C。B 的质量为 0.8 × (1-0.2) = 0.64,C 的质量为 0.64 × (1-0.2) = 0.512。每次跳转都乘一次衰减因子,共衰减两次。

Q9. 数据问题溯源时,血缘链路能够帮助我们?

多选题 · mid

  • A.回溯异常数据的最初源头← 正确答案
  • B.计算上游节点的平均质量← 正确答案
  • C.锁定最可能的根因节点← 正确答案
  • D.自动删除所有异常的数据

答案:ABC。血缘为溯源提供路径和计算依据,可回溯源头、计算上游质量、结合贝叶斯锁定根因。但异常数据是否需要删除应由业务规则决定,血缘不会“自动删除”。

Q10. 血缘质量映射中“字段级映射”指的是?

单选题 · hard

  • A.字段之间的转换映射关系← 正确答案
  • B.磁盘之间的存储对应关系
  • C.用户之间的权限授权关系
  • D.线程之间的调度依赖关系

答案:A。字段级映射描述源表中一个字段如何经过表达式、JOIN 等逻辑变成目标表的字段,是质量传播的载体。其余选项与血缘映射无关。