〇、前言
做过数据治理吗?
你怎么评估你的数据仓库的好坏程度?又怎么来改善它?
你怎么保障你的数据质量?
数据安全有了解怎么做吗?
当面试官问到这类问题,就是想了解候选人对于数据治理的理解程度。让我们来看看高频出现的数据治理相关问题吧。
一、数据治理概论
当数据开发谈论数据治理时,我们在谈论什么?
数据治理的目标是:通过建立标准、组织、流程、工具、运营等一系列的措施,来保障企业数据可靠(质量、安全)易用(效率、成本、体验)。
二、数据治理面试问题
1.数据质量怎么保障?
质量保障需要通过事前约定、事中测试监控、事后复盘三个环节共同保障。
1)事前即在模型构建或者需求引入阶段,就定义好一些数据准确性、一致性、完整性、以及业务约束的实施细则;
2)接着是事中,在数据开发阶段进行充分的测试,任务上线之后加上DQC监控(DataQualityCheck),在数据质量发生时及时阻断介入。
3)事后部分,定期复盘处理的问题,确认分别是什么原因导致的质量问题,是上游变更导致异常,还是边界问题未测试充分,还是开发逻辑错误,或者是平台错误,或者是需求沟通歧义都有可能。
发掘到问题根因才能对症下药,并通过重新建立规范或者长效保障方案,不断地提升数据质量的效果。
真题回顾
2. 怎么去保障数据生产时效?
1)第一步是任务上线前确保时效OK。上游就绪时间+任务运行时长+冗余时长是否能满足最低时效,这一步应该融入到上线规范中。确保不会在需求迭代时就引入时效风险。
2)第二步是加上SLA监控,当任务有破线风险时能及时被负责的研发同学感知到。
3)第三步是进行针对性的优化。例如随着业务扩张,数据量增大或者数据分布变化也可能导致任务运行时间过长,此时需要排查是否存在数据倾斜、小文件过多等问题,并进行性能调优。
另外从长期保障来看,时效问题最终都可以归结为数据建模与架构的问题,只有当中间层复用性足够高,数据从采集到应用的链路足够精简时,任务运行总耗时才会短,时效才会有保障。即使问题出现,定位和排除问题也能迅速。
真题回顾:
3.具体做了哪些质量的保障?
从完整性、准确性、一致性三个方面进行上线前检查和DQC监控配置。
完整性:表分区存在非空;字段填充率符合预期;表字段完整;
准确性:主键唯一;维度枚举在范围内;指标固定值在阈值范围内;维度分布日环比波动正常;指标总和日环比在波动范围内;以及其他业务要求的监控规则。
一致性:相同指标,相同画像标签在相同维度限定下值应该完全一致。
真题回顾:
4.说说对数据治理的理解?
一个好的数据仓库,能够从质量、效率、成本、安全、体验5个方面都有很好的结果。可以参考数据建模篇问题3来体系化评估。在量化完数仓的建设水位之后,我们仍然能从这几个方面作为输出目标去改进它,下面是一些常见的实践。
1.数据质量
数据开发之前,需要定义清楚质量标准、理清业务诉求。
数据上线中,需要对数据内容进行测试并配置监控,研发负责人跟进运维。
数据上线后,如果有问题需要进行复盘,应排查到根因(例如上游系统迭代引入错误、还是边界错误、或者平台生产问题等)同时进行流程改进。
2.数据成本
分步骤分层来看。
建表时按规范设定底层HDFS文件格式(通常是ORC),从而在数据存储和数据计算成本中取的均衡。
对于ods数据,如果是全量数据需要设定最长存储周期(如365天等)
对于dw*层数据,容易出现大存储和大计算的任务,需要检查是否存在性能优化空间。(避免出现数据倾斜、或者子查询笛卡尔积等情况)
对于ads层,一般考虑下线热度较低的数据。
同时周期性的排查是否存在无效冗余数据,例如已有更新模型可替代,则下线冗余模型;热度较低的模型需排查是否可以下线。
3.数据效率
主要是从表查询效率和需求交付时效两个方面来改进。
a.表查询时长高于平均时长则说明数据组织形式有问题,例如存储时文件不均衡导致map端倾斜;分区键设置不合理导致文件io过多;以及模型的业务表征能力不足,需要使用方额外增加计算步骤;另外如果多表关联率过高也说明模型建设程度不足,需要额外加强模型建设。
b.人均需求交付时长高于平均水平,则可以分拆到主题域或者开发人名下,可能是主题域模型效率较差、或是开发人需要更多培训。
4.数据安全
数据安全的改进措施主要是建立分级分类的标准,同时按分级标准进行权限的管控。最后用户隐私和商业财务数据应该进行脱敏加密,从系统存储的层面保障安全。
5.数据体验
一是丰富数据资产知识库的完备性,所有对外发布的数据都应该配备字段解释,数据样例和统计分布,最好有使用案例,以及常用的SQL分析脚本。
二是建立数据运营机制,业务有数据问题时通过答疑群迅速响应(控制在一小时内,至少不超过一天),并收集整理FAQ,保持更新,使得用户在数据使用过程中足够顺畅。
三是命名规范需要严格执行。表命名、字段命名应该见名知义,减少理解成本。
四是针对用户使用应用时的查询时长、SQL复杂度、使用人员占比等指标进行定期跟踪回访确认数据使用的痛点,通过周期性的建模优化持续改善。
真题回顾:
4.1 怎么能保障数据治理的效果能落地吗?有什么好的方法吗?
数据治理通常都是以被动治理、问题驱动的专项治理方式进行改进。但长期来看还是要建立评估体系,持续运营。首先建立必要的标准(指标命名规范、数据建模规范、成本治理规范),由组织委员会牵头,使用工具系统和流程机制作为硬性抓手,长期监控并改进。
这里可以配合项目进一步解释。
真题回顾:
5.存储怎么治理优化?
首先从建模规范开始,要设定HDFS的存储格式,确保文件系统的存储最优;设定最长数据存储周期,到期冷备或者删除,保障存储成本底线。
其次是可以进行周期性的冗余成本治理。
1)把整个数仓存储量最大的top10整理出来,让对应的负责人确认是否可以治理;
2)按主题域把存储量最大的top10整理出来,让对应负责人确认是否可以治理。
3)把最近一个周期查询热度为0或热度排名后5%的表整理出来让对应负责人确认是否可以删除。
最后从评估视角来说,如果成本增长速度低于业务核心指标增速,那么成本增长是合理的,否则说明需要更多优化动作(例通过优化建模提高模型复用性,减少冗余数据)
真题回顾:
三、后记
本篇介绍的更多是偏理论的内容,但在面试过程中需要结合项目来综合体现,让面试官看到候选人对于数据治理的体系化思考和问题解决能力。下一篇我们会从项目介绍的视角讨论面试中如何体现实战能力。