基于分布式流式计算引擎的实时风控变量计算方法与流程

文档序号:17761358发布日期:2019-05-24 21:42阅读:1094来源:国知局
基于分布式流式计算引擎的实时风控变量计算方法与流程

本发明涉及一种产品软件和应用软件,尤其涉及一种基于分布式流式计算引擎的实时风控变量计算方法。



背景技术:

互联网金融领域的风控模型需要针对大量的用户变量指标进行计算,这些用户变量的值是基于用户的各维度数据进行计算的。目前,主要方法是把用户的各维度数据先存入数据库(如mysql、oracle等),然后用传统软件开发方法或sas系统(statisticsanalysissystem)开发出变量逻辑并进行计算。目前,从变量计算的需求提出、分析设计、开发、测试、上生产发布,相对来说开发周期长,沟通、开发、维护成本都比较高,同时远远不能满足大量的新增变量开发需求。若采用sas系统,还面临单机版本的不可扩展性、计算能力不足等问题。



技术实现要素:

本发明为解决上述技术问题而采用的技术方案是提供一种基于分布式流式计算引擎的实时风控变量计算方法,其中,具体技术方案为:

在该计算方法中包括:

数据源配置模块:用户配置各种计算依赖的数据源;

变量定义模块:可以用sql语言来开发各种变量;

变量计算模块:根据计算的请求从预先配置的数据源中抓取数据,构建内存表,把相关的变量池中的所有sql全部执行一遍,并输出计算结果;

风控变量实时计算具体过程如下:

步骤1接收到变量请求后,解析变量请求信息的参数,即可获知需要计算的数据标识、用户数据维度信息、甚至sql语句的参数;

步骤2根据用户申请信息中的数据标识、用户数据维度信息,从预先配置的数据源抓取数据,推送到高速缓存;

步骤3根据数据源配置的数据结构信息,从高速缓存中拉取数据,使用apachecalcite把拉取的数据构建到服务器的本地内存并形成内存表;

步骤4从变量池中获取跟用户数据维度相关的全部变量sql语句,和sql参数组合成可执行sql语句,然后可执行sql语句在内存表上运行并输出计算结果值。

上述的基于分布式流式计算引擎的实时风控变量计算方法,其中:用户数据维度信息包括但不限于信用卡消费记录、通话记录。

上述的基于分布式流式计算引擎的实时风控变量计算方法,其中:apachecalcite本身不会存储或处理数据,却是许多数据库内核的基础,使用calcite来构建自定义的数据库功能,采用calcite构建数据库表,通过自定义函数(udf)来扩展它的功能。

上述的基于分布式流式计算引擎的实时风控变量计算方法,其中:数据源配置模块,该模块是一个统一数据源配置中心,定义数据源的获取方式和结构化数据的组成,通过此模块配置相应的源数据获取方式及参数、数据的结构信息,在变量计算时,可实现自动化构建临时数据库表;用于变量计算的数据是多维度的,不同维度数据的来源都不一样,源数据存在于数据库中的,也会有不同类型的数据库,即使是同一类型数据库,不同的业务系统所使用的数据库也位于不同的服务器上,针对数据库这类的数据源,系统支持配置jdbc数据库连接来获取数据,参数包括数据库驱动、资源定位符、用户名及密码,还有一部分数据是外部系统以接口方式提供,这种通过接口提供数据的方式,支持配置接口地址、访问授权信息等参数。

上述的基于分布式流式计算引擎的实时风控变量计算方法,其中:变量定义模块,在变量定义模块中,设定变量名,并采用sql语言编写该变量的计算逻辑,即sql语句,此处的sql语句,必须符合apachecalcite的sql语法,apachecalcite是一个新的查询引擎,它提供了标准的sql语言、多种查询优化的能力,同时对标准sql进行了扩展,支持自定义函数,可用于实现复杂的业务逻辑,相关开发或业务人员开发变量时,编写完sql语句,保存时会进行sql语法验证,保存后可进行基于验证数据进行逻辑验证,结果正确无误后,可推送到变量池并立即参与计算。

上述的基于分布式流式计算引擎的实时风控变量计算方法,其中:变量计算模块,实际上是一个强大变量计算引擎,具备构建数据库表、执行sql语句并输出计算结果的能力。

本发明相对于现有技术具有如下有益效果:采用本发明研发的变量计算引擎和系统,熟悉sql语言的人员(如业务人员和开发人员),都能通过系统来定义变量,大大缩短变量开发周期,节省成本;sql语言语法简洁,易学易用,对变量逻辑理解起来容易,同时起到很好的解释作用。把数据拉取到服务器内部通过sql语言的方式进行计算,性能很快,基本上毫秒级别,对大量的sql计算有优势,能达到实时计算需求的目标。同时支持分布式部署,易于扩展,满足业务未来不断增多的变量计算需求。

附图说明

图1是本发明实施例中基于分布式流式计算引擎的实时风控变量计算方法的主要模块结构示意图;图2是本发明实施例中风控变量实时计算的流程图。

具体实施方式

本发明为了满足大量、实时变量计算需求,而用计算机软件实现的一个软件系统。图1是一个实施例中实时风控变量计算方法的模块结构图,主要包括数据源配置、变量定义及变量计算三部分。

m100:数据源配置,该模块是一个统一数据源配置中心,定义数据源的获取方式和结构化数据的组成,通过此模块配置相应的源数据获取方式及参数、数据的结构信息,在变量计算时,可实现自动化构建临时数据库表。

用于变量计算的数据是多维度的,不同维度数据的来源都不一样。源数据存在于数据库中的,也会有不同类型的数据库(如mysql、oracle、,mongodb等),即使是同一类型数据库,不同的业务系统所使用的数据库也位于不同的服务器上。针对数据库这类的数据源,系统支持配置jdbc数据库连接来获取数据,参数包括数据库驱动(databasedriver)、资源定位符(url)、用户名及密码。还有一部分数据是外部系统以接口(restapi)方式提供。这种通过接口提供数据的方式,支持配置接口地址、访问授权信息等参数。

m200:变量定义模块。在变量定义模块中,设定变量名,并采用sql语言编写该变量的计算逻辑,即sql语句。此处的sql语句,必须符合apachecalcite的sql语法。apachecalcite是一个新的查询引擎,它提供了标准的sql语言、多种查询优化的能力,同时对标准sql进行了扩展;支持自定义函数,可用于实现复杂的业务逻辑。

相关开发或业务人员开发变量时,编写完sql语句,保存时会进行sql语法验证。保存后可进行基于验证数据进行逻辑验证,结果正确无误后,可推送到变量池并立即参与计算。

m300:变量计算模块。变量计算模块,实际上是一个强大变量计算引擎,具备构建数据库表、执行sql语句并输出计算结果的能力。

图2是风控变量实时计算的流程图,具体过程如下。

步骤1接收到变量请求后,解析变量请求信息的参数,即可获知需要计算的数据标识、用户数据维度信息(如信用卡消费记录、通话记录等)、甚至sql语句的参数。

步骤2根据用户申请信息中的数据标识、用户数据维度信息,从预先配置的数据源抓取数据,推送到高速缓存。

步骤3根据数据源配置的数据结构信息,从高速缓存中拉取数据,使用apachecalcite把拉取的数据构建到服务器的本地内存并形成内存表。

apachecalcite本身不会存储或处理数据,却是许多数据库内核的基础,可以使用calcite来构建自定义的数据库功能。可采用calcite构建数据库表,通过自定义函数(udf)来扩展它的功能。

步骤4从变量池中获取跟用户数据维度相关的全部变量sql语句,和sql参数组合成可执行sql语句,然后可执行sql语句在内存表上运行并输出计算结果值。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1