/*-- ----------------------------

-- 先删除  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语句创建)...相关推荐

  1. MySQL数据库怎么查看er图表_详解 Navicat 查看方式之ER图表

    Navicat 在主窗口查看对象类型的方法有三种,分别是列表.详细信息.ER图表.默认情况下,Navicat 使用"列表"查看对象类型.这三种查看类型拥有不同的特点,本教程将详解 ...

  2. mysql自动同步数据_MySQL数据库实现双向自动同步

    [IT168 技术]本文将探讨如何通过MySQL数据库的高级特性,实现数据库的双向自动同步,确保数据的冗余与完整性.通过以往真实的项目实战与经验,把操作实施过程全部记录下来,主要有以下几个主要内容. ...

  3. mysql的存储过程原理_mysql存储过程原理与用法详解

    本文实例讲述了Mysql存储过程原理与用法.分享给大家供大家参考,具体如下: 本文内容: 什么是存储过程 存储过程的创建 存储过程的使用 查看存储过程 修改存储过程 删除存储过程 首发日期:2018- ...

  4. mysql 配置自动截断_MySql超长自动截断实例详解

    MySql超长自动截断实例详解 小伙伴问到一个问题,为啥在项目中调用插入或者更新语句时超长的字无法自动截断,而在navicat中直接执行是可以自动截断的? 如下 CREATE TABLE `p_app ...

  5. mysql数据表操作_MySQL数据表基本操作实例详解

    本文实例讲述了MySQL数据表基本操作.分享给大家供大家参考,具体如下: 数据表的基本操作 1.主键约束要求主键列的数据唯一,并且不允许为空.主键能够唯一地识别表中的一条记录,可以结合外键来定义不同数 ...

  6. mysql 超长 java 问题_MySql超长自动截断实例详解

    MySql超长自动截断实例详解 小伙伴问到一个问题,为啥在项目中调用插入或者更新语句时超长的字无法自动截断,而在navicat中直接执行是可以自动截断的? 如下 CREATE TABLE `p_app ...

  7. mysql 秒杀 隔离级别_MySQL 四种隔离级别详解,看完吊打面试官

    什么是事务 事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消.也就是事务具有原子性,一个事务中的一系列的操作要么全部成功,要么一个都不做. 事务的结束有 ...

  8. mysql 二叉树表设计_Mysql 索引模型 B+ 树详解

    一.认识二叉树 首先,在了解 mysql 中的 B+ 树之前,我们需要搞懂什么是二叉树.二叉树是一种常见的非线形数据结构,数据是以一对多的形态组织起来的,我画了一张图来帮助你理解: 在二叉树中,有一种 ...

  9. mysql函数编写格式_MySQL函数基础——字符串函数详解

    昨天,咱们对MySQL的数学函数进行了讲解,今天,咱们再来解析MySQL字符串函数. 字符串函数主要用来处理数据库中的字符串数据,MySQL中字符串函数有:计算字符串长度函数.字符串合并函数.字符串替 ...

最新文章

  1. etcd 笔记(03)— etcd 客户端使用(键值的增、删、改、查)、watch监测键、lease使用(创建租约、撤销租约、刷新租期、查询租期)
  2. Spring 面向切面编程
  3. Cocos2d-x win7 + vs2010 配置图文详解(亲测)
  4. 设计模式:组合模式(Composite Pattern)
  5. 缺乏管理思想的管理软件是没有灵魂的
  6. 如何提高还在用window系统的编码硬效率
  7. Java和操作系统交互细节
  8. www.cnblog.org无法访问了
  9. Eclipse 工具栏不见了
  10. spring 属性注入
  11. python -m的作用
  12. Atitit python3.0 3.3 3.5 3.6 新特性 Python2.7新特性1Python 3_x 新特性1python3.4新特性1python3.5新特性1值得关注的新特性1Pyth
  13. matlab拟合函数导出,excel里曲线拟合的公式怎么导出?()
  14. MATLAB一元三次求极值,MATLAB实现一元三次方程求解/盛金公式
  15. java 获取微信公众号文章 使用搜狗微信搜索
  16. 动态菜单,根据登录用户权限返回不同菜单,登录完成跳转到不同的首页
  17. C#编程基础——循环语句
  18. JAVA idea建包的时候com.不分开
  19. ApacheCN《Sklearn 与 TensorFlow 机器学习实用指南》 第11章 项目训练深层神经网络(梯度消失与梯度爆炸,选择初始化,选择激活函数)
  20. 从0开发一个Dapp

热门文章

  1. GitHub 多次宕机的罪魁祸首竟是 MySQL?
  2. 华为称不会退出海外市场;英伟达证实遭遇黑客攻击;TypeScript 4.6发布 | 极客头条...
  3. 劝雷军别造车?王传福:别浪费钱和时间;华为面向全球招募天才少年:不限学历/学校;腾讯光子工作室强制不加班双休|极客头条...
  4. 燃烧吧!开发者们,一起在云端构建开放成熟的 ARM 生态!
  5. 华为今年不会推出运行鸿蒙OS的手机;Deno 1.3.2发布|极客头条
  6. “新基建”提速,数字化硬核人才,你们准备好了吗?
  7. 提气!阿里平头哥三篇论文入选 ISCA
  8. Python 图像处理实战 | 图像的灰度非线性变换之对数变换、伽马变换
  9. 打开容器世界的大门: Docker、POD 初探
  10. 春眠不觉晓,SQL 知多少?| 原力计划