全流程风控专题:变量管理的设计

8 评论 6812 浏览 9 收藏 10 分钟

编辑导语:上文讲到了全流程风控专题:变量在风险政策中的使用,从五个角度进行分析;本文作者从概念说明、业务流程、功能需求三个大方向,详细介绍了变量管理是如何设计的,需要注意哪些地方。

一、概念说明

  • 政策:政策是对某个业务过程的抽象,每一场景可能触发一个或者多个事件。
  • 事件:事件是对真实业务中需要风险进行决策的点进行的抽象,比如注册、登陆、准入检查、预审、终审等。事件的原始信息称为事件属性。
  • 属性:属性是指原始信息,包括事件固有的(如事件ID、时间、渠道、商户等)、用户填写的信息(如手机号、联系人等)、外部查询的信息(如人行单位地址、综合评分等)以及变量的输出值。
  • 变量:变量是对特定计算逻辑的封装。变量来源于事件属性、名单、外部资信数据等的加工。变量包含输入、输出、血缘关系、分桶和计算逻辑。
  • 策略:策略是风险体系中对风险决策过程的抽象,比如大额终审策略。

在政策中,需要决策的时候,调用策略;策略返回决策建议,政策流程依此决定下一步。

二、业务流程

以申请业务为例,流程如下图所示:

三、功能需求

1. 状态管理

变量状态如下图所示:

2. 版本管理

变量运行最高版本的可运行版本。引用、依赖不记录版本信息,只记录变量编码。
每次版本的发布,必须对整个风险大脑执行一次快照。同时提供生成快照功能,供策略发布时生成快照。

3. 属性管理

属性管理贯穿整个业务过程,所有属性必须先被定义才能使用。属性的使用包括策略、计算逻辑、数据服务等。

1)属性说明

属性的定义包含以下几部分:

  • 英文名称
  • 中文名称
  • 描述
  • 数据类型
  • 值的长度
  • 一级分类
  • 二级分类
  • 来源
  • 关联码值(可选,枚举时有值)
  • 关联校验逻辑(可选)
  • 关联计算逻辑(可选,数据为变量时)
  • 关联策略(可选,被使用时自动关联)
  • 血缘关系(可选,为变量时才有)
  • 存储主键

数据类型包含字符串、数值、布尔值、时间4种类型。

2)属性类别:是指对属性业务用途的分类,分为一级分类和二级分类两级,具体值可以根据业务进行配置。

3)属性来源:包括人行资信、上送、事件属性、变量加工等。

4)属性列表:用于展示所有的属性定义,并提供属性操作入口,界面原型如下图所示。

整个属性的配置方式见下图,主要包含的字段都在图中有标识:

根据业务需求,提供了一个查看属性血缘关系的功能,据此可以看到整个属性的归属关系和关联层次,有助于用户查看属性关系。

当属性有多个版本时,可以进行历史对比,查看两版本间的差异,差异部分将标红展示。

4. 变量管理

变量的管理主要是对变量计算逻辑的管理。一个计算逻辑包含以下几部分:

  • 目标数据(属性):指定计算完成后输出哪个(属性)数据;
  • 默认值:当执行失败时的默认值;
  • 执行条件:开始执行的前置条件;
  • 计算参数:具体计算逻辑,选择的模板不一样参数也不一样;
  • 依赖变量:当变量计算有先后顺序时的前置变量。

1)变量列表:用于展示所有的变量,并提供相关的操作入口,原型如下图所示:

2)新增变量计算逻辑:新增计算逻辑有多个入口,可以在计算逻辑列表点击新增进行新增,也可以配置变量定义时跳转到计算逻辑配置,也可以在配置计算过程和配置数据服务出参时跳转到计算逻辑配置;计算逻辑的配置,参见计算模板,指定计算模板及参数及参数完成计算逻辑配置。

3)执行条件:为计算的前置条件,配置如下图所示,可以通过配置条件组,组合成复杂的执行条件。

4)依赖变量:可以控制变量计算的顺序,配置如下图所示,可以添加依赖变量,让依赖的变量先执行。

5. 服务管理

数据服务提供数据获取的功能,包括内部(其它系统)数据和外部数据(资信)的获取。

通过接口调用才能查询到的数据,我们统一称为数据服务;数据服务查询回来的数据可以进行二次加工为变量。

1)服务列表:用于展示所有的服务定义,并提供服务操作入口,界面原型如下图所示。

2)服务类型:包括内部服务和外部服务两种,内部服务的返回方式可以为同步或异步,外部服务的返回方式只能是异步,协议类型是指数据提供方提供的通讯协议,支持包含Http、Dubbo。

Dubbo

Http

3)返回方式:是指数据获取后通知调用方的方式,同步是指在同一会话中返回,异步是指另一会话中通知返回结果(如通过MQ通知)。

6. 变量计算

变量计算包括变量同步计算、变量异步计算、变量定时计算。

  • 变量同步计算:通过接口调用触发计算。接口传递用户、流水、策略ID及上下文信息;系统解析策略ID使用的变量,然后进行计算;对于数据服务,接口数据返回后也会调用同步计算,对输出变量进行计算。
  • 变量异步计算:是针对特殊的变量(如标签、累加等),在变量同步计算时,将数据推送到流处理平台进行异步计算。
  • 变量定时计算:是指对于一些运算量比较大、实时性又要求不高的变量,每天定时触发计算。

 

本文由 @blerk.zhao原创发布于人人都是产品经理。未经许可,禁止转载

题图来自pexels,基于CC0协议

给作者打赏,鼓励TA抓紧创作!
更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 这个变量我理解就是符合字段的概念,是一些属性的计算后产生的。

    另外问一下,
    1.你们接口对应的入参和出参,如果跟属性不匹配是不是还要做映射?

    2.如果对接的http服务需要复杂的健全机制,或者交互逻辑不通用,你们是怎么抽象统一逻辑的?

    3.外部服务商不会给dubbo接口吧?

    回复
    1. 属性不一致是要做映射的,按道理内部数据经过加工肯定是符合接口定义的,外部的数据一般是通过资信系统进行请求,所有的异构都会在此层面和做转化,资信系统一般作为独立的模块,不会划定进入审批或者风控系统,以独立平级应用存在,在此不做讨论。
      协议屏蔽一般来说看你的技术选型,一般来说内部多为dubbo,不管是不是dubbo,或者其他的,外部一般通过资信系统进行协议转换(这是前置类系统必有的基础功能);内部的一般都会 遵循公司内部协议,如果有例外,一般都是被调用的系统自身进行协议转换,支持全域的dubbo请求。

      回复
  2. 如果作为一款业务系统,感觉变量的定义过程过于冗长:比如参数的定义、依赖关系,如果业务人员本身不具有技术思维,难以理解这个操作的逻辑;一般建议这类技术操作,在前置进行产品功能化;业务实际操作时,只要基于已有参数进行变量定义就好。

    回复
    1. 业务系统的存在全部是以业务诉求为基础的,所有管理流程都有他存在的道理,当然会有不合理的情况,但是作为技术支持,不对齐流程做过多的干预;此外整个流程是分了很多层的,比如从政策-》策略-》变量-》属性,在子系统设计上也做了隔离,可以按需拆分,这么做也是为了可以模块化的对外输出。

      回复
  3. 牛逼啊哥,要是你的图画得标准些就好了,好些就随便一指,没解释看不懂啊

    回复
    1. 这个也没办法啊,篇幅所限,内容其实非常多,个人觉得看这种文章重点是看思路,内容会因为具体的落地有很大的差异

      回复
    2. 期待更多风控方面的分享

      回复
    3. 多谢支持,工作较忙,都是抽时间更新整理(ಥ﹏ಥ)

      回复