一种基于Hive的数据质量检核方法

背景技术

我国银行业的信息化建设历经二十年的发展,目前已建立较为完备的信息系统,通过广泛的业务类型和多样的金融产品积累了大量的数据。2018年,银保监会发布“银保监发〔2018〕22号《银行业金融机构数据治理指引》”,为指导银行业金融机构加强数据治理,提高数据质量,发挥数据价值,提升经营管理能力。从数据生命周期的角度看,以下环节最容易产生数据质量问题:
在系统建设阶段,如:信息要素登记缺失、定义模糊、内容重复,数据字典不完善以及与系统实际不符,系统内部遵循的标准不一致等等。
在生产运行阶段,这是数据真正产生的阶段,是数据质量最容易出问题的环节,如:柜员录入不规范导致的数据质量问题,不该为空的数据出现空值,录入信息与实际不符,录入的信息重复、不一致、不完整等问题。
在数据应用阶段,这不仅是检验业务系统数据质量的阶段,也是数据问题产生的阶段,如:指标名称、业务口径、技术口径不标准、不一致而导致的各部门统计的数据不一致的问题,指标数据质量检核缺乏规则及工具支撑、报表数据问题定位难度大,解决效率低等问题。
为了解决数据质量问题,大型银行会成立专职的数据管理团队,采购专门的商业数据管控工具,对全行的数据进行治理,这往往需要至少几十上百人,几百上千万资金的投入。而广大的中小银行因为人力物力的缺乏,更倾向于向自有系统供应商的寻求支持,针对特定监管领域提供功能有限的质量管理工具。但是这些工具往往可配置性不够,无法根据需求的变化自定义质量检核规则,无法对银行各业务系统的数据进行全面的检核。

具体实施方式

图1示出了根据本发明实施例的数据质量检核方法的流程示意图。如图1所示,该方法包括如下步骤:
S100:根据质量检核需求,对多业务系统数据进行关联建模,生成关联建模结果。
具体的,质量检核需求包括监管报送要求,反洗钱要求,经营分析与报表要求等,不同的要求所需要的字段不同,数据标准也不同。比如,反洗钱要求对个人客户的九要素进行质量检核,个人九要素包括:姓名、证件号码、证件有效期、国籍、性别、职业、移动电话、通讯地址、工作单位名称。反洗钱要求检核这些字段是否为空,证件有效期是否满足日期格式及范围标准,国籍、性别、职业字段是否符合标准码值等。
检核需求可以由风控部门提出,如涉及监管,反洗钱等;也可以由业务部门提出,如涉及数据经营分析与报表等。也可以由科技部门牵头,对行内重要基础数据进行统一检核,摸底全行数据质量状况。
本发明实施例中,业务系统包括核心系统,用户中心系统,对公贷款系统,个人贷款系统,供应链系统等各种外围业务系统。每个业务系统都包含了至少几十张表,考虑到我们是有针对性的进行检核,所以要根据实际情况,抽取需要的表和字段进行关联建模。
如图2所示,对多业务系统数据进行关联建模,具体包括如下步骤:
S101:将多业务系统数据抽取到大数据平台中的贴源层中,生成贴源层数据表。
S102:通过编写Hive QL对贴源层数据表进行关联,生成数据集。
S103:将数据集存储在大数据平台的模型层中,获取关联建模结果。
比如,我们根据反洗钱要求对在我行开立一二类账户的个人客户九要素进行关联建模,这些字段分布在核心系统,柜面系统,客户管理系统等不同系统中,数据表有账户信息表,客户基本信息表,客户扩展信息表,证件信息表,联系方式信息表等。我们先将各业务系统的数据全部抽取到大数据平台中的贴源层中,生成贴源层数据表,然后通过编写Hive QL(结构化查询语言)对贴源层数据表进行关联,生成数据集,最后将数据集存储在大数据平台的模型层中,获取关联建模结果。
S200:根据关联建模结果,配置数据质量检核规则,获取数据配置结果。
应理解,这里的关联建模结果,是一张从多个业务系统中经过ETL(Extract抽取、Transform转换、Load加载)的临时宽表结构,存储在大数据平台中。这张表结构包含了我们本次需要检核的字段和业务数据。我们根据这张临时宽表,对其中每个字段进行规则配置,获取数据配置结果。数据质量检核规则包含五大类十一细类,具体为:内部数据冲突类(唯一性校验)、数据缺失类(非空校验,完备性校验)、违背编码规范类(日期范围校验,时间日期格式校验,特殊字符校验)、违背技术规范类(范围码值校验,数值校验,长度校验)、业务逻辑类(数值比较校验,总分校验)。
规则配置元数据包含规则大类,规则细类,检核源表,源字段,字段中文名,检核逻辑等,如下图:

一种基于Hive的数据质量检核方法

S300:将数据配置结果导入规则解析器,生成检核脚本;
具体的,规则解析器是一个Linux系统可执行程序,可以用Shell,Java,C或者Python等不同的编程语言实现。将数据配置结果文件作为规则解析器的输入参数,解析器逐条读取数据配置结果,根据不同的规则类型和待检核字段以及检核逻辑进行匹配解析,最后生成一系列SQL脚本语句,即检核脚本,可以在大数据平台Hive和Spark上直接执行。
S400:将检核脚本导入脚本执行器,生成检核明细表;
脚本执行器内部包含可配置进程池,执行者可以根据资源情况配置最大可用进程池。检核脚本文件作为脚本执行器的输入参数,由脚本执行器逐行读取,分配后台进程后并发执行,生成检核明细表。
S500:对检核明细表进行汇总统计,生成检核结果报告。
检核结果明细表包含检核过程中所有的异常数据,对这些数据进行统计汇总,获取汇总结果,可将汇总结果进行邮件发送,报表数据展示,质量趋势可视化分析等。
如图3所示,本发明还公开了一种数据质量检核装置,包括:
关联建模模块100,用于根据质量检核需求,对多业务系统数据进行关联建模,生成关联建模结果。
如图4所示,其中,关联建模模块100包括:数据抽取模块101,用于将多业务系统数据抽取到大数据平台中的贴源层中,生成贴源层数据表。数据关联模块102,用于通过编写Hive QL对所述贴源层数据表进行关联,生成数据集。数据存储模块103,用于将所述数据集存储在大数据平台的模型层中,获取关联建模结果。
规则配置模块200,用于根据所述关联建模结果,配置数据质量检核规则,获取数据配置结果;
解析器模块300,用于将所述数据配置结果导入规则解析器,生成检核脚本;
脚本执行器模块400,用于将所述检核脚本导入脚本执行器,生成检核明细表;脚本执行器模块还包括进程池配置模块,用以使执行者可以根据资源情况为脚本执行器的进程池配置最大可用进程池。
结果展示模块500,用于对所述检核明细表进行汇总统计,生成检核结果报告。

一种基于Hive的数据质量检核方法


图1


一种基于Hive的数据质量检核方法


图2


一种基于Hive的数据质量检核方法


图3


一种基于Hive的数据质量检核方法


图4

上一篇:基于PostGIS的高级应用(4)-- 空间查询


下一篇:在SmartBI中使用ClickHouse数据源进行透视分析