数据质量是数据治理的核心,也是面试必问的内容。
我整理了20多家大厂面试中出现的数据质量高频问题,按模块分类,附参考答案。
建议收藏,面试前看一遍。
一、数据质量六维度(必问)
- 数据质量有哪些评估维度?
六大维度:
维度
定义
举例
完整性
数据完整程度
字段非空率、记录完整率
准确性
数据真实准确程度
值域校验、格式校验
一致性
跨系统数据统一程度
编码统一、跨表一致性
唯一性
数据无重复程度
主键唯一性
及时性
数据及时更新程度
T+1按时产出
有效性
数据符合业务规则程度
外键关联、状态有效
面试追问:你们怎么计算综合质量分?
参考答案:六个维度加权求和,权重根据业务重要性配置。比如财务数据准确性权重高,业务数据完整性权重高。
- 你们怎么评估数据质量的好坏?
回答框架:
- 定义标准:每个质量维度有明确的合格线(如>=90分)
- 自动检测:配置质检规则,自动跑数据质量检查
- 生成报告:六维度评分 + 问题明细
- 问题闭环:通过工单系统推动整改
加分点:能说出具体工具或自研平台的实现逻辑。
二、质检函数与质检规则(核心)
- 质检函数是什么?怎么设计?
质检函数是数据质量检查的最小单元,分为预置函数和自定义函数。
常见预置函数:
函数
检查内容
SQL逻辑
IS_NULL
字段是否为空
COUNT() WHERE col IS NULL
IS_UNIQUE
字段值是否唯一
HAVING COUNT() > 1
IN_RANGE
值是否在范围
WHERE col NOT BETWEEN min AND max
MATCH_REGEX
格式校验
WHERE col NOT REGEXP 'pattern'
IN_CODE_TABLE
枚举值校验
WHERE col NOT IN (SELECT code FROM码表)
自定义函数示例(订单金额合理性):
-- 规则:单笔订单不能超过客户信用额度的200%
SELECT order_id, customer_id, order_amount
FROM orders o
JOIN customer c ON o.customer_id = c.customer_id
WHERE o.order_amount > c.credit_limit *2
- 质检规则和质检函数的区别?
核心区别:
质检函数
:定义「怎么检查」,是原子能力
质检规则
:定义「检查什么对象,用什么阈值」,是场景化配置
规则 = 函数 + 对象 + 阈值
举例:
函数:IS_NULL(非空检查)
对象:orders.order_id(订单表主键)
阈值:0(不允许为空)
规则:订单主键不允许为空
- 怎么设计一个数据质量检查流程?
四步流程:
- 定义质检函数(非空、唯一、范围...)
- 配置质检规则(函数+对象+阈值)
- 组合形成质检模型
- 调度执行 → 生成质量报告 → 触发问题工单
面试加分:能画出完整的质检流程图,说明每个环节的职责。
三、质检模型与质量报告(高频追问)
- 质检模型是什么?怎么组合规则?
质检模型是质检规则的组合,用于批量检查某一类数据。
举例:
模型:交易数据质量模型
规则:
订单金额不为空
订单金额大于0
订单金额不超过信用额度200%
下单时间格式正确
订单状态在有效枚举范围内
模型可以设置权重,比如金额准确性权重60%,时间及时性权重40%。
- 质量报告包含哪些内容?
标准质量报告结构:
- 六维度评分(完整性、准确性、一致性、唯一性、及时性、有效性)
- 综合质量分
- 达标情况统计(合格/警告/不合格)
- 问题明细列表
- 问题趋势分析(环比/同比)
- Top问题表/字段清单
面试追问:质量分怎么计算的?
参考答案:加权求和模型。每个维度权重根据业务重要性配置,比如财务数据「准确性」权重最高,业务数据「及时性」权重最高。
- 数据质量问题怎么处理?
闭环流程:
发现问题 → 创建工单 → 派发给责任人 → 处理中 → 待验证 → 已关闭
关键点:
问题记录要完整:问题描述、影响范围、产生原因、处理记录
超时未处理要升级
处理结果要验证
四、实际场景问题(最难)
- 实时数据和批量数据怎么分别做质量检查?
实时数据(T+0):
采用流式处理:Kafka + Flink
消息队列层做校验,不合格直接拦截或打标签
延迟敏感,质检逻辑要轻量
批量数据(T+1):
凌晨调度执行
完整SQL检查,覆盖率高
检查结果写质量报告,推送告警
核心区别:实时重在拦截,批量重在发现。
- 跨系统数据不一致怎么排查?
排查思路:
- 确定问题范围:哪些表/字段不一致
- 追溯数据链路:从源头到终点的每个节点
- 对比数据内容:逐条对比,找差异点
- 定位原因:同步延迟?转换逻辑错误?业务数据错误?
常用方法:
数据血缘追溯:从ODS到ADS全链路看
数据比对:两边数据做minus/intersect
日志排查:看ETL任务的执行日志
- 数据质量差会有什么后果?
从业务到技术的全面影响:
影响层面
具体表现
业务决策
报表数据失真,管理层判断失误
运营效率
客服成本增加,用户体验下降
合规风险
监管数据不合格,被监管处罚
技术成本
数据修复返工,浪费大量人力
经典案例:某电商因为商品库存数据不准,超卖10万单,赔偿损失上百万。
- 怎么推动业务方重视数据质量?
这是个常见但很难答好的问题。
核心思路:让业务方看到数据质量的价值
量化价值
:数据质量提升X%,业务转化提升Y%
关联考核
:把数据质量纳入业务KPI
服务化
:提供质检工具,让业务方自助检查
自动化
:嵌入学控平台,出问题自动告警
反问面试官:我们公司目前数据质量治理的痛点是什么?我可以针对性地聊聊。
- 怎么判断数据质量问题是系统问题还是业务问题?
判断方法:
特征
系统问题
业务问题
数据规律
批量失败,符合某种模式
零星发生,无明显规律
发生时间
某个时间点突然出现
持续存在或逐渐累积
影响范围
影响整批数据
影响个别记录
复现方式
固定条件下可复现
难以复现
实操:拉取问题数据的明细,看时间分布、业务类型分布、字段值分布。
五、实战经验问题(加分项)
- 你从0到1搭建过数据质量体系吗?
STAR法则回答:
S(背景):业务数据质量差,报表数据不准,影响决策
T(任务):需要搭建数据质量管理体系
A(行动):设计质检模型,配置质检规则,落地工单闭环
R(结果):数据质量分从60分提升到90分,报表投诉减少80%
面试官想听的重点:
你为什么这么设计?不是工具罗列
你踩过什么坑?怎么解决的?
业务方配合吗?怎么推动的?
- 数据质量和数据治理是什么关系?
标准回答:
数据治理 > 数据质量管理
数据治理包含:
- 数据标准管理
- 元数据管理
- 数据质量管理 ← 你在这
- 数据安全管理
- 数据生命周期管理
补充:数据质量是数据治理的核心目标之一,也是最能直接体现治理效果的模块。
总结
数据质量面试核心考察三点:
概念理解:六维度、质检函数、质检规则、质检模型
实操经验:规则怎么配置、质量报告怎么看、问题怎么闭环
体系思维:数据质量在数据治理中的位置,怎么推动落地