前言
在上家公司,随着业务的不断拓展(从支持单个国家单个主体演变成支持多个国家多个主体),对预警的诉求越来越紧迫; 如何保障业务的稳定性那?预警可以帮我们提前甄别风险,从而让我们可以在风险来临前将其消灭; 每个业务组写自己的报警规则会极大的降低开发效率,于是我们设计一套通用的预警平台来解该问题;
通用业务平台系列
通用业务平台设计(一):概览 通用业务平台设计(二):扩展多国家业务 通用业务平台设计(三):自动化打包平台建设 通用业务平台设计(四):灰度发布架构升级 通用业务平台设计(五):预警平台建设
学习完这篇文章你将收获什么
适合哪类人学
后端开发(无论你是刚入门小白还是资深开发都能从中有所受益) 运维(无论你是刚入门小白还是资深运维都能从中有所受益)
你将收获什么
预警平台设计
场景数据获取架构图
报警规则过滤架构图
记录待发送报警架构图
报警发送
涉及数据库脚本
预警平台相关脚本
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 = '预警基本信息详细统计表' ;
总结
预警平台的建设远超预期,多次提前预警风险,从而避免故障发生 预警平台投入使用推广,获得了业务团队的一致好评 当业务发展一定规模后,公司在竞争中获胜的一个很关键因素在于谁更少的犯错,建立一个提前甄别风险的系统是必要的