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

前言

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

通用业务平台系列

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

适合哪类人学

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

你将收获什么

  • 预警平台架构如何设计

预警平台设计

场景数据获取架构图

在这里插入图片描述

报警规则过滤架构图

在这里插入图片描述

记录待发送报警架构图

在这里插入图片描述

报警发送

在这里插入图片描述

涉及数据库脚本

预警平台相关脚本

-- 报警渠道信息
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='预警基本信息详细统计表';

总结

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

猜你喜欢

转载自blog.csdn.net/u012829124/article/details/129353571