基于数据质量监控解决方案 - QualityStage vs Information Analyzer http://www.ibm.com/developerworks/cn/data/library/techarticle/dm-1111zhengdd/
案例分析
随着人民生活水平的逐步提高,住房、汽车等消费贷款业务在银行的比重逐渐扩大,各项消费贷款余额有了较快增长,但也出现了诸多问题,如何加强监管,减少银行信贷资金的安全隐患,制约坏账产生,是各商业银行系统急待解决的问题。A 商业银行,针对目前商业贷款审核中的各种问题,计划建立信贷数据质量监控系统,试图建立一个信贷个人数据的“诊断中心”,每个进入“诊断中心”的信贷个人数据都将接受各种数据规则和业务规则有效的检测,大大降低信贷个人数据的出错率,完善个人数据,提高信贷客户的合格率。本文完成了基于 QualityStage 和 Information Analyzer 的数据质量监控系统在信贷审核案例中的应用。
个人客户在填写申请单后,个人信贷材料被录入前台数据库,进入数据质量监控系统后,首先进行数据质量规则审核,甄别错误数据,例如年龄值是字母,收入不是数字,出生日期是不存在的日期等等。通过数据质量规则审核的数据进入下一阶段业务规则的判断,例如未成年的申请人,年收入太低的申请人,不符合国家新政的申请人,以及第三方中央银行的信用记录审核等等。第一阶段质量审核失败的客户资料,将进入人工数据复核环节,第二阶段业务审核失败的客户资料,将进入人工资质复核环节,最终通过所有环节审核的客户资料,进入后台系统的同时,更新原有客户资料,客户成功获得贷款,否则,客户资料不能进入后台系统,客户也未能获得贷款。本文描述了在各个不同的审核环节,根据具体规则与 QualityStage/Information Analyzer 的各自特性,合理应用不同的数据质量产品,制定符合数据质量监控系统需求的数据规则或者业务逻辑规则。
图 1 贷款业务数据监控流程图
QualityStage vs Information Analyzer
QualityStage 和 Information Analyzer 是 IBM 企业信息集成统一平台 - Information Server 的两个重要的组件。Information Analyzer 用于了解数据,而 QualityStage 致力于数据的标准化和清理。
具体来说,Information Analyzer 可以帮助用户对信息内容和结构进行自动发现和定义, 消除使用错误数据的风险。Information Analyzer 主要分为列分析 (Column Analysis),键分析 (Key Analysis) ,跨域分析 (Cross-domain Analysis) ,基线分析 (Baseline Analysis) ,数据规则分析 (Data Rule)。本文中对简单数据的规则审核,比如身份证号码是否包含非数字,以及对业务数据的资质审核,比如贷款人年收入是否达到一定的标准等,列分析能很好的满足这个功能。尽管 QualityStage Investigate 也能提供相似的列分析功能,得到所在列的值和值的类型的频率分析,但是没有完善的分析报告,且只停留于内容分析,缺少整体列分析的概括结果,比如推断的数据类型,数据长度还有数据的冗余度等。
QualityStage 是主要用于数据的标准化和清理,能够根据一定的规则,将数据按照统一的格式进行标准化,智能地的补齐缺失的信息,然后对数据进行匹配,将不满足规则的或者重复的数据进行去除,提高数据的质量。QualityStage 对数据的处理分为四个阶段:数据调研 (Investigate) ,数据标准化 (Standardize),数据匹配 (Match) ,数据验证 (Survive)。在本文中,需要对贷款人的地址和户口信息进行验证,Information Analyzer 提供的列分析不能满足要求,因为针对复杂的地址字段的列分析,缺少针对性,无法判断地址数据的有效性,所以需要采用 QualityStage 先进行标准化处理,补足缺失字段,并拆分成符合逻辑的多个子字段,然后针对各个子字段进行列分析或者交叉校验。
质量规则审核
前文提到,个人客户申请商业贷款,需要首先填写申请单,但个人客户填写申请单后,可能存在不规范,比如填写出现错误,或者不清晰,导致业务人员将错误数据录入到前台数据库,那么需要对录入的数据进行数据质量规则的审核。将不合格的数据筛选出来,进行人工数据复核。
Information Analyzer 在质量规则审核中的应用
针对简单数据类型的不规范或错误,比如身份证号码包含非法字符,年龄不正确等,Information Analyzer 的列分析 (Column Analysis) 可以用于进行此类质量问题的审核。下面来看具体的处理步骤:
- 导入源数据 (Import Source Data)
在 Information Analyzer 进行分析之前,需要首先导入需要分析的数据,即个人申请时填写的客户信息。导入后,可以预览个人客户的信息,如下图所示:
图 2 客户数据预览
信息包括身份证号码 (shenfenzheng),姓名 (xingming),年龄 (nianling),教育情况 (jiaoyu),所在单位名称 (danwei),收入情况 (shouru),家庭住址 (zhuzhi),户口所在地 (hukou), 是否二手房 (ershoufang)。 - 列分析 (Column Analysis)
通过列分析,可以全面了解数据的分布情况,包括每个数据列的频率分布,数据格式,数据类型等。在这些信息的基础上,可以很直观地发现不规范或错误的数据。打开 Information Analyzer ,对个人客户信息进行列分析 (Column Analysis),通过列分析,可以得到以下分析结果:
图 3 列分析结果预览
通过查看列分析的结果,可以了解数据的基数,数据类型,长度,精度,数据的最大 / 最小值,数据的格式等情况,这是一个对数据的整体分析结果,还不能进行规则审核,还需要查看某个数据列的详细信息
以身份证号码审核为例。在上面的分析结果中,选中身份证号码,点击右下角的查看详细信息按钮,查看身份证号码的详细信息。可以看到单个数据列的概览,频率分布,数据类,属性,域与完整性,格式等信息。
首先查看数据类型的信息,如下所示:
图 4 身份证的数据类型信息
图 5 身份证的数据格式信息
进一步通过数据的格式,可以发现 ( 红色方框标识 ),有两个身份证号码的倒数第 2 位是字符 (“9999999999999999a9”,9 代表是数字,a 代表是字符 . 这是 Information Analyzer 的表示方式,以下类似。), 一个身份证号码的倒数第 3 个是字符 (“9999999999999999a99”) ,可以推断出这三个包含字符的身份证号码就是前面提到的 3 个字符串数据类型数据。由于字符都不是在最后, 那么就可以判断这 3 个身份证号码是错误的。假如只有最后一个是字符的话,那么还需要查看数据来判断该字符是否为 X,确定身份证号码是否有效。在格式中还有一个是空行 (NA),正好是前面得到的未知 (Unknown) 的数据类型。由于身份证号码是客户信息的唯一凭证,不能为空,那么该身份证号码也可认定是不符合规则的。对不符合规则的数据,将这些数据标记为无效,如上述图中的蓝色方框标识。
在贷款信息中,可能存在重复申请,或者信息填写有误导致身份证号码重复,这种情况也需要标识出来 , 交予后台人工复查。查看详细信息中的域与完整性,得到如下信息:
图 6 身份证的域与完整性信息
通过查看频率分布,查看所有值标志为无效的数据值 (INVALID),将这部分数据抽取出来,进行人工复核。如下图所示:
图 7 身份证审核结果图
QualityStage 在质量规则审核中的应用
由于地址数据的复杂性,Information Analyzer 不能给出任何有效的评估,本文采用 QualityStage 先对长粒度的地址数据进行标准化处理,拆分成符合逻辑的多个子字段,同时通过 QualityStage 的 Standardize 功能,进行缺失关键域的补齐操作,最后基于完善的地址数据和多个地址子字段交叉验证,判断地址的有效性。
1 .地址标准化
通过 QualityStage,拆分长的地址字段成多个子字段,并且补齐关键数据域,为此建立下面 job 并运行:
图 8 地址标准化作业
图 9 地址标准化结果
- 地址质量审核
地址标准化后,接下来需要判断地址是否有效。在该阶段,建立作业,完成小区信息 (Town) 与区域信息 (District) 的交叉验证,以及街道信息 (Street) 与区域信息 (District) 的交叉验证,列出不可信的数据,进入后台系统,等待人工复查。
图 10 地址交叉验证作业
图 11 地址验证逻辑设置
从结果中明显可见,上地软件园不属于东城,中关村街道也不属于石景山地区,以下数据均为虚假信息,需要进入后台系统,等待人工复核。
图 12 无效地址结果
资质审核
2011 年 02 月 16 日,北京市公布的“京十五条”中要求,个人在购买住房时,要验证个人是否具有北京市户口,如果不是北京市户口,需要提供五年的社保证明或纳税证明。所以在个人住房贷款审核时,要验证申请人的户口所在地,由于户口所在地的填写方法千差万别,用户填写的大多是地址信息。所以我们可以利用 InfoSphere QualityStage 的 Standardize Stage,利用中文地址的规则集,将户口地址进行标准化,然后来判断 city 的信息是否为“北京”。除了地址之外,商业银行需要对个人信息进行一个严格的资质审核,来确保贷款人承受偿还贷款的能力。比如个人的年龄,一般需要在 20 ~ 50 岁之间;教育情况,一般需要专科学历以上;个人收入,需要在 6 万以上。这部分不涉及具体的数据标准化过程,只是简单的对数据进行分类,这部分的资质审核可以用 Information Analyzer 进行处理。
Information Analyzer 在资质审核中的应用
前面提到的列分析 (Column Analysis) 是 Information Analyzer 的一个基本功能,用于了解所有数据,但是实际应用中需要对数据进行过滤,只保留有效数据,比如个人贷款中,需要判断贷款人的年龄信息,是否在一定的范围之内,对不满足这个范围的贷款人,不予发放贷款。基于这个应用,就可以用 Information Analyzer 的一个高级主题 - 数据规则 (Data Rule). 下面来看 Data Rule 如何进行资质审核。 - 建立数据规则定义(Data rule definitions)
针对年龄,需要建立一个规则,比如,将年龄限制在 20 ~ 50 岁,如下图所示。
图 13 年龄规则定义
图 14 收入规则定义
图 15 教育情况规则定义
假如银行在审核时,需要同时满足上面三个条件,那么就需要建立一个数据规则集,将上面建立的三个数据规则组合到一个数据规则集中,那如下图所示。
图 16 规则集定义
数据规则集创建完成后,还需要生成数据规则集,然后运行。运行的结果如下图所示。
图 17 输出纪录
以贷款人“王元”为例,王元的年龄是 53 岁,不符合定义的年龄规则定义。 而且王元年收入只有 5.2 万,也不符合年收入的规则定义。所以王元不符合数据规则集中的两个。
根据上图中的输出记录,银行业务人员就知道了不满条件的申请人,经过人工复核后,决定是否不予发放贷款。
QualityStage 在资质审核中的应用
下面就详细介绍如何利用 InfoSphere QualityStage 来进行户口资质审核。 -
户口信息标准化
打开 InfoSphere DataStage and QualiyStage Designer, 在 Designer 中设计如下的 Job。
图 18 标准化作业
Standardize Stage 中对户口地址所在列,选用中文地址规则集,如下图:
图 19 标准化配置
图 20 输出结果
利用 Filter stage 来判断 City name 是否为“北京”。设计的 job 如下:
图 21 户口审核作业
图 22 过滤属性设置
总结
本文以一个个人住房贷款申请的案例向大家展示了一个数据质量管控的闭环过程,从数据录入数据有效性的验证,数据业务逻辑的验证,到数据的最终入库,层层来保证数据的质量。同时,也像大家展示了,Infosphere Information Analyzer 和 Infosphere QualityStage 的各自特性,在不同的数据监控业务下的应用,比如,Information Analyzer 用于简单的数据字段,进行完善的数据内容分析。QualityStage 用于复杂的地址数据字段,先标准化,再做数据分析,从而实现地址有效性的验证。总之,在本文所展示的数据质量监控的闭环的方案中,合理的利用了 InfoSphere Information Analyzer 和 InfoSphere QualityStage 的各自特性,并有机结合,从而最大化的保证了数据质量的有效性。