一、规划
- 长期:基于Spark RDD,统一封装框架,支持多种监控项的配置,减轻数据核对的成本;
- 短期:需要梳理核心监控指标,以HQL为主,保证当前的数据质量;
- 范围:只包括基础事实表、维度表的数据质量验证;
二、校验类型
- 数据量是否一致(统计):比如:传统数仓比大数据多了多少条?差异是什么?
- 度量值汇总是否一致(统计):比如:交易金额(借贷记两个方向)的合计是否一致?差异是什么?
- 关联结果检验(统计):事实表与相关维度表join后的统计值是否一致,比如:fact表与dim_filesource关联后,groupby境内外标识,做聚合操作;
- 数据明细是否一致(明细):同一维度表,传统数仓与大数据数仓随机抽样50~100条,字段信息描述是否一致,如果不一致,需描述根因;
- 跨层清洗一致性(流程):同一事实表,ODS、DWD、DWS数据条数是否一致(文件级别)?三层字段映射是存在问题?
- 数据标准检测(标准):如:差错类型码、交易处理码、mcc等标准码值,需分析出是否与标准定义有差异?并定位差异根因,涉及维度表与事实表;
- 关键业务指标(流程 & 统计):联合BSA(KIKI年前已提供),完善基础核心指标的分层实现,并校验结果是否一致;
- 数据匹配是否一致(明细):如:交易类型,抽样约100条数据,跨库访问验证是否存在差异,需提供测试案例进行自动化对比(例如:Junit工具);
- 终态 vs 拉链(流程):是否存在终态值在scd中不存在的情况?拉链表是否存在断链的情况?
- 脏数据检验(基础):是否存在空字符串?电话号码非法?时间字段非法?
- 数据重复性检验(基础):同一文件是否存在数据重复?原因是什么?同一维度表是否存在业务主键重复的情况;
- ???其它
三、工具要求
- 统计分析类要求:需完成相关任务的开发,定时运行产出统计分析结果;
- 流程监控类要求:需完成相关任务的开发,定时运行产出统计分析结果;
- 明细核对类要求:需联合sqoop,同步抽样的数据到hive,并自动核对结果;
- 标准类核对要求:需从spec中,采集相关标准定义的码值,并实现从事实表、维度表中,自动采集数据模型中的实际码值,做交叉核对;
- 基础架构要求:长期来看,尽量采用开源已有框架,做二次封装,基于Spark Job来做,短期人工为主,需要梳理核心校验项;
- 自动化要求:需完全自动化;定时发送质量报告;