数据统计对于小型业务系统可能不需要集群计算。约定计算脚本,该脚本特点: 1.动态传入时间变量。便于重算 2.扑捉计算结果状态,执行时间 3.计算结果入库 MySQL CREATE DEFINER = `mc`@`10.%.%.%` PROCEDURE `NewProc`(IN v_countDate DATE)BEGIN/* =========
数据统计 对于小型业务系统可能不需要集群计算。约定计算脚本,该脚本特点:
1.动态传入时间变量。便于重算
2.扑捉计算结果状态,执行时间
3.计算结果入库 MySQL 本文来源gaodaimacom搞#^代%!码&网( <style> .CodeEntity .code_pieces ul.piece_anchor{width:25px;position:absolute;top:25px;left:-30px;z-index:1000;} .CodeEntity .code_pieces ul.piece_anchor li{width:25px;background: #efe;margin-bottom:2px;} .CodeEntity .code_pieces ul.piece_anchor li{border-left:3px #40AA63 solid;border-right:3px #efe solid;} .CodeEntity .code_pieces ul.piece_anchor li:hover{border-right:3px #40AA63 solid;border-left:3px #efe solid;} .CodeEntity .code_pieces ul.piece_anchor li a{color: #333;padding: 3px 10px;} .CodeEntity .code_pieces .jump_to_code{visibility:hidden;position:relative;} .CodeEntity .code_pieces .code_piece:hover .jump_to_code{visibility:visible;} .CodeEntity .code_pieces .code_piece:hover .jump_to_code a{text-decoration:none;} .CodeEntity .code_pieces h2 i{float:right;font-style:normal;font-weight:normal;} .CodeEntity .code_pieces h2 i a{font-size:9pt;background: #FFFFFF;color:#00A;padding: 2px 5px;text-decoration:none;} </style> <!—ecms
- –> <!—ecms
- $velocityCount
–> <!—ecms
–>
CREATE DEFINER = `mc`@`10.%.%.%` PROCEDURE `NewProc`(IN v_countDate DATE)BEGIN/* ======================================================================= * 系统名 : **数据平台 * 子系统名 : 报告统计-独立IP-TCP连接数(天) * PROC名 : proc_stat_service_idc_ip_tcp_day * 概要 : 每天从mc_stat_trends 按服务器IP统计独立IP TCP连接数的平均值和最大值指标。 * 改版履历 : * 版本 日期 作者名 备注 * 1.0.1 2015.03.19 #### 初次作成 * ======================================================================= */-- 输入参数变量(v_beginTime:执行开始时间;v_endTime:执行结束时间;v_countDate:查询时间,默认1天前;v_date_type:时间周期)DECLARE v_beginTime DATETIME DEFAULT NOW();DECLARE v_endTime DATETIME; DECLARE v_date_type VARCHAR(20) DEFAULT 'day';DECLARE v_status int(11) DEFAULT 1;DECLARE v_log_title VARCHAR(100) DEFAULT 'proc_stat_service_idc_ip_tcp_day';-- 游标结果变量DECLARE r_udate DATETIME;DECLARE r_date_type VARCHAR(20);DECLARE r_service VARCHAR(100);DECLARE r_idc VARCHAR(100);DECLARE r_ip VARCHAR(100);DECLARE r_val_max FLOAT(20,2);DECLARE r_val_avg FLOAT(20,2); -- 遍历数据结束标志DECLARE done INT DEFAULT FALSE;-- 游标DECLARE cur CURSOR FOR SELECT v_countDate AS udate,v_date_type AS date_type, service, idc,ip, AVG(value_avg),MAX(value_max) FROM view_mc_stat_trends WHERE itemname='Established connections' AND DATE(udate)=v_countDate GROUP BY ip; -- 将结束标志绑定到游标 DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET v_status=0; DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; OPEN cur; read_loop:LOOP FETCH cur INTO r_udate,r_date_type,r_service,r_idc,r_ip,r_val_avg,r_val_max; IF done THEN LEAVE read_loop; END IF; REPLACE INTO mc_stat_service_idc_ip_tcp(udate,date_type,service,idc,ip,val_avg,val_max) VALUES(r_udate,r_date_type,r_service,r_idc,r_ip,r_val_avg,r_val_max); END LOOP;CLOSE cur; -- 结束时间SET v_endTime = NOW();-- 添加JOB执行日志INSERT INTO t_joblog(beginDate,endDate,jobName,jobType,STATUS,haoshi,createDate) VALUES(v_beginTime,v_endTime,v_log_title,'PROCEDURE',v_status,v_endTime-v_beginTime,NOW());END;
CREATE DEFINER=`root`@`localhost` EVENT `NewEvent`ON SCHEDULE EVERY 1 DAY STARTS '2015-03-25 03:20:00'ON COMPLETION PRESERVEENABLEDOCALL proc_stat_service_tcp_day(DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 1 DAY),'%Y-%m-%d'));