风控系统指标版本管理,前端实现

devtools/2025/2/7 15:10:43/

个人博客:无奈何杨(wnhyang)

个人语雀:wnhyang

Github:wnhyang - Overview


前言

本文算是前文《基于LiteFlow的风控系统指标版本控制》的完善。

前文已经说明了在基于规则引擎系统中版本管理的重要性,并说明了主表+历史表的实现思路和实现方法。

依照着上篇“历史既是历史又是运行”的思路在前端项目中实现版本管理。开发版本不代表最终效果😂

指标状态流转

image

1、创建:无-待发布,新创建的指标都是待发布状态,数据落在主表中;

2、更新:待发布-待发布或已上线-待发布,简单来讲只要是更新都会回到待发布状态,更新并不改变指标的发布状态,只更新主表;

3、发布:待发布-已上线,发布后主表指标状态改为已发布,同时在版本库中生成一个最新版本,新增或修改LiteFlowchainEL表达式;

4、下线:已上线-待发布,下线后指标状态回到待发布状态,对应的LiteFlowchain记录被删除;

5、版本切换:版本库-待发布,版本切换生效于版本库中某个版本用于切换某个版本到主表中,还需要再次发布才生效;

3、删除:待发布-无,删除某指标,清理指标历史数据。

运行区与编辑区

如下是前端指标管理页面,有两个tab分别是运行区和编辑区。

运行区展示已发布的每条指标的最新版本,操作有查看历史版本和下线。

image

编辑区展示所有主表数据,展示指标的名称、状态、类型等,操作有查看历史版本、查看引用、复制、编辑、发布、删除。

image

下面根据指标状态流转依次说明。

创建

创建只能在编辑区操作,有两种方式:1、新建按钮创建;2、复制已有指标创建。

新建按钮创建就是默认所有表单项为空,全都需要输入,如下。

image

复制创建就是将某一个指标的信息预填入表单中,省去一些数据录入的步骤,如下。

image

状态流转:无-待发布,新建的指标都是待发布状态。

更新

更新也是在编辑区操作,通过点击编辑按钮,确认弹框表单数据触发。

image

状态流转:待发布-待发布或已上线-待发布,只要是更新就都回到待发布状态。

发布

发布也是在编辑区操作,且只能发布待发布状态的指标,如下发布了已上线的指标提示“指标版本已存在”。

image

一旦发布了版本就会出现的运行区,且在版本库中新增一个版本。

image

状态流转:待发布-已上线,同时新增或修改LiteFlowchainEL表达式,这里就不体现了。

下线

下线是在运行区操作的,表示设置当前指标版本不可用。

另外在编辑区尝试删除指标时会有判断,如果该指标有对应的运行的版本则不可删除。

image

只有通过在运行区下线后方可删除。

image

状态流转:已上线-待发布,下线后指标状态回到待发布状态,同时删除了对应的LiteFlowchain记录。

版本切换

这是设置版本管理的目的,运行区和编辑区都可以操作,弹框展示当前指标所有历史版本,展开行后展示历史版本详细信息。如果想要回到某个版本,切换版本即可,操作后会将选中版本的数据会写到编辑区对应的指标上。

image

不过这时还未发布,真正的版本切换还未完成,需要再次编辑发布,有点类似于git revert <commit-hash>

状态流转:版本库-待发布。

删除

前面下线已说明,只能删除没有版本运行的指标,不然报错。

状态流转:待发布-无。

扩展

1、窗口类型

目前指标只有时间窗口类型,未来考虑加入会话窗口等,丰富指标场景。

2、指标类型

目前已有:次数统计、求和、最大值、最小值、平均、关联次数、历史取值。

未来考虑:移动距离、移动速度、趋势、方差、标准差、业务链、连续次数(不同与次数统计,中间插入其他状态则重新统计)

3、指标表单校验

指标类型不同,需要的表单项也不同,可选的字段类型也不同,如:数字类计算指标(求和、最大值、最小值、平均等),计算字段应该只能是数字类型。移动距离/速度,限制计算的字段类型为IP或经纬度数据。等等等。

4、指标编辑时某些字段不可更改

这个其实在这篇文章《风控系统之指标回溯,历史数据重跑》已经初步说明了,要么实现指标回溯,那么编辑时所有字段是可以更改的,要么就不让更改。什么意思呢?目前所有指标都是流式计算而来的,如果某个字段更改,那么流式计算的结果将不准确。

如下指标,如果在发布后被规则引用了,但配置的有点问题,要修改如下任意一项修改都会造成之前计算结果的不可靠,时间改为更大的100分钟?窗口大小改为时?条件新增为在某设备上的?等等

image

5、指标引用

前面说明了有此功能,但实际还没做好。

指标引用用于查找引用指标的规则,避免误删除指标,导致规则判断有误。

6、版本对比,高亮差异

7、指标导出导入和清理

指标导出导入,指标删除后清理历史计算数据。

8、指标大盘

总体查看指标运行情况,哪些指标使用率低,配合的规则效果差,等等。

以上一些不止适用于指标管理,规则、策略也一样,总之还有很多要做。

最后题外话

回顾一下年前一周到现在吧。年前一个月我的状态都很差,睡的好觉屈指可数,但是做的事情还不少。终于熬到了过年,像学生时代一样只要放假就会放空自己,又回到“归零”状态,挺好的。原本还想着回家后能继续做自己的事情,然而并没有那么容易。

原本计划着完成几篇文章,拖着拖着大概就都要舍弃了

  • 因为有更重要的事,集五福、蚂蚁森林、游戏等都变成浪费时间的事情了
  • 轮到我们制造年味了吗?
  • 回家一趟,我不敢轻易xx了
  • 游戏科学、DeepSeak、宇树,中国硅谷?
  • 县城高考状元擦边赚米,有人买房买车,有人还在为理想而活
  • 哪吒2-黑神话-流浪地球,有没有用心观众一眼就能看出来
  • 信息差永不过时,无论是电商差价,还是新的应用(如DeepSeak)
  • 离家回工作地,快递、外卖、司机早就回来了,或是说都没走,他们是唤醒城市的人吗?不,我算吗?

写在最后

拙作艰辛,字句心血,望诸君垂青,多予支持,不胜感激。


个人博客:无奈何杨(wnhyang)

个人语雀:wnhyang

Github:wnhyang - Overview


http://www.ppmy.cn/devtools/156849.html

相关文章

【产品小白】什么是微服务

在数字化浪潮汹涌澎湃的当下&#xff0c;软件系统的规模持续扩张&#xff0c;复杂度呈指数级攀升。如何高效地开发软件&#xff0c;确保其后续的维护轻松便捷&#xff0c;同时具备强大的扩展能力&#xff0c;已然成为广大开发者待攻克的核心难题。微服务作为一种应运而生的前沿…

【贪心算法篇】:“贪心”之旅--算法练习题中的智慧与策略(三)

✨感谢您阅读本篇文章&#xff0c;文章内容是个人学习笔记的整理&#xff0c;如果哪里有误的话还请您指正噢✨ ✨ 个人主页&#xff1a;余辉zmh–CSDN博客 ✨ 文章所属专栏&#xff1a;贪心算法篇–CSDN博客 文章目录 前言例题1.最优除法2.跳跃游戏23.跳跃游戏14.加油站5.单调递…

[c语言日寄]赋值操作对内存的影响

【作者主页】siy2333 【专栏介绍】⌈c语言日寄⌋&#xff1a;这是一个专注于C语言刷题的专栏&#xff0c;精选题目&#xff0c;搭配详细题解、拓展算法。从基础语法到复杂算法&#xff0c;题目涉及的知识点全面覆盖&#xff0c;助力你系统提升。无论你是初学者&#xff0c;还是…

Mac 基于Ollama 本地部署DeepSeek离线模型

最近节日期间最火的除了《哪吒》就是deepseek了&#xff0c;毕竟又让西方各个层面都瑟瑟发抖的产品。DeepSeek凭借其强大的AI能力真的是在全球多个领域展现出强大的影响力。由于受到外部势力的恶意攻击倒是deepseek官方服务不稳定&#xff0c;国内其他厂家的适配版本也不是很稳…

STM32 串口收发数据包

接线图 HEX数据包接收 文本数据包接收 代码配置 发送HEX数据包 //存储发送或接收的载荷数据 uint8_t TX_Packet[4]; uint8_t RX_Packet[4];void Serial_SendPacket(void) {Serial_SendByte(0xFF);//发送包头Serial_SendArray(TX_Packet, 4);//发送4个载荷数据Serial_SendByte…

【归属地】批量号码归属地查询按城市高速的分流,基于WPF的解决方案

在现代商业活动中&#xff0c;企业为了提高营销效果和资源利用效率&#xff0c;需要针对不同地区的市场特点开展精准营销。通过批量号码归属地查询并按城市分流&#xff0c;可以为企业的营销决策提供有力支持。 短信营销&#xff1a;一家连锁餐饮企业计划开展促销活动&#xf…

rabbitMQ数据隔离

用户管理 点击Admin选项卡&#xff0c;就会呈现rabbitMQ控制台的用户管理界面 Name&#xff1a;sde&#xff0c;也就是用户名Tags&#xff1a;administrator&#xff0c;说明sde用户是超级管理员&#xff0c;拥有所有权限Can access virtual host&#xff1a; /&#xff0c;可…

Spring Boot常用注解深度解析:从入门到精通

今天&#xff0c;这篇文章带你将深入理解Spring Boot中30常用注解&#xff0c;通过代码示例和关系图&#xff0c;帮助你彻底掌握Spring核心注解的使用场景和内在联系。 一、启动类与核心注解 1.1 SpringBootApplication 组合注解&#xff1a; SpringBootApplication Confi…