mysql event同步数据库_mysql 数据库Event定时任务使用详解(Navicat 及直接SQL语句创建)...
/*-- ----------------------------
-- 先删除 alert_msg 数据库表数据
-- 再同步 alert_msg 更新相关数据
-- ----------------------------*/
DELETE FROM monitor_screen.alarm_msg;
INSERT INTO monitor_screen.alarm_msg(id, alarm_id, resource_type, alarm_type, created_time, content, `level`)
SELECT UUID() AS id,
id AS alarm_id,
"2" AS resource_type,
CASE alarm_type
WHEN "state" THEN "状态告警"
END AS "alarm_type",
created_time,
description AS content,
CASE `level`
WHEN "general" THEN "1"
WHEN "serious" THEN "2"
WHEN "general" THEN "3"
END AS "level"
FROM alarm;
/*-- ----------------------------
-- 先删除 overall_statistic 数据库表数据
-- 再同步 overall_statistic 更新相关数据
-- ----------------------------*/
DELETE FROM monitor_screen.overall_statistic;
INSERT INTO monitor_screen.overall_statistic(id, user_num_online, user_num_all, tenant_num, business_num, vm_num)
select a.id, b.user_num_online, c.user_num_all, d.tenant_num, e.business_num, f.vm_num FROM
(SELECT UUID() AS id) AS a join
(SELECT COUNT(id) AS user_num_online from `user` WHERE login_state=0 AND deleted=0) AS b join
(SELECT COUNT(id) AS user_num_all from `user` WHERE deleted=0) AS c join
(SELECT COUNT(id) AS tenant_num FROM `tenant` WHERE deleted=0 ) AS d join
(SELECT COUNT(id) AS business_num FROM `business` WHERE deleted=0 ) AS e join
(SELECT COUNT(id) AS vm_num FROM `instance` WHERE deleted=0 ) AS f ;
/*-- ----------------------------
-- 先删除 tenant_res_spnd_t5 数据库表数据
-- 再同步 tenant_res_spnd_t5 更新相关数据
-- ----------------------------*/
DELETE FROM monitor_screen.tenant_res_spnd_t5;
INSERT INTO monitor_screen.tenant_res_spnd_t5
SELECT UUID() AS id,tenant.`name` AS tenant_name, vm_num
FROM (
(SELECT tenant_id, COUNT(id) AS vm_num FROM instance WHERE instance.deleted != 1 GROUP BY tenant_id) AS a
LEFT JOIN
tenant
ON a.tenant_id=tenant.id AND tenant.deleted != 1
);
/*-- ----------------------------
-- 先删除 resource_spending 数据库表数据
-- 再同步 resource_spending 更新相关数据
-- ----------------------------*/
DELETE FROM monitor_screen.resource_spending;
INSERT INTO monitor_screen.resource_spending(id, created_time, `hour`, cpu_use_ratio, memory_use_ratio)
SELECT UUID() AS id,
created_time,
date_format(created_time, '%H') AS `hour`,
AVG(cpu_rate) AS cpu_use_ratio,
AVG(memory_rate) AS memory_use_ratio
FROM instance
GROUP BY date_format(created_time, '%Y-%m-%d %H');
/*-- ----------------------------
-- 先删除 cloud_tenant 数据库表数据
-- 再同步 cloud_tenant 更新相关数据
-- ----------------------------*/
DELETE FROM monitor_screen.cloud_tenant;
INSERT INTO monitor_screen.cloud_tenant
SELECT
UUID() AS id,
tenant.`id` AS tenant_id,
tenant.`name` AS tenant_name,
NULL AS lon,
NULL AS lat,
COUNT(DISTINCT CASE WHEN `user`.login_state = 0 AND `user`.deleted != 1 THEN `user`.id END) AS online_user_num,
COUNT(DISTINCT CASE WHEN instance.`status` = 'active' AND instance.deleted != 1 THEN instance.id END) AS online_vm_num,
COUNT(DISTINCT CASE WHEN `user`.deleted != 1 THEN `user`.id END) AS user_num,
COUNT(DISTINCT CASE WHEN `business`.deleted != 1 THEN business.id END) AS business_num,
COUNT(DISTINCT CASE WHEN instance.deleted != 1 THEN instance.id END) AS vm_num,
COUNT(DISTINCT CASE WHEN alarm.`status` != 'fix' THEN alarm.id END) AS sec_alarm_num,
AVG( instance.cpu_rate) AS vcpu_use_ratio,
AVG( instance.memory_rate) AS memory_use_ratio
FROM tenant LEFT JOIN tenant_user ON tenant_user.tenant_id = tenant.id
LEFT JOIN `user` ON tenant_user.user_id = `user`.id
LEFT JOIN business ON business.tenant_id = tenant.id
LEFT JOIN alarm ON alarm.tenant_uuid = tenant.uuid
LEFT JOIN instance ON instance.tenant_id = tenant.id
GROUP BY tenant.id;
/*-- ----------------------------
-- 先删除 data_center 数据库表数据
-- 再同步 data_center 更新相关数据
-- ----------------------------*/
DELETE FROM monitor_screen.data_center;
INSERT INTO monitor_screen.data_center
SELECT
UUID() AS id,
provider.id AS provider_id,
provider.`name` AS provider_name,
NULL AS lon,
NULL AS lat,
COUNT(DISTINCT virtual_server.id) AS computing_server_num,
COUNT(DISTINCT storage_device.id) AS storage_server_num,
COUNT(DISTINCT network_device.id) AS net_server_num,
COUNT(DISTINCT instance.id) AS visual_machine_num,
SUM(flavor.vcpus) AS visual_cpu_num,
SUM(flavor.memory_mb) AS visual_memory_capacity,
SUM(flavor.disk) AS visual_disc_capacity
FROM provider LEFT JOIN virtual_server ON provider.id = virtual_server.provider_id
LEFT JOIN storage_device ON provider.id = storage_device.provider_id
LEFT JOIN network_device ON provider.id = network_device.provider_id
LEFT JOIN instance ON provider.id = instance.provider_id
LEFT JOIN flavor ON instance.flavor_uuid = flavor.uuid
LEFT JOIN physical_resource ON provider.id = physical_resource.provider_id
GROUP BY provider.id;
/*-- ----------------------------
-- 先删除 link 数据库表数据
-- 再同步 link 更新相关数据
-- ----------------------------*/
DELETE FROM monitor_screen.link;
INSERT INTO monitor_screen.link
SELECT
UUID() AS id,
tenant_id,
provider_id
FROM tenant_provider;
/*-- ----------------------------
-- 先删除 vm_resource_statistic 数据库表数据
-- 再同步 vm_resource_statistic 更新相关数据
-- ----------------------------*/
DELETE FROM monitor_screen.vm_resource_statistic;
INSERT INTO monitor_screen.vm_resource_statistic
SELECT
UUID() AS id,
SUM(vcpu_used) AS `assigned_vcpu_num`,
SUM(memory_used) AS `assigned_vmemory_capacity`,
SUM(storage_used) AS `assigned_vdisc_capacity`,
SUM(memory) AS `vmemory_capacity`,
SUM(`storage`) AS `vdisk_capacity`
FROM physical_resource;
mysql event同步数据库_mysql 数据库Event定时任务使用详解(Navicat 及直接SQL语句创建)...相关推荐
- MySQL数据库怎么查看er图表_详解 Navicat 查看方式之ER图表
Navicat 在主窗口查看对象类型的方法有三种,分别是列表.详细信息.ER图表.默认情况下,Navicat 使用"列表"查看对象类型.这三种查看类型拥有不同的特点,本教程将详解 ...
- mysql自动同步数据_MySQL数据库实现双向自动同步
[IT168 技术]本文将探讨如何通过MySQL数据库的高级特性,实现数据库的双向自动同步,确保数据的冗余与完整性.通过以往真实的项目实战与经验,把操作实施过程全部记录下来,主要有以下几个主要内容. ...
- mysql的存储过程原理_mysql存储过程原理与用法详解
本文实例讲述了Mysql存储过程原理与用法.分享给大家供大家参考,具体如下: 本文内容: 什么是存储过程 存储过程的创建 存储过程的使用 查看存储过程 修改存储过程 删除存储过程 首发日期:2018- ...
- mysql 配置自动截断_MySql超长自动截断实例详解
MySql超长自动截断实例详解 小伙伴问到一个问题,为啥在项目中调用插入或者更新语句时超长的字无法自动截断,而在navicat中直接执行是可以自动截断的? 如下 CREATE TABLE `p_app ...
- mysql数据表操作_MySQL数据表基本操作实例详解
本文实例讲述了MySQL数据表基本操作.分享给大家供大家参考,具体如下: 数据表的基本操作 1.主键约束要求主键列的数据唯一,并且不允许为空.主键能够唯一地识别表中的一条记录,可以结合外键来定义不同数 ...
- mysql 超长 java 问题_MySql超长自动截断实例详解
MySql超长自动截断实例详解 小伙伴问到一个问题,为啥在项目中调用插入或者更新语句时超长的字无法自动截断,而在navicat中直接执行是可以自动截断的? 如下 CREATE TABLE `p_app ...
- mysql 秒杀 隔离级别_MySQL 四种隔离级别详解,看完吊打面试官
什么是事务 事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消.也就是事务具有原子性,一个事务中的一系列的操作要么全部成功,要么一个都不做. 事务的结束有 ...
- mysql 二叉树表设计_Mysql 索引模型 B+ 树详解
一.认识二叉树 首先,在了解 mysql 中的 B+ 树之前,我们需要搞懂什么是二叉树.二叉树是一种常见的非线形数据结构,数据是以一对多的形态组织起来的,我画了一张图来帮助你理解: 在二叉树中,有一种 ...
- mysql函数编写格式_MySQL函数基础——字符串函数详解
昨天,咱们对MySQL的数学函数进行了讲解,今天,咱们再来解析MySQL字符串函数. 字符串函数主要用来处理数据库中的字符串数据,MySQL中字符串函数有:计算字符串长度函数.字符串合并函数.字符串替 ...
最新文章
- etcd 笔记(03)— etcd 客户端使用(键值的增、删、改、查)、watch监测键、lease使用(创建租约、撤销租约、刷新租期、查询租期)
- Spring 面向切面编程
- Cocos2d-x win7 + vs2010 配置图文详解(亲测)
- 设计模式:组合模式(Composite Pattern)
- 缺乏管理思想的管理软件是没有灵魂的
- 如何提高还在用window系统的编码硬效率
- Java和操作系统交互细节
- www.cnblog.org无法访问了
- Eclipse 工具栏不见了
- spring 属性注入
- python -m的作用
- Atitit python3.0 3.3 3.5 3.6 新特性 Python2.7新特性1Python 3_x 新特性1python3.4新特性1python3.5新特性1值得关注的新特性1Pyth
- matlab拟合函数导出,excel里曲线拟合的公式怎么导出?()
- MATLAB一元三次求极值,MATLAB实现一元三次方程求解/盛金公式
- java 获取微信公众号文章 使用搜狗微信搜索
- 动态菜单,根据登录用户权限返回不同菜单,登录完成跳转到不同的首页
- C#编程基础——循环语句
- JAVA idea建包的时候com.不分开
- ApacheCN《Sklearn 与 TensorFlow 机器学习实用指南》 第11章 项目训练深层神经网络(梯度消失与梯度爆炸,选择初始化,选择激活函数)
- 从0开发一个Dapp
热门文章
- GitHub 多次宕机的罪魁祸首竟是 MySQL?
- 华为称不会退出海外市场;英伟达证实遭遇黑客攻击;TypeScript 4.6发布 | 极客头条...
- 劝雷军别造车?王传福:别浪费钱和时间;华为面向全球招募天才少年:不限学历/学校;腾讯光子工作室强制不加班双休|极客头条...
- 燃烧吧!开发者们,一起在云端构建开放成熟的 ARM 生态!
- 华为今年不会推出运行鸿蒙OS的手机;Deno 1.3.2发布|极客头条
- “新基建”提速,数字化硬核人才,你们准备好了吗?
- 提气!阿里平头哥三篇论文入选 ISCA
- Python 图像处理实战 | 图像的灰度非线性变换之对数变换、伽马变换
- 打开容器世界的大门: Docker、POD 初探
- 春眠不觉晓,SQL 知多少?| 原力计划