zoukankan      html  css  js  c++  java
  • mysql用视图和事件实现数据间隔插入数据到表

    创建视图

    CREATE ALGORITHM = UNDEFINED DEFINER = `root`@`192.168.*.*` SQL SECURITY DEFINER VIEW `perfdata` AS SELECT
    	`nagios_hosts`.`display_name` AS `hostname`,
    	`nagios_services`.`display_name` AS `servicename`,
    	`nagios_servicechecks`.`end_time` AS `timeline`,
    	`getPerfKey` (
    		`nagios_servicechecks`.`perfdata`,
    		1
    	) AS `perfkey`,
    	`getPerfValue` (
    		`nagios_servicechecks`.`perfdata`,
    		1
    	) AS `perfvalue`
    FROM
    	(
    		(
    			`nagios_hosts`
    			LEFT JOIN `nagios_services` ON (
    				(
    					`nagios_hosts`.`host_object_id` = `nagios_services`.`host_object_id`
    				)
    			)
    		)
    		LEFT JOIN `nagios_servicechecks` ON (
    			(
    				`nagios_services`.`service_object_id` = `nagios_servicechecks`.`service_object_id`
    			)
    		)
    	)
    WHERE
    	(
    		(
    			`nagios_servicechecks`.`end_time` BETWEEN (now() + INTERVAL -(6) MINUTE)
    			AND now()
    		)
    		AND `nagios_hosts`.`display_name` IN (
    			SELECT DISTINCT
    				`nagios_hosts`.`display_name`
    			FROM
    				(
    					`nagios_services`
    					LEFT JOIN `nagios_hosts` ON (
    						(
    							`nagios_services`.`host_object_id` = `nagios_hosts`.`host_object_id`
    						)
    					)
    				)
    		)
    		AND `nagios_services`.`display_name` IN (
    			SELECT DISTINCT
    				`nagios_services`.`display_name`
    			FROM
    				(
    					`nagios_services`
    					LEFT JOIN `nagios_hosts` ON (
    						(
    							`nagios_services`.`host_object_id` = `nagios_hosts`.`host_object_id`
    						)
    					)
    				)
    		)
    		AND (
    			`getPerfValue` (
    				`nagios_servicechecks`.`perfdata`,
    				1
    			) <> ''
    		)
    	)
    UNION
    	SELECT
    		`nagios_hosts`.`display_name` AS `hostname`,
    		`nagios_services`.`display_name` AS `servicename`,
    		`nagios_servicechecks`.`end_time` AS `timeline`,
    		`getPerfKey` (
    			`nagios_servicechecks`.`perfdata`,
    			2
    		) AS `perfkey`,
    		`getPerfValue` (
    			`nagios_servicechecks`.`perfdata`,
    			2
    		) AS `perfvalue`
    	FROM
    		(
    			(
    				`nagios_hosts`
    				LEFT JOIN `nagios_services` ON (
    					(
    						`nagios_hosts`.`host_object_id` = `nagios_services`.`host_object_id`
    					)
    				)
    			)
    			LEFT JOIN `nagios_servicechecks` ON (
    				(
    					`nagios_services`.`service_object_id` = `nagios_servicechecks`.`service_object_id`
    				)
    			)
    		)
    	WHERE
    		(
    			(
    				`nagios_servicechecks`.`end_time` BETWEEN (now() + INTERVAL -(6) MINUTE)
    				AND now()
    			)
    			AND `nagios_hosts`.`display_name` IN (
    				SELECT DISTINCT
    					`nagios_hosts`.`display_name`
    				FROM
    					(
    						`nagios_services`
    						LEFT JOIN `nagios_hosts` ON (
    							(
    								`nagios_services`.`host_object_id` = `nagios_hosts`.`host_object_id`
    							)
    						)
    					)
    			)
    			AND `nagios_services`.`display_name` IN (
    				SELECT DISTINCT
    					`nagios_services`.`display_name`
    				FROM
    					(
    						`nagios_services`
    						LEFT JOIN `nagios_hosts` ON (
    							(
    								`nagios_services`.`host_object_id` = `nagios_hosts`.`host_object_id`
    							)
    						)
    					)
    			)
    			AND (
    				`getPerfValue` (
    					`nagios_servicechecks`.`perfdata`,
    					2
    				) <> ''
    			)
    		)
    	UNION
    		SELECT
    			`nagios_hosts`.`display_name` AS `hostname`,
    			`nagios_services`.`display_name` AS `servicename`,
    			`nagios_servicechecks`.`end_time` AS `timeline`,
    			`getPerfKey` (
    				`nagios_servicechecks`.`perfdata`,
    				3
    			) AS `perfkey`,
    			`getPerfValue` (
    				`nagios_servicechecks`.`perfdata`,
    				3
    			) AS `perfvalue`
    		FROM
    			(
    				(
    					`nagios_hosts`
    					LEFT JOIN `nagios_services` ON (
    						(
    							`nagios_hosts`.`host_object_id` = `nagios_services`.`host_object_id`
    						)
    					)
    				)
    				LEFT JOIN `nagios_servicechecks` ON (
    					(
    						`nagios_services`.`service_object_id` = `nagios_servicechecks`.`service_object_id`
    					)
    				)
    			)
    		WHERE
    			(
    				(
    					`nagios_servicechecks`.`end_time` BETWEEN (now() + INTERVAL -(6) MINUTE)
    					AND now()
    				)
    				AND `nagios_hosts`.`display_name` IN (
    					SELECT DISTINCT
    						`nagios_hosts`.`display_name`
    					FROM
    						(
    							`nagios_services`
    							LEFT JOIN `nagios_hosts` ON (
    								(
    									`nagios_services`.`host_object_id` = `nagios_hosts`.`host_object_id`
    								)
    							)
    						)
    				)
    				AND `nagios_services`.`display_name` IN (
    					SELECT DISTINCT
    						`nagios_services`.`display_name`
    					FROM
    						(
    							`nagios_services`
    							LEFT JOIN `nagios_hosts` ON (
    								(
    									`nagios_services`.`host_object_id` = `nagios_hosts`.`host_object_id`
    								)
    							)
    						)
    				)
    				AND (
    					`getPerfValue` (
    						`nagios_servicechecks`.`perfdata`,
    						3
    					) <> ''
    				)
    			)
    

    创建表

    CREATE TABLE `getPerfdata` (
      `NO` bigint(20) NOT NULL AUTO_INCREMENT,
      `hostname` varchar(255) DEFAULT NULL,
      `servicename` varchar(255) DEFAULT NULL,
      `timeline` datetime DEFAULT NULL,
      `perfkey` varchar(255) DEFAULT NULL,
      `perfvalue` varchar(255) DEFAULT NULL,
      PRIMARY KEY (`NO`),
      KEY `NO` (`NO`)
    ) ENGINE=InnoDB AUTO_INCREMENT=16739 DEFAULT CHARSET=utf8;
    

    打开全局事件调度

    mysql> set global event_scheduler=on;
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> select @@event_scheduler;
    +-------------------+
    | @@event_scheduler |
    +-------------------+
    | ON                |
    +-------------------+
    1 row in set (0.00 sec
    

      

    创建事件实现视图数据按照计划插入表

    CREATE DEFINER = `root`@`192.168.*.*` EVENT `insertPerfdata` ON SCHEDULE EVERY 6 MINUTE STARTS '2019-01-29 11:24:16' ON COMPLETION PRESERVE ENABLE DO
    	INSERT INTO nagios.getPerfdata (
    		hostname,
    		servicename,
    		timeline,
    		perfkey,
    		perfvalue
    	) SELECT
    		*
    	FROM
    		nagios.perfdata
    

      

      

      

      

  • 相关阅读:
    Read-Copy Update Implementation For Non-Cache-Coherent Systems
    10 华电内部文档搜索系统 search04
    10 华电内部文档搜索系统 search05
    lucene4
    10 华电内部文档搜索系统 search01
    01 lucene基础 北风网项目培训 Lucene实践课程 索引
    01 lucene基础 北风网项目培训 Lucene实践课程 系统架构
    01 lucene基础 北风网项目培训 Lucene实践课程 Lucene概述
    第五章 大数据平台与技术 第13讲 NoSQL数据库
    第五章 大数据平台与技术 第12讲 大数据处理平台Spark
  • 原文地址:https://www.cnblogs.com/idvcn/p/10333830.html
Copyright © 2011-2022 走看看