数据统计对于小型业务系统可能不需要集群计算。约定计算脚本,该脚本特点: 1.动态传入时间变量。便于重算 2.扑捉计算结果状态,执行时间 3.计算结果入库 mysql create definer = `mc`@`10.%.%.%` procedure `newproc`(in v_countdate date)begin/* =========
数据统计 对于小型业务系统可能不需要集群计算。约定计算脚本,该脚本特点:
1.动态传入时间变量。便于重算
2.扑捉计算结果状态,执行时间
3.计算结果入库 mysql 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'));