[发明专利]基于storm、redis的实时计算方法、系统、设备以及存储介质在审
申请号: | 202010567510.2 | 申请日: | 2020-06-19 |
公开(公告)号: | CN111782693A | 公开(公告)日: | 2020-10-16 |
发明(设计)人: | 李亚超;董昭;马丹朋;余家宗;郑建国;陈水银;苏玉洋 | 申请(专利权)人: | 中信银行股份有限公司 |
主分类号: | G06F16/2455 | 分类号: | G06F16/2455;G06F16/2453;G06F8/41 |
代理公司: | 北京市兰台律师事务所 11354 | 代理人: | 张峰 |
地址: | 100010 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 storm redis 实时 计算方法 系统 设备 以及 存储 介质 | ||
本发明涉及一种基于storm、redis的实时计算方法,包括:S1.对系统规则进行预编译,实现系统规则组合条件优化;S2.对条件数据按照系统规则进行格式转换,并按层次快速执行规则匹配;S3.使用redis分片、lua扩展功能实现内存快速聚合计算功能。本发明通过对业务安全规则提前预编译,使用redis分片、lua扩展功能实现内存快速聚合计算,实现毫秒级别实时计算分析。目前已应用于中信银行信用卡中心应用级安全服务系统,日处理峰值1.9亿条数据。
技术领域
本发明涉及大数据实时计算分析技术领域,尤其涉及一种基于storm、redis的实时计算方法、系统、设备以及存储介质。
背景技术
Drools是一个基于Charles Forgy’s的RETE算法的,易于访问企业策略、易于调整以及易于管理的开源业务规则引擎。
Drools设计的DSL受限于RETE算法中需要合并条件的约束,Rule扩展性太弱,无法承载复杂业务。
Drools执行组合条件的规则时,规则条件越多执行效率越低。
发明内容
本发明的目的在于解决上述问题,提供一种基于storm、redis的实时计算方法、系统、设备以及存储介质。
本发明的一个方案是一种基于storm、redis的实时计算方法,包括:
S1.对系统规则进行预编译,实现系统规则组合条件优化;
S2.对条件数据按照系统规则进行格式转换,并按层次快速执行规则匹配;
S3.使用redis分片、lua扩展功能实现内存快速聚合计算功能。
在本发明的方案中,在所述S1步骤中,按照规则所在位置从redis获取其规则,然后进行初始化规则、匹配子规则和匹配结果表达式操作。
在本发明的方案中,在所述S2步骤中,对条件数据按照规则进行格式转换,然后判断当前bolt是否存在有层次的规则,如果没有,则结束匹配,如果有,则按照以下操作顺序继续匹配:
按层次执行规则匹配,然后判断是否匹配到规则,如果没有,则判断规则层次是否均已完成,均完成时结束匹配,未完成时返回继续循环进行按层次执行规则匹配;
如果匹配到规则,则执行每个规则对应的操作,然后判断规则层次是否均已执行完成,如果是,则结束匹配,如果不是,则返回继续循环进行按层次执行规则匹配。
在本发明的方案中,按层次执行规则匹配时,获取当前层次的规则、匹配数据和匹配结果表达式,如果当前层次的规则、匹配数据或者表达式为空,则结束匹配,如果不为空,则迭代原始数据的字段;
然后判断匹配数据中是否存在该字段,如果不存在,则整合匹配结果后结束匹配,如果存在,则按照以下操作进行:
迭代该字段所有的子规则操作进行匹配,获取每个子规则的匹配结果,然后判断原始数据是否迭代结束,如果迭代结束,则整合匹配结果后结束匹配,如果迭代未结束,则返回继续循环进行迭代原始数据的字段。
在本发明的方案中,在所述S3步骤中,判断系统时间窗是否为固定时间窗,如果是,则按照以下顺序继续执行计算:
使用dataTime计算所属时间窗,判断该时间窗是否存在,如果存在,则添加新数据,更新相关统计变量,然后结束执行计算;如果不存在,则创建新的时间窗,初始化相关变量,并设置时间窗的过期时间为当前时间窗时间类型的2倍时常,然后再添加新数据,更新相关统计变量后结束执行计算;
所述操作执行器判断系统时间窗是否为固定时间窗,如果不是,则按照以下顺序继续执行计算:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中信银行股份有限公司,未经中信银行股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010567510.2/2.html,转载请声明来源钻瓜专利网。