通用业务平台设计(五):预警平台建设

news2024/10/7 6:45:29

前言

  • 在上家公司,随着业务的不断拓展(从支持单个国家单个主体演变成支持多个国家多个主体),对预警的诉求越来越紧迫;
  • 如何保障业务的稳定性那?预警可以帮我们提前甄别风险,从而让我们可以在风险来临前将其消灭;
  • 每个业务组写自己的报警规则会极大的降低开发效率,于是我们设计一套通用的预警平台来解该问题;

通用业务平台系列

  • 通用业务平台设计(一):概览
  • 通用业务平台设计(二):扩展多国家业务
  • 通用业务平台设计(三):自动化打包平台建设
  • 通用业务平台设计(四):灰度发布架构升级
  • 通用业务平台设计(五):预警平台建设

学习完这篇文章你将收获什么

适合哪类人学

  • 后端开发(无论你是刚入门小白还是资深开发都能从中有所受益)
  • 运维(无论你是刚入门小白还是资深运维都能从中有所受益)

你将收获什么

  • 预警平台架构如何设计

预警平台设计

场景数据获取架构图

在这里插入图片描述

报警规则过滤架构图

在这里插入图片描述

记录待发送报警架构图

在这里插入图片描述

报警发送

在这里插入图片描述

涉及数据库脚本

预警平台相关脚本

-- 报警渠道信息
CREATE TABLE `monitor_channel` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `channel_no` varchar(32) DEFAULT NULL COMMENT '渠道编码',
  `channel_name` varchar(20) DEFAULT NULL COMMENT '通道名称',
  `type` int(2) DEFAULT '0' COMMENT '渠道类型:0企业微信;1邮箱;2钉钉',
  `sort` decimal(4,2) DEFAULT NULL COMMENT '排序(越大越靠前);支持正负数,支持两位整数两位小数',  
  `status` int(2) DEFAULT '0' COMMENT '状态(0启用 1停用 2作废)', 
  `remark` varchar(20) DEFAULT NULL COMMENT '备注',
  `create_uid` varchar(32) DEFAULT NULL COMMENT '创建人ID 系统初始化为 -1',
  `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  `update_uid` varchar(32) DEFAULT NULL COMMENT '修改人ID 系统修改为 -1',
  `update_time` timestamp NULL DEFAULT NULL COMMENT '更新时间',
  `param1` int(2) DEFAULT NULL COMMENT '预留字段1',
  `param2` int(4) DEFAULT NULL COMMENT '预留字段2',
  `param3` int(11) DEFAULT NULL COMMENT '预留字段3',
  `param4` varchar(32) DEFAULT NULL COMMENT '预留字段4',
  `param5` varchar(64) DEFAULT NULL COMMENT '预留字段5',
  `param6` varchar(128) DEFAULT NULL COMMENT '预留字段6',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_monitor_channel_cno` (`channel_no`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='报警渠道表';

-- 报警渠道明细表
CREATE TABLE `monitor_channel_detail` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `channel_no` varchar(32) DEFAULT NULL COMMENT '渠道编码',  
  `data_key` varchar(128) DEFAULT NULL COMMENT '数据项key',
  `data_value` varchar(128) DEFAULT NULL COMMENT '数据项value',
  `data_remark` varchar(20) DEFAULT NULL COMMENT '数据项说明',    
  `status` int(2) DEFAULT '0' COMMENT '状态(0启用 1停用 2作废)', 
  `create_uid` varchar(32) DEFAULT NULL COMMENT '创建人ID 系统初始化为 -1',
  `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  `update_uid` varchar(32) DEFAULT NULL COMMENT '修改人ID 系统修改为 -1',
  `update_time` timestamp NULL DEFAULT NULL COMMENT '更新时间',
  `param1` int(2) DEFAULT NULL COMMENT '预留字段1',
  `param2` int(4) DEFAULT NULL COMMENT '预留字段2',
  `param3` int(11) DEFAULT NULL COMMENT '预留字段3',
  `param4` varchar(32) DEFAULT NULL COMMENT '预留字段4',
  `param5` varchar(64) DEFAULT NULL COMMENT '预留字段5',
  `param6` varchar(128) DEFAULT NULL COMMENT '预留字段6',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_monitor_channel_detail_cds` (`channel_no`,`data_key`,`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='报警渠道表';

-- 报警路由表
CREATE TABLE `monitor_routing` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
  `routing_no` varchar(32) NOT NULL COMMENT '路由编号',
  `country_no` varchar(32) NOT NULL COMMENT '国家编号',
  `country_name` varchar(32) NOT NULL COMMENT '国家名称',
  `info_type` int(2) DEFAULT NULL COMMENT '报警场景类型:0验证类短信成功率;',
  `channel_no` varchar(32) DEFAULT NULL COMMENT '渠道编码',
  `channel_name` varchar(20) DEFAULT NULL COMMENT '通道名称',  
  `sort` decimal(4,2) DEFAULT NULL COMMENT '排序(越大越靠前);支持正负数,支持两位整数两位小数',
  `status` int(2) DEFAULT '0' COMMENT '状态(0启用 1停用 2作废)',
  `create_uid` varchar(32) DEFAULT NULL COMMENT '创建人ID',
  `create_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_uid` varchar(32) DEFAULT NULL COMMENT '修改人ID',
  `update_time` timestamp NULL DEFAULT NULL COMMENT '修改时间',
  `param1` int(2) DEFAULT NULL COMMENT '预留字段1',
  `param2` int(4) DEFAULT NULL COMMENT '预留字段2',
  `param3` int(11) DEFAULT NULL COMMENT '预留字段3',
  `param4` varchar(20) DEFAULT NULL COMMENT '预留字段4',
  `param5` varchar(32) DEFAULT NULL COMMENT '预留字段5',
  `param6` varchar(64) DEFAULT NULL COMMENT '预留字段6',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_monitor_routing_rt_no` (`routing_no`),
  UNIQUE KEY `uk_monitor_routing_cno_cpno_status_type` (`country_no`,`channel_no`,`status`,`info_type`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='报警路由表';

-- 报警模板表
CREATE TABLE `monitor_mod` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `mod_no` varchar(32) DEFAULT NULL COMMENT '模板编码',
  `title` varchar(20) DEFAULT NULL COMMENT '标题',
  `status` int(2) DEFAULT '0' COMMENT '状态(0启用 1停用 2作废)',
  `content` varchar(512) DEFAULT NULL COMMENT '报警模板内容',
  `content_chinese` varchar(512) DEFAULT NULL COMMENT '报警模板内容对应中文',
  `info_type` int(2) DEFAULT NULL COMMENT '报警场景类型:0验证类短信成功率;',
  `send_type` int(2) DEFAULT NULL COMMENT '发送类型【1实时 2定时】',  
  `remark` varchar(20) DEFAULT NULL COMMENT '备注',
  `create_uid` varchar(32) DEFAULT NULL COMMENT '创建人ID',
  `create_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_uid` varchar(32) DEFAULT NULL COMMENT '修改人ID',
  `update_time` timestamp NULL DEFAULT NULL COMMENT '修改时间',
  `param1` int(2) DEFAULT NULL COMMENT '预留字段1',
  `param2` int(4) DEFAULT NULL COMMENT '预留字段2',
  `param3` int(11) DEFAULT NULL COMMENT '预留字段3',
  `param4` varchar(20) DEFAULT NULL COMMENT '预留字段4',
  `param5` varchar(32) DEFAULT NULL COMMENT '预留字段5',
  `param6` varchar(64) DEFAULT NULL COMMENT '预留字段6',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_monitor_mod_mno` (`mod_no`),
  KEY `key_monitor_mod_info_type` (`info_type`),
  KEY `key_monitor_mod_info_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='报警模板表';

-- 报警国家模板对应关系表
CREATE TABLE `monitor_country_mod` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `bu_no` varchar(32) DEFAULT NULL COMMENT '业务编码',
  `country_no` varchar(32) DEFAULT NULL COMMENT '国家编码',
  `country_name` varchar(32) DEFAULT NULL COMMENT '国家名称',
  `mod_no` varchar(32) DEFAULT NULL COMMENT '报警模板编码',
  `info_type` int(2) DEFAULT NULL COMMENT '报警场景类型:0验证类短信成功率;',
  `status` int(2) DEFAULT '0' COMMENT '状态(0启用 1停用 2作废)',
  `remark` varchar(20) DEFAULT NULL COMMENT '备注',
  `create_uid` varchar(32) DEFAULT NULL COMMENT '创建人ID',
  `create_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_uid` varchar(32) DEFAULT NULL COMMENT '修改人ID',
  `update_time` timestamp NULL DEFAULT NULL COMMENT '修改时间',
  `param1` int(2) DEFAULT NULL COMMENT '预留字段1',
  `param2` int(4) DEFAULT NULL COMMENT '预留字段2',
  `param3` int(11) DEFAULT NULL COMMENT '预留字段3',
  `param4` varchar(32) DEFAULT NULL COMMENT '预留字段4',
  `param5` varchar(32) DEFAULT NULL COMMENT '预留字段5',
  `param6` varchar(128) DEFAULT NULL COMMENT '预留字段6',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_monitor_country_mod_bu_no` (`bu_no`),
  UNIQUE KEY `uk_monitor_country_mod_cno_mno_itype_status` (`country_no`,`mod_no`,`info_type`,`status`)  
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='报警的国家模板对应表';

-- 预警规则路由表
CREATE TABLE `monitor_rule_route` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `bu_no` varchar(32) DEFAULT NULL COMMENT '业务编码',
  `info_type` int(2) DEFAULT NULL COMMENT '报警场景类型:0验证类短信成功率;',
  `country_no` varchar(32) DEFAULT NULL COMMENT '国家编码',    
  `rule_no` varchar(32) DEFAULT NULL COMMENT '规则编码',
  `sort` decimal(4,2) DEFAULT NULL COMMENT '排序(越大越靠前);支持正负数,支持两位整数两位小数',
  `status` int(2) DEFAULT '0' COMMENT '状态 0启用 1停用',
  `remark` varchar(20) DEFAULT NULL COMMENT '备注',  
  `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',  
  `update_time` timestamp NULL DEFAULT NULL COMMENT '更新时间',
  `param1` int(2) DEFAULT NULL COMMENT '预留字段1',
  `param2` int(4) DEFAULT NULL COMMENT '预留字段2',
  `param3` int(11) DEFAULT NULL COMMENT '预留字段3',
  `param4` varchar(20) DEFAULT NULL COMMENT '预留字段4',
  `param5` varchar(32) DEFAULT NULL COMMENT '预留字段5',
  `param6` varchar(64) DEFAULT NULL COMMENT '预留字段6',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_monitor_rule_route_bno` (`bu_no`)  
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='预警规则路由表';

-- 预警规则表
CREATE TABLE `monitor_rule` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `rule_no` varchar(32) DEFAULT NULL COMMENT '规则编码',      
  `sort` decimal(4,2) DEFAULT NULL COMMENT '排序(越大越靠前);支持正负数,支持两位整数两位小数',
  `fun_code` varchar(64) DEFAULT NULL COMMENT '表达式',
  `fun_desc` varchar(64) DEFAULT NULL COMMENT '表达式描述',
  `threshold_val` varchar(255) DEFAULT NULL COMMENT '阈值', 
  `status` int(2) DEFAULT '0' COMMENT '状态 0启用 1停用',
  `remark` varchar(20) DEFAULT NULL COMMENT '备注',  
  `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',  
  `update_time` timestamp NULL DEFAULT NULL COMMENT '更新时间',
  `param1` int(2) DEFAULT NULL COMMENT '预留字段1',
  `param2` int(4) DEFAULT NULL COMMENT '预留字段2',
  `param3` int(11) DEFAULT NULL COMMENT '预留字段3',
  `param4` varchar(20) DEFAULT NULL COMMENT '预留字段4',
  `param5` varchar(32) DEFAULT NULL COMMENT '预留字段5',
  `param6` varchar(64) DEFAULT NULL COMMENT '预留字段6',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_monitor_rule_rno` (`rule_no`)  
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='预警规则表';

-- 报警发送表
CREATE TABLE `monitor_send_log` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `sl_no` varchar(32) DEFAULT NULL COMMENT '业务编码',
  `country_no` varchar(32) DEFAULT NULL COMMENT '国家编码',
  `channel_product_no` varchar(32) DEFAULT NULL COMMENT '渠道产品编码',
  `mod_no` varchar(32) DEFAULT NULL COMMENT '报警模板编码',  
  `content` varchar(255) DEFAULT NULL COMMENT '内容中变量【多个以;为分割】',
  `info_type` int(2) DEFAULT NULL COMMENT '报警场景类型:0验证类短信成功率;',    
  `expect_send_time` timestamp NULL DEFAULT NULL COMMENT '预计报警发送时间',
  `reality_send_time` timestamp NULL DEFAULT NULL COMMENT '实际报警发送时间',
  `status` int(2) DEFAULT NULL COMMENT '发送状态:0待发送;1发送成功;2发送失败', 
  `retry_times` int(2) DEFAULT '2' COMMENT '剩余重试次数', 
  `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  `update_time` timestamp NULL DEFAULT NULL COMMENT '更新时间',
  `param1` int(2) DEFAULT NULL COMMENT '预留字段1',
  `param2` int(4) DEFAULT NULL COMMENT '预留字段2',
  `param3` int(11) DEFAULT NULL COMMENT '预留字段3',
  `param4` varchar(32) DEFAULT NULL COMMENT '预留字段4',
  `param5` varchar(64) DEFAULT NULL COMMENT '预留字段5',
  `param6` varchar(128) DEFAULT NULL COMMENT '预留字段6',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_monitor_send_log_slno` (`sl_no`),
  UNIQUE KEY `uk_monitor_send_log_cno_itype_estime` (`country_no`,`info_type`,`expect_send_time`),
  KEY `key_monitor_send_log_cno` (`country_no`),
  KEY `key_monitor_send_log_chpno` (`channel_product_no`),
  KEY `key_monitor_send_log_exstime` (`expect_send_time`),
  KEY `key_monitor_send_log_status` (`status`),
  KEY `key_monitor_send_log_retimes` (`retry_times`),
  KEY `key_monitor_send_log_create_time` (`create_time`)  
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='报警发送记录表';

-- 报警发送历史表
CREATE TABLE `monitor_send_log_hist` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `sl_no` varchar(32) DEFAULT NULL COMMENT '业务编码',
  `country_no` varchar(32) DEFAULT NULL COMMENT '国家编码',
  `channel_product_no` varchar(32) DEFAULT NULL COMMENT '渠道产品编码',
  `mod_no` varchar(32) DEFAULT NULL COMMENT '报警模板编码',  
  `content` varchar(255) DEFAULT NULL COMMENT '内容中变量【多个以;为分割】',
  `info_type` int(2) DEFAULT NULL COMMENT '报警场景类型:0验证类短信成功率;',    
  `expect_send_time` timestamp NULL DEFAULT NULL COMMENT '预计报警发送时间',
  `reality_send_time` timestamp NULL DEFAULT NULL COMMENT '实际报警发送时间',
  `status` int(2) DEFAULT NULL COMMENT '发送状态:0待发送;1发送成功;2发送失败', 
  `retry_times` int(2) DEFAULT '2' COMMENT '剩余重试次数', 
  `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  `update_time` timestamp NULL DEFAULT NULL COMMENT '更新时间',
  `param1` int(2) DEFAULT NULL COMMENT '预留字段1',
  `param2` int(4) DEFAULT NULL COMMENT '预留字段2',
  `param3` int(11) DEFAULT NULL COMMENT '预留字段3',
  `param4` varchar(32) DEFAULT NULL COMMENT '预留字段4',
  `param5` varchar(64) DEFAULT NULL COMMENT '预留字段5',
  `param6` varchar(128) DEFAULT NULL COMMENT '预留字段6',
  PRIMARY KEY (`id`),
  KEY `uk_monitor_send_log_hist_slno` (`sl_no`),
  KEY `key_monitor_send_log_hist_cno` (`country_no`),
  KEY `key_monitor_send_log_hist_chpno` (`channel_product_no`),
  KEY `key_monitor_send_log_hist_exstime` (`expect_send_time`),
  KEY `key_monitor_send_log_hist_status` (`status`),
  KEY `key_monitor_send_log_hist_retimes` (`retry_times`),
  KEY `key_monitor_send_log_hist_create_time` (`create_time`)  
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='报警发送记录历史表';

业务系统相关脚本

-- 预警历史数据表
CREATE TABLE `monitor_hist_data` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `bu_no` varchar(32) DEFAULT NULL COMMENT '业务编码',
  `info_type` int(2) DEFAULT NULL COMMENT '场景类型:0验证类短信成功率;1活体成功率;',
  `begin_time` timestamp NULL DEFAULT NULL COMMENT '数据统计开始时间',
  `end_time` timestamp NULL DEFAULT NULL COMMENT '数据统计结束时间',
  `numerator_count` int(4) DEFAULT NULL COMMENT '统计时间段分子数量',
  `denominator_count` int(4) DEFAULT NULL COMMENT '统计时间段分母数量',        
  `rate` decimal(8,4) DEFAULT NULL COMMENT '统计时间段比例(统计时间段分子数量/统计时间段分母数量)',
  `remark` varchar(20) DEFAULT NULL COMMENT '备注',  
  `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',  
  `update_time` timestamp NULL DEFAULT NULL COMMENT '更新时间',
  `param1` int(2) DEFAULT NULL COMMENT '预留字段1',
  `param2` int(4) DEFAULT NULL COMMENT '预留字段2',
  `param3` int(11) DEFAULT NULL COMMENT '预留字段3',
  `param4` varchar(20) DEFAULT NULL COMMENT '预留字段4',
  `param5` varchar(32) DEFAULT NULL COMMENT '预留字段5',
  `param6` varchar(64) DEFAULT NULL COMMENT '预留字段6',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_monitor_record_bno` (`bu_no`),
  UNIQUE KEY `uk_monitor_record_itype_btime_etime` (`info_type`,`begin_time`,`end_time`),
  KEY `monitor_hist_data_btime` (`begin_time`),
  KEY `monitor_hist_data_etime` (`end_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='预警历史信息统计表';

-- 预警记录表
CREATE TABLE `monitor_record` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `bu_no` varchar(32) DEFAULT NULL COMMENT '业务编码',
  `info_type` int(2) DEFAULT NULL COMMENT '报警场景类型:0验证类短信成功率;1活体成功率;',
  `country_no` varchar(32) DEFAULT NULL COMMENT '国家编码',
  `begin_time` timestamp NULL DEFAULT NULL COMMENT '统计数据开始时间',
  `end_time` timestamp NULL DEFAULT NULL COMMENT '统计数据结束时间',
  `content` varchar(1024) DEFAULT NULL COMMENT '报警内容多个以英文分号进行分割',        
  `compare_val` varchar(512) DEFAULT NULL COMMENT '对比项值',   
  `rule_retry_time` int(2) DEFAULT '2' COMMENT '调用报警规则剩余重试次数',
  `send_retry_time` int(2) DEFAULT '2' COMMENT '调用报警记录剩余重试次数',
  `status` int(2) DEFAULT '0' COMMENT '状态 0待调用报警规则 1调用报警规则失败 2调用报警规则成功且不需要报警 3调用报警规则成功且需要报警 4调用报警记录成功 5调用报警记录失败',   
  `remark` varchar(20) DEFAULT NULL COMMENT '备注',  
  `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',  
  `update_time` timestamp NULL DEFAULT NULL COMMENT '更新时间',
  `param1` int(2) DEFAULT NULL COMMENT '预留字段1',
  `param2` int(4) DEFAULT NULL COMMENT '预留字段2',
  `param3` int(11) DEFAULT NULL COMMENT '预留字段3',
  `param4` varchar(20) DEFAULT NULL COMMENT '预留字段4',
  `param5` varchar(32) DEFAULT NULL COMMENT '预留字段5',
  `param6` varchar(64) DEFAULT NULL COMMENT '预留字段6',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_monitor_record_bno` (`bu_no`),
  UNIQUE KEY `uk_monitor_record_type_cno_btime_etime` (`info_type`,`country_no`,`begin_time`,`end_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='预警信息记录表';

-- 预警基本信息统计表
CREATE TABLE `monitor_basic_data` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `group_no` varchar(32) DEFAULT NULL COMMENT '组编码',
  `country_name` varchar(20) DEFAULT NULL COMMENT '国家名称',
  `begin_time` timestamp NULL DEFAULT NULL COMMENT '数据统计开始时间',
  `end_time` timestamp NULL DEFAULT NULL COMMENT '数据统计结束时间',
  `info_type` int(2) DEFAULT NULL COMMENT '类型:0催收',  
  `status` int(2) DEFAULT '0' COMMENT '状态 0待生成excel上传oss 1上传oss成功 2上传oss失败',
  `file_url` varchar(255) DEFAULT NULL COMMENT '文件OSS的url地址',
  `retry_time` int(2) DEFAULT '2' COMMENT '剩余重试次数',
  `remark` varchar(20) DEFAULT NULL COMMENT '备注',  
  `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',  
  `update_time` timestamp NULL DEFAULT NULL COMMENT '更新时间',
  `param1` int(2) DEFAULT NULL COMMENT '预留字段1',
  `param2` int(4) DEFAULT NULL COMMENT '预留字段2',
  `param3` int(11) DEFAULT NULL COMMENT '预留字段3',
  `param4` varchar(20) DEFAULT NULL COMMENT '预留字段4',
  `param5` varchar(32) DEFAULT NULL COMMENT '预留字段5',
  `param6` varchar(64) DEFAULT NULL COMMENT '预留字段6',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_monitor_basic_data_gno` (`group_no`),
  UNIQUE KEY `uk_monitor_basic_data_cn_btime_etime` (`country_name`,`begin_time`,`end_time`),
  KEY `key_monitor_basic_data_btime` (`begin_time`),
  KEY `key_monitor_basic_data_etime` (`end_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='预警基本信息统计表';

-- 预警基本信息详细统计表
CREATE TABLE `monitor_basic_data_item` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `group_no` varchar(32) DEFAULT NULL COMMENT '组编码',
  `case_id` varchar(32) DEFAULT NULL COMMENT '订单号',
  `external_no` varchar(128) DEFAULT NULL COMMENT '外部流水号(第三方交易流水号)',
  `repayment_money` decimal(20,8) DEFAULT NULL COMMENT '应还金额',
  `practical_repayment_money` decimal(20,8) DEFAULT NULL COMMENT '金额',
  `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',  
  `update_time` timestamp NULL DEFAULT NULL COMMENT '更新时间',
  `param1` int(2) DEFAULT NULL COMMENT '预留字段1',
  `param2` int(4) DEFAULT NULL COMMENT '预留字段2',
  `param3` int(11) DEFAULT NULL COMMENT '预留字段3',
  `param4` varchar(20) DEFAULT NULL COMMENT '预留字段4',
  `param5` varchar(32) DEFAULT NULL COMMENT '预留字段5',
  `param6` varchar(64) DEFAULT NULL COMMENT '预留字段6',
  PRIMARY KEY (`id`),
  KEY `key_monitor_basic_data_item_gno` (`group_no`)  
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='预警基本信息详细统计表';

总结

  • 预警平台的建设远超预期,多次提前预警风险,从而避免故障发生
  • 预警平台投入使用推广,获得了业务团队的一致好评
  • 当业务发展一定规模后,公司在竞争中获胜的一个很关键因素在于谁更少的犯错,建立一个提前甄别风险的系统是必要的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/390792.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深度学习笔记:dropout和调优超参数方法

1 Dropout Dropout是一个常用于深度学习的减轻过拟合的方法。该方法在每一轮训练中随机删除部分隐藏层神经元。被删除的神经元不会进行正向或反向信号传递。在测试阶段所有神经元都会传递信号,但对各个神经元的输出要乘以训练时删除比例。 Dropout实现程序&#xf…

毕业设计 基于STM32单片机无线ZIGBEE智能大棚土壤湿度光照检测

基于STM32单片机无线ZIGBEE智能大棚土壤湿度光照检测1、项目简介1.1 系统构成1.2 系统功能2、部分电路设计2.1 STM32F103C8T6核心系统电路设计2.2 光敏采集电路设计2.3 温度采集电路设计3、部分代码展示3.1 读取DS18B20温度值3.2 定时器初始化1、项目简介 选题指导&#xff0c…

Learning Typescript and React in ts

目录 Basic typescript What is typescript? Configuring the TypeScript Compiler Fundamental build in types TypeScript Simple Types TypeScript Special Types Type: unknown Type: never Type: undefined & null Arrays Tuple Enums functions Ob…

Java集合专题

文章目录框架体系CollectionListArrayListLinkedListVectorSetHashSetLinkedHashSetTreeSetMapHashMapHashtableLinkedHashMapTreeMapPropertiesCollections框架体系 1、集合主要分了两组(单列集合,双列集合) 2、Collection接口有两个重要的子…

2.SpringSecurity认证

2.1登录校验流程 2.2认证原理 *源码流程: *自定义认证流程: *校验流程: *认证和校验连接: 2.3思路分析 *登录:

SQLI-Labs通关(2)5-7关

跟之前一样首先传参,然后查看注入点以及闭合 用and 11 and 12都没问题,接下来测试单引号 利用 and 12的时候会报错 利用order by来判断列数 得出一共三列 接下来就是联合查询 但是这个并不会回显 那么就利用盲注或者报错注入 在这里我们利用报错来测…

Vue3的生命周期函数

文章目录🌟 写在前面🌟 生命周期钩子函数🌟 组合式API生命周期🌟 写在最后🌟 写在前面 专栏介绍: 凉哥作为 Vue 的忠实 粉丝输出过大量的 Vue 文章,应粉丝要求开始更新 Vue3 的相关技术文章&am…

OPPO 数据恢复:如何从 OPPO 手机恢复已删除的文件?

Oppo 手机以其精美的外观和拍摄的精美照片和视频而闻名。如果您不小心丢失了 OPPO 手机中珍贵的照片、视频等重要文件,并且为如何找回而苦恼,那么您来对地方了。我们其实有很多OPPO数据恢复方案,现在最重要的是尽快尝试这些方法,防…

Git 相关内容

目录 Git 相关流程和常用命令 Git workflow Git hooks Git 相关流程和常用命令 Git远程操作详解 - 阮一峰的网络日志 Git 使用规范流程 - 阮一峰的网络日志 常用 Git 命令清单 - 阮一峰的网络日志 Git workflow 啥玩意: 就是一个工作流程。可以比喻成一个河流…

用逻辑回归制作评分卡

目录 一.评分卡 二.导库,获取数据 三.探索数据与数据预处理 1.去除重复值 2.填补缺失值 3.描述性统计处理异常值 4.为什么不统一量纲,也不标准化数据分布 5.样本不均衡问题 6.分训练集和测试集 三.分箱 1.分多少个箱子才合适 2.分箱要达成什么…

Antlr4: 为parser rule添加label

1. parser rule中的label 1.1 简介 Antrl4语法文件Calculator.g4,stat和expr两个parser rule含有多个rule element,我们这两个parse rule的每个rule element添加了Alternative labels(简称label) 按照Antlr4的语法规则&#xff…

2022年显卡性能跑分排名表

2022年显卡性能跑分排名表(数据来源于快科技)这个版本的电脑显卡跑分榜第一的是NVIDIA GeForce RTX 3090 Ti显卡。由于显卡跑分受不同的测试环境、不同的显卡驱动版本以及不同散热设计而有所不同,所以显卡跑分会一直变化。 前二十名的台式电…

Linux(进程概念详解)

进程是如今编程领域非常重要的一个概念,进程是比较抽象的,不容易直接理解。因为进程与操作系统息息相关,因此在介绍进程之前,笔者打算先简易讲一下操作系统的工作流程,理解操作系统是如何管理软件和硬件的,…

垃圾收集器和内存分配(第五章)

《实战Java虚拟机:JVM故障诊断与性能优化 (第2版)》 Java 平台,标准版热点虚拟机垃圾回收调优指南 垃圾收集器虽然看起来数量比较多,但其实总体逻辑都是因为硬件环境的升级而演化出来的产品,不同垃圾收集器的产生总体可以划分为几…

智能优化算法应用:基于蚁狮优化算法的工程优化案例-附代码

智能优化算法应用:基于蚁狮算法的工程优化案例 文章目录智能优化算法应用:基于蚁狮算法的工程优化案例1.蚁狮算法2.压力容器设计问题3.三杆桁架设计问题4.拉压弹簧设计问题5.Matlab代码6.python代码摘要:本文介绍利用蚁狮搜索算法&#xff0c…

191、【动态规划】AcWing —— 900. 整数划分:完全背包解法+加减1解法(C++版本)

题目描述 参考文章:900. 整数划分 解题思路 因为本题中规定了数字从大到小,其实也就是不论是1 2 1 4,还是2 1 1 4,都会被看作是2 1 1 4这一种情况,因此本题是在遍历中不考虑结果顺序。 背包问题中只需考虑…

AcWing:并查集

并查集理论基础并查集的作用是什么:将两个集合合并。询问两个元素是否在一个集合当中。如果不使用并查集,要完成上述两个操作,我们需要:创建一个数组来表示某个元素在某个集合之中,如belong[x] a,即x元素在…

0201基础-组件-React

1 组件和模块 1.1 模块 对外提供特定功能的js程序,一般就是一个js文件 为什么拆分模块呢?随着业务逻辑增加,代码越来越多,越来越复杂。作用:复用js,简化js,提高js运行效率 1.2 模块化 当应用…

用gdb.attach()在gdb下断点但没停下的情况及解决办法

在python中,如果导入了pwntools,就可以使用里面的gdb.attach(io)的命令来下断点。 但是这一次鼠鼠遇到了一个情况就是下了断点,但是仍然无法在断点处开始运行,奇奇怪怪。 这是我的攻击脚本 我们运行一下。 可以看到其实已经运行起…

计算机网络模型、协议

ARP(IP->MAC)RARP(MAC->IP)TFTPHTTPDHCPNATARP(IP->MAC) 主机建立自己的ARP缓冲区存ARP列表 广播ARP请求,单播ARP响应 RARP(MAC->IP) 用于无盘工作站&am…