昨天分享一篇数仓面试的知识点《掌握这些数仓知识,再也不怕面试官!》,但是面试还缺少了一部分数据管控的知识,今天补上~
01 数据管控背景
数据管控是在做大数据平台包括传统BI都需要做的工作,数据从各个数据源过来,我们都要进行数据质量的管理,也就是我们常说的数据治理。那么在数据仓库建设的时候如何进行数据管控呢?
我经历过的项目主要采用以下管控手段:数据质量、数据生命周期、数据标准、元数据四方面的管控。
02 管控手段
一、数据质量
不管是做数据仓库建设还是做数据分析,一致和准确的数据是数据模型与决策分析的基础。在实际生产环境中,我们从不同的系统抽取数据到大数据平台,那么我们就要提供一套数据监控机制,对数据质量进行监控。良好的、高质量的数据可以有效降低系统建设成本。
至于数据质量如何进行监控,可以参考之前的一篇文章《谈谈ETL中的数据质量》
二、数据标准
保证标准命名、编码、业务解释等内容的唯一性。只有建立相应的标准,同时加强业务的标准化工作,规范重点业务内容,强化业务管理。并在实时过程中加强现有数据的交互性,支撑统一的业务管理,只用建立的数据标准,才能推动主数据系统的建设,完成重点数据的统一管理,为后期数据模型完全共享打下坚实的基础。同时在数据质量监控的同时,我们会不断完善数据标准,以适应企业内部多变的系统环境,从而形成良性循环。
关于数据仓库标准,我这有一份完整的标准规范模板《数据仓库建设规范(文档版)》。
关于管控流程,概括两个字: 查&管 。
查 ,分为测试验证和上线审核。
测试验证:
a). 总量核对,核对上下两步的数据总条数,没有过滤条件的话应该是一致的
b). 多维度统计,复杂的多维度指标拆分成单维度SQL统计,对每个指标分别进行核查。
c). 多表关联统计,拆分成中间表进行核对每一步骤的指标。
d). 明细到指标统计,比如随机找一台车的明细和最后统计的指标进行核对。
e). 新老统计对比,比如有些指标是迁移或者之前业务手工制作,可以开发后的新指标同老指标进行对比。
上线审核:
a). 对查询表的where后面的条件、join关联字段、group by分组字段等重点检查逻辑,和需求理解结合审核。
b). 根据上面的数仓规范检查数据集命名、数据集字段命名、任务名称进行审核,是否按照数据仓库建设规范中的业务域、维度、原子指标、修饰类型、修饰词、时间周期、派生指标等标准进行命名。
c). 代码注释审核,每一步处理需要有注释该步骤的作用,每个指标也要有注释,where条件等也要添加注释。
d). 重要任务是否开启短信告警,任务启动时间等审核。
e). 任务上线的位置是否符合上线标准,比如上线的数据层级与业务层级等。
管 ,开发过程中,大家需要遵循一些流程规则,以确保指标的定义,开发的准确性。**
a). 需求上线时候需要在知识库中完成所开发需求逻辑说明
b). 复杂需求(比如项目指标),需要团队至少两人以上评审需求后开发。
c). 提交上线申请的同事需要备注上需求逻辑说明。
审核上线人员为“轮值”,审核上线人员需要review开发人员的代码,需要和开发人员共同承担代码质量
三、数据生命周期
随着企业业务的增长,越来越多的数据汇入大数据平台,同时在建设数据仓库的时候,我们还进行了数据分层管理,数据会存在多份共存情况,那么此时我们就要做数据生命周期管理, 对不必须保存的数据,进行冷数据管理 。控制数据的生命周期,一方面可以减低成本、简化管理,同时也为我们集群腾出了资源,提高了系统性能,尽可能满足现有业务的高效运行。另外,在做数据生命周期管理的同事要注意一些风险,比如法规,对于很多互联网、银行、电信、车联网等企业,相关部门会提出原始数据必须保持多长时间的要求。在制定数据生命周期管理时,一定要注意!
可以参考前天分析的网易的技术经验《 数仓治理之数据任务重构实践 》
四、元数据
之前写过一篇文章介绍过数据仓库的元数据《面试,数据仓库的元数据包含哪些?》。元数据就是对一些业务术语、标准等的统一定义、管理。对各种数据流接口的统一管理。同时在构建数据模型的时候,通过元数据我们可以进行血缘分析等。
03 总结
通过上面我们介绍的管控手段的几个要点,那么在实施过程中是否能够成功呢?大概率不会,因为团队总会有那么几个人嫌规范太繁琐,不按套路出牌,所以建立一些标准的基础上,在实施过程中我们还有建立一些规章制度,来帮助我们的规划落地,比如和员工绩效挂钩、或者制定一些流程管控、增加上线审核机制等,只有规范和流程相结合了,才能更好的进行实施管控数据,也只有管控好数据,才能更好的保证数据分析的成功。