您当前的位置: 首页 >  sql

宝哥大数据

暂无认证

  • 1浏览

    0关注

    1029博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

MySQL--存储过程和event

宝哥大数据 发布时间:2017-11-15 10:16:06 ,浏览量:1

1、统计单个接口, 某小时的数据量
DELIMITER $$

USE `shbaobiao`$$

DROP PROCEDURE IF EXISTS `uar4_hc_asdmpbak_proc`$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `uar4_hc_asdmpbak_proc`(IN it VARCHAR(30), IN dateStr VARCHAR(30), IN h VARCHAR(10))
   BEGIN 
    INSERT INTO tmp_sum_http  SELECT DATE, HOUR, NetworkType, InterfaceType, SUM(filecount), SUM(recordcount), SUM(filesize)FROM uar4_hc_asdmpbak
    WHERE  InterfaceType=it AND DATE=dateStr AND HOUR=h GROUP BY DATE, HOUR, NetworkType, InterfaceType;


    END$$

DELIMITER ;
1.2、调用存储过程
CALL uar4_hc_asdmpbak_proc('LTEHTTP', '20171102', '00');
1.3、使用event,定时执行,指定时间实行存储过程,统计一个小时的数据情况。
DELIMITER $$

USE shbaobiao$$
DROP EVENT IF EXISTS `e_test`$$
CREATE  EVENT `e_test`

ON SCHEDULE AT '2017-11-15 22:22:05' 
ON COMPLETION PRESERVE 


DO
    BEGIN
         CALL uar4_hc_asdmpbak_proc('LTEHTTP', '20171102', '01');
    END$$

DELIMITER ;
1.4、指定时间统计历史数据
DELIMITER $$

USE shbaobiao$$
DROP EVENT IF EXISTS `e_test`$$
CREATE  EVENT `e_test`

ON SCHEDULE AT '2017-11-15 22:39:05' 
ON COMPLETION PRESERVE 


DO
    BEGIN

         CALL uar4_hc_asdmpbak_proc('LTEHTTP', DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 13 DAY), '%Y%c%d'), DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 13 DAY), '%H'));
    END$$

DELIMITER ;


1.5、从指定时间开始,每小时进行一次统计
DELIMITER $$

USE shbaobiao$$
DROP EVENT IF EXISTS `e_test`$$
CREATE  EVENT `e_test`
-- 从现在开始每小时执行一次定时任务
ON SCHEDULE EVERY 1 HOUR  STARTS CURRENT_TIMESTAMP
ON COMPLETION PRESERVE 


DO
    BEGIN

         CALL uar4_hc_asdmpbak_proc('LTEHTTP', DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 14 DAY), '%Y%c%d'), DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 14 DAY), '%H'));
    END$$

DELIMITER ;


案例2、 统计小时粒度的数据量趋势 查询的语句
SELECT Date, Hour, NetworkType, InterfaceType, SUM(filecount), SUM(recordcount), SUM(filesize)FROM uar4_hc_asdmpbak WHERE Date='20171101' AND InterfaceType='LTEHTTP'GROUP BY Date, Hour, NetworkType, InterfaceType
2.1、存储过程

DELIMITER $$

USE `shbaobiao`$$
DROP PROCEDURE IF EXISTS uar4_hc_asdmpbak_proc$$
CREATE
    /*[DEFINER = { user | CURRENT_USER }]*/
    PROCEDURE `uar4_hc_asdmpbak_proc`(IN dateStr VARCHAR(30))
    /*LANGUAGE SQL
    | [NOT] DETERMINISTIC
    | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
    | SQL SECURITY { DEFINER | INVOKER }
    | COMMENT 'string'*/

    BEGIN
    INSERT INTO tmp_sum_http  SELECT DATE, HOUR, NetworkType, InterfaceType, SUM(filecount), SUM(recordcount), SUM(filesize)FROM uar4_hc_asdmpbak 
    WHERE DATE=dateStr AND InterfaceType='LTEHTTP' GROUP BY DATE, HOUR, NetworkType, InterfaceType;

    END$$

DELIMITER ;

2.2、调用

CALL uar4_hc_asdmpbak_proc('20171104');
关注
打赏
1587549273
查看更多评论
立即登录/注册

微信扫码登录

0.0422s