10 Commit-ok bca980eae6 ... 3f782a147d

Szerző SHA1 Üzenet Dátum
  zhangpeng 3f782a147d 替换掉应用访问分析 1 éve
  zhangpeng 440670a292 Merge remote-tracking branch 'origin/main' into peng 1 éve
  Ping ceef0bb06d 增加 bi_host_stat_2 1 éve
  Ping 2628a0bbbf month, year视图增加告警时长 1 éve
  Ping 271069c5f0 day, hour视图增加告警时长 1 éve
  Ping 22e718bad6 视图增加采集次数字段 1 éve
  zhangpeng 991affcabd Merge remote-tracking branch 'origin/main' into peng 1 éve
  Ping 89e3c119ea 增加4张告警视图 1 éve
  Ping 76bca8548b Merge commit '081d20bcbc6a523736bd9fc8a655338339fc4a29' 1 éve
  Ping dd272827cb 增加bi_app_access_stat按小时的存储过程 1 éve

+ 85 - 0
all.sql

@@ -1167,6 +1167,91 @@ INSERT INTO bi_host_stat
 	GROUP BY substring(thedvalue,1,4),COMPANY,target,dim,group_agg,unit,cloud;
 
 
+DROP TABLE IF EXISTS `bi_host_stat_2`;
+CREATE TABLE `bi_host_stat_2` (
+	`dtype` VARCHAR ( 10 ) NOT NULL DEFAULT '',
+	`thedvalue` VARCHAR ( 10 ) DEFAULT NULL,
+	`COMPANY` VARCHAR ( 30 ) DEFAULT NULL COMMENT '数据来源',
+	`dim` VARCHAR ( 20 ) NOT NULL DEFAULT '',
+	`CPU` DECIMAL ( 50, 20 ) DEFAULT NULL,
+	`内存` DECIMAL ( 50, 20 ) DEFAULT NULL,
+	`硬盘` DECIMAL ( 50, 20 ) DEFAULT NULL,
+	`CPU unit` VARCHAR ( 10 ) NOT NULL DEFAULT 'CPU unit' ,
+	`内存 unit` VARCHAR ( 10 ) NOT NULL DEFAULT '内存 unit' ,
+	`硬盘 unit` VARCHAR ( 10 ) NOT NULL DEFAULT '硬盘 unit' ,
+	 `cloud` varchar(255) DEFAULT NULL COMMENT '云平台'
+) ENGINE = InnoDB DEFAULT CHARSET = utf8;
+
+INSERT INTO bi_host_stat_2
+select 
+		'HOUR' as dtype,
+		a.thedvalue,
+		a.COMPANY,
+		case b.mm when 1 then '额定量' when 2 then '分配量' when 3 then '剩余可用' when 4 then '分配占比' else '' end as dim,
+		round(case b.mm when 1 then dim1 when 2 then dim4 when 3 then dim7 when 4 then IF(dim1<>0,dim4/dim1,0) end,2) as 'CPU', 
+		round(case b.mm when 1 then dim2 when 2 then dim5 when 3 then dim8 when 4 then IF(dim2<>0,dim5/dim2,0) end,2) as '内存', 
+		round(case b.mm when 1 then dim3 when 2 then dim6 when 3 then dim9 when 4 then IF(dim3<>0,dim6/dim3,0) end,2) as '硬盘', 
+		'%' as 'CPU unit', IF(b.mm=4, '%','GB') as '内存 unit', IF(b.mm=4, '%','GB') as '硬盘 unit', 
+	cloud from (
+	SELECT
+		date_format( temp1.CREATE_TIME, '%Y%m%d%H' ) AS thedvalue,
+	CASE
+			temp1.COMPANY 
+			WHEN 'huawei' THEN
+			'太极云资源池' 
+			WHEN 'huawei-xc' THEN
+			'信创云资源池' 
+			WHEN 'shouxin' THEN
+			'首信云资源池' 
+			WHEN 'unicom' THEN
+			'联通云资源池' ELSE '其它' 
+		END AS COMPANY,
+		avg( IND_VALUE_HOST_CPU_UTILIZATION ) AS dim1,
+		MAX( IND_VALUE_HOST_MEMORY_TOTAL ) AS dim2,
+		MAX( IND_VALUE_HOST_DISK_TOTAL ) AS dim3,
+		avg( IND_VALUE_HOST_CPU_TOP ) AS dim4,
+		MAX( IND_VALUE_HOST_MEMORY_USED ) AS dim5,
+		MAX( IND_VALUE_HOST_DISK_USED ) AS dim6,
+		avg( IND_VALUE_HOST_CPU_UTILIZATION_LOW ) AS dim7,
+		MAX( IND_VALUE_HOST_MEMORY_UNUSED ) AS dim8,
+		MAX( IND_VALUE_HOST_DISK_UNUSED ) AS dim9,
+		temp2.cloud 
+	FROM
+		app_host_stat temp1
+		LEFT JOIN itm_hardware_resources AS temp2 ON temp1.int_id = temp2.ITM_HARDWARE_RESOURCES_ID 
+	WHERE
+		temp1.COMPANY IS NOT NULL 
+	GROUP BY
+		temp1.COMPANY,
+		date_format( temp1.CREATE_TIME, '%Y%m%d%H' ),
+		temp2.cloud 
+	) a
+			cross join
+			(select 1 mm 
+			union all select 2 
+			union all select 3
+			union all select 4) b; 
+
+
+
+	INSERT INTO bi_host_stat_2
+	select 'DAY' as dtype,substring(thedvalue,1,8) AS thedvalue,COMPANY,dim,AVG(`CPU`),MAX(`内存`),MAX(`硬盘`),`CPU unit`,`内存 unit`,`硬盘 unit`,cloud  
+	from bi_host_stat_2
+	where dtype = 'HOUR'
+	GROUP BY substring(thedvalue,1,8),COMPANY,dim,`CPU unit`,`内存 unit`,`硬盘 unit`,cloud
+	
+	INSERT INTO bi_host_stat_2
+	select 'MONTH' as dtype,substring(thedvalue,1,6) AS thedvalue,COMPANY,dim,AVG(`CPU`),MAX(`内存`),MAX(`硬盘`),`CPU unit`,`内存 unit`,`硬盘 unit`,cloud
+	from bi_host_stat_2
+	where dtype = 'DAY'
+	GROUP BY substring(thedvalue,1,6),COMPANY,dim,`CPU unit`,`内存 unit`,`硬盘 unit`,cloud
+	
+	INSERT INTO bi_host_stat_2
+	select 'YEAR' as dtype,substring(thedvalue,1,4) AS thedvalue,COMPANY,dim,AVG(`CPU`),MAX(`内存`),MAX(`硬盘`),`CPU unit`,`内存 unit`,`硬盘 unit`,cloud
+	from bi_host_stat_2
+	where dtype = 'MONTH'
+	GROUP BY substring(thedvalue,1,4),COMPANY,dim,`CPU unit`,`内存 unit`,`硬盘 unit`,cloud
+
 
 	-- (7)设备回收趋势
 

+ 659 - 115
fayuan_zp

@@ -645,6 +645,7 @@ FROM
 
 ----应用系统告警趋势----
 
+
 DROP TABLE if EXISTS `bi_alm_yingyong_gaojing`;
 CREATE TABLE  `bi_alm_yingyong_gaojing`(
   `dtype` varchar(5) NOT NULL DEFAULT '' COMMENT '日期类型',
@@ -655,20 +656,21 @@ CREATE TABLE  `bi_alm_yingyong_gaojing`(
 	`PRIORITY` varchar(10) DEFAULT NULL comment '应用等级',
 	`app_type` varchar(10) DEFAULT NULL comment '应用分类',
 	`app_type_name` varchar(200) DEFAULT NULL comment '应用名称',
-	`title` VARCHAR(256) DEFAULT NULL COMMENT '告警标题',
-	`alarm_text` VARCHAR(256) DEFAULT NULL COMMENT '告警内容',
 	`alarm_count` decimal(58,4) DEFAULT NULL COMMENT '告警次数',
-	`alarm_time` decimal(58,4) DEFAULT NULL COMMENT '告警时长(h)',
-	`alarm_object_ip` VARCHAR(256) DEFAULT NULL COMMENT '设备名称',
-	`total_zy_num`  decimal(29,8) DEFAULT NULL COMMENT '总资产数(取平均)',
-	 `severity_type` varchar(2) NOT NULL DEFAULT '' COMMENT '告警等级'
+	`collection_frequency`  decimal(29,8) DEFAULT NULL COMMENT '采集次数',
+	`severity_type` varchar(2) NOT NULL DEFAULT '' COMMENT '告警等级',
+	`alarm_duration` decimal(58,4) DEFAULT NULL COMMENT '告警时长',
+	`ITM_APP_ID` varchar(30) DEFAULT NULL comment '应用id',
+	`alarm_duration_sum` decimal(58,4) DEFAULT NULL COMMENT '告警总时长'
+	
 	)ENGINE = InnoDB DEFAULT CHARSET = utf8;
 
 
-INSERT INTO  `bi_alm_yingyong_gaojing`
+
+INSERT INTO `bi_alm_yingyong_gaojing`
 SELECT
    'HOUR' dtype,
-  DATE_FORMAT(t4.occur_time,'%Y%m%d%H') as thedvalue,
+ t4.thedvalue as thedvalue,
 	t2.ITM_APPCATAGORY_NAME AS NET_NAME,
 	t1.ORGAN_ID AS ORGAN_ID,
 	t3.SHORT_NAME AS organ_name,
@@ -693,117 +695,154 @@ CASE
 		'智慧执行' ELSE '其他' 
 	END AS app_type,
 	t1.ITM_APP_NAME AS app_type_name,
-	t4.title AS title,
-	t4.alarm_text AS alarm_text,
-	sum(t4.alarm_count) AS alarm_count,
-	sum(timestampdiff( MINUTE, t4.occur_time, t4.end_time )) AS alarm_time,
-	t4.alarm_object_ip as alarm_object_ip,
-	(select count(1) from itm_app) as total_zy_num,
-	case t4.severity_id when 1 then '致命' when 2 then '严重' when 3 then '一般' else '未知' end as severity_type
+sum(t4.avg_alarm_count) as alarm_count,
+sum(t4.collection_frequency) as collection_frequency,
+	case t4.severity_id when 1 then '致命' when 2 then '严重' when 3 then '一般' else '未知' end as severity_type,
+	abs(t4.alarm_duration) as alarm_duration,
+	t1.ITM_APP_ID as ITM_APP_ID,
+	B.alarm_duration_sum as alarm_duration_sum 
 FROM
 	itm_app t1
 	LEFT JOIN itm_appcatagory AS t2 ON t2.ITM_APPCATAGORY_CODE= t1.ITM_NETGROUP_ID
 	LEFT JOIN pub_organ AS t3 ON t1.organ_id=t3.code
-	inner JOIN v_bi_alm_all_alarm t4 ON t4.alarm_object_id = t1.ITM_APP_ID 
-	group by t2.ITM_APPCATAGORY_NAME,t1.ORGAN_ID,t3.SHORT_NAME,	t1.PRIORITY ,t1.app_type,t1.ITM_APP_NAME,t4.title,t4.alarm_object_ip,t4.alarm_text,DATE_FORMAT(t4.occur_time,'%Y%m%d%H'),t4.severity_id;
-	
-	
-	
-INSERT INTO  `bi_alm_yingyong_gaojing`
-	SELECT
-  'DAY' dtype,
-  substring(thedvalue,1,8) AS thedvalue,
-	NET_NAME,
-	ORGAN_ID,
-	organ_name,
-	PRIORITY,
-	app_type,
-	app_type_name,
-	title,
-	alarm_text,
-	sum(alarm_count) ,
-	sum(alarm_time),
-	alarm_object_ip,
-	sum(total_zy_num),
-	severity_type
-FROM bi_alm_yingyong_gaojing  where dtype = 'HOUR' 
-group by 
-	substring(thedvalue,1,8),
-	net_name,
-	ORGAN_ID,
-	ORGAN_name, 
-	PRIORITY,
-	app_type,
-	app_type_name,
-	title,
-	alarm_text,
-	alarm_object_ip,
-	severity_type; 	
-	
-	
-	
-INSERT INTO  `bi_alm_yingyong_gaojing`
+	left JOIN tmp_v_bi_alm_all_alarm_hour t4 ON t4.alarm_object_id = t1.ITM_APP_ID LEFT join (select thedvalue,sum(abs(alarm_duration)) as alarm_duration_sum from tmp_v_bi_alm_all_alarm_hour group by thedvalue) as B
+	on t4.thedvalue = B.thedvalue
+	group by t2.ITM_APPCATAGORY_NAME,t1.ORGAN_ID,t3.SHORT_NAME,t1.PRIORITY,t1.app_type,t1.ITM_APP_NAME,t4.severity_id,thedvalue,t4.alarm_object_id,t1.ITM_APP_ID,t4.thedvalue;
+
+
+
+
+
+
+INSERT INTO `bi_alm_yingyong_gaojing`
 SELECT
-  'MONTH' dtype,
- substring(thedvalue,1,6) AS thedvalue,
-	NET_NAME,
-	ORGAN_ID,
-	organ_name,
-	PRIORITY,
-	app_type,
-	app_type_name,
-	title,
-	alarm_text,
-	sum(alarm_count) ,
-	sum(alarm_time),
-	alarm_object_ip,
-	sum(total_zy_num),
-	severity_type
-FROM bi_alm_yingyong_gaojing  where dtype = 'DAY' 
-group by 
-	substring(thedvalue,1,6),
-	net_name,
-	ORGAN_ID,
-	ORGAN_name, 
-	PRIORITY,
-	app_type,
-	app_type_name,
-	title,
-	alarm_text,
-	alarm_object_ip,
-	severity_type;
-	
-	
-INSERT INTO  `bi_alm_yingyong_gaojing`	
-	SELECT
-  'YEAR' dtype,
-   substring(thedvalue,1,4) AS thedvalue,
-	NET_NAME,
-	ORGAN_ID,
-	organ_name,
-	PRIORITY,
-	app_type,
-	app_type_name,
-	title,
-	alarm_text,
-	sum(alarm_count) ,
-	sum(alarm_time),
-	alarm_object_ip,
-	sum(total_zy_num),
-	severity_type
-FROM bi_alm_yingyong_gaojing  where dtype = 'MONTH' 
-group by 
-	substring(thedvalue,1,4),
-	net_name,
-	ORGAN_ID,
-	ORGAN_name, 
-	PRIORITY,
-	app_type,
-	app_type_name,
-	title,
-	alarm_text,
-	alarm_object_ip,
-	severity_type;
+   'DAY' dtype,
+ t4.thedvalue as thedvalue,
+	t2.ITM_APPCATAGORY_NAME AS NET_NAME,
+	t1.ORGAN_ID AS ORGAN_ID,
+	t3.SHORT_NAME AS organ_name,
+CASE
+		t1.PRIORITY 
+		WHEN 'low' THEN
+		'一般应用' 
+		WHEN 'important' THEN
+		'重要应用' 
+		WHEN 'high' THEN
+		'核心应用' ELSE '未知' 
+	END AS PRIORITY,
+CASE
+		t1.app_type 
+		WHEN '1' THEN
+		'智慧服务' 
+		WHEN '2' THEN
+		'智慧管理' 
+		WHEN '3' THEN
+		'智慧审判' 
+		WHEN '4' THEN
+		'智慧执行' ELSE '其他' 
+	END AS app_type,
+	t1.ITM_APP_NAME AS app_type_name,
+sum(t4.avg_alarm_count) as alarm_count,
+sum(t4.collection_frequency) as collection_frequency,
+	case t4.severity_id when 1 then '致命' when 2 then '严重' when 3 then '一般' else '未知' end as severity_type,
+	t4.alarm_duration as alarm_duration,
+	t1.ITM_APP_ID as ITM_APP_ID,
+	B.alarm_duration_sum as alarm_duration_sum 
+FROM
+	itm_app t1
+	LEFT JOIN itm_appcatagory AS t2 ON t2.ITM_APPCATAGORY_CODE= t1.ITM_NETGROUP_ID
+	LEFT JOIN pub_organ AS t3 ON t1.organ_id=t3.code
+	inner JOIN v_bi_alm_all_alarm_day t4 ON t4.alarm_object_id = t1.ITM_APP_ID join (select sum(alarm_duration) as alarm_duration_sum from v_bi_alm_all_alarm_day group by thedvalue) as B
+	group by t2.ITM_APPCATAGORY_NAME,t1.ORGAN_ID,t3.SHORT_NAME,t1.PRIORITY,t1.app_type,t1.ITM_APP_NAME,t4.severity_id,thedvalue,t4.alarm_object_id,t1.ITM_APP_ID,t4.thedvalue;
+
+
+
+INSERT INTO `bi_alm_yingyong_gaojing`
+SELECT
+   'MONTH' dtype,
+ t4.thedvalue as thedvalue,
+	t2.ITM_APPCATAGORY_NAME AS NET_NAME,
+	t1.ORGAN_ID AS ORGAN_ID,
+	t3.SHORT_NAME AS organ_name,
+CASE
+		t1.PRIORITY 
+		WHEN 'low' THEN
+		'一般应用' 
+		WHEN 'important' THEN
+		'重要应用' 
+		WHEN 'high' THEN
+		'核心应用' ELSE '未知' 
+	END AS PRIORITY,
+CASE
+		t1.app_type 
+		WHEN '1' THEN
+		'智慧服务' 
+		WHEN '2' THEN
+		'智慧管理' 
+		WHEN '3' THEN
+		'智慧审判' 
+		WHEN '4' THEN
+		'智慧执行' ELSE '其他' 
+	END AS app_type,
+	t1.ITM_APP_NAME AS app_type_name,
+sum(t4.avg_alarm_count) as alarm_count,
+sum(t4.collection_frequency) as collection_frequency,
+	case t4.severity_id when 1 then '致命' when 2 then '严重' when 3 then '一般' else '未知' end as severity_type,
+	abs(t4.alarm_duration) as alarm_duration,
+	t1.ITM_APP_ID as ITM_APP_ID,
+	B.alarm_duration_sum as alarm_duration_sum 
+FROM
+	itm_app t1
+	LEFT JOIN itm_appcatagory AS t2 ON t2.ITM_APPCATAGORY_CODE= t1.ITM_NETGROUP_ID
+	LEFT JOIN pub_organ AS t3 ON t1.organ_id=t3.code
+	inner JOIN v_bi_alm_all_alarm_month t4 ON t4.alarm_object_id = t1.ITM_APP_ID 
+	left join (select thedvalue,sum(abs(alarm_duration)) as alarm_duration_sum 
+	from v_bi_alm_all_alarm_month group by thedvalue) as B on t4.thedvalue = B.thedvalue
+	group by t2.ITM_APPCATAGORY_NAME,t1.ORGAN_ID,t3.SHORT_NAME,t1.PRIORITY,t1.app_type,t1.ITM_APP_NAME,t4.severity_id,thedvalue,t4.alarm_object_id,t1.ITM_APP_ID,t4.thedvalue;
+
+
+
+INSERT INTO `bi_alm_yingyong_gaojing`
+SELECT
+   'MONTH' dtype,
+ t4.thedvalue as thedvalue,
+	t2.ITM_APPCATAGORY_NAME AS NET_NAME,
+	t1.ORGAN_ID AS ORGAN_ID,
+	t3.SHORT_NAME AS organ_name,
+CASE
+		t1.PRIORITY 
+		WHEN 'low' THEN
+		'一般应用' 
+		WHEN 'important' THEN
+		'重要应用' 
+		WHEN 'high' THEN
+		'核心应用' ELSE '未知' 
+	END AS PRIORITY,
+CASE
+		t1.app_type 
+		WHEN '1' THEN
+		'智慧服务' 
+		WHEN '2' THEN
+		'智慧管理' 
+		WHEN '3' THEN
+		'智慧审判' 
+		WHEN '4' THEN
+		'智慧执行' ELSE '其他' 
+	END AS app_type,
+	t1.ITM_APP_NAME AS app_type_name,
+sum(t4.avg_alarm_count) as alarm_count,
+sum(t4.collection_frequency) as collection_frequency,
+	case t4.severity_id when 1 then '致命' when 2 then '严重' when 3 then '一般' else '未知' end as severity_type,
+	t4.alarm_duration as alarm_duration,
+	t1.ITM_APP_ID as ITM_APP_ID,
+	B.alarm_duration_sum as alarm_duration_sum 
+FROM
+	itm_app t1
+	LEFT JOIN itm_appcatagory AS t2 ON t2.ITM_APPCATAGORY_CODE= t1.ITM_NETGROUP_ID
+	LEFT JOIN pub_organ AS t3 ON t1.organ_id=t3.code
+	inner JOIN v_bi_alm_all_alarm_year t4 ON t4.alarm_object_id = t1.ITM_APP_ID join (select sum(alarm_duration) as alarm_duration_sum 
+	from v_bi_alm_all_alarm_year group by thedvalue) as B
+	group by t2.ITM_APPCATAGORY_NAME,t1.ORGAN_ID,t3.SHORT_NAME,t1.PRIORITY,t1.app_type,t1.ITM_APP_NAME,t4.severity_id,thedvalue,t4.alarm_object_id,t1.ITM_APP_ID,t4.thedvalue;
 
 
 
@@ -1312,4 +1351,509 @@ net_NAME,
 PRIORITY,
 app_type,
 app_type_name,
-substring( thedvalue, 1, 4 );
+substring( thedvalue, 1, 4 );
+
+-- 基础设施告警
+
+
+DROP TABLE IF EXISTS `bi_jichu_sheshi_gaojing`;
+CREATE TABLE `bi_jichu_sheshi_gaojing` (
+	`dtype` varchar(5) NOT NULL DEFAULT '' COMMENT '日期类型',
+	`thedvalue` varchar(15) DEFAULT NULL COMMENT '日期',
+	`ITM_HARDWARE_RESOURCES_ID` varchar(255) DEFAULT NULL comment '',
+	`ORGAN_ID` varchar(30) DEFAULT NULL comment '区域id/数据来源',
+	`ORGAN_name`  varchar(200) DEFAULT NULL comment '区域名称',
+	`net_name` varchar(200) DEFAULT NULL comment '网系',
+	`cloud` varchar(255) DEFAULT NULL COMMENT '云平台',
+	`itm_hardware_resources_cntype` varchar(100) DEFAULT NULL COMMENT '设备型号/资产类型',
+	`ITM_HARDWARE_RESOURCES_NAME` varchar(255) DEFAULT NULL COMMENT '设备名称/资产名称',
+	`alarm_count`  decimal(29,8) DEFAULT NULL COMMENT '告警次数',
+	`collection_frequency`  decimal(29,8) DEFAULT NULL COMMENT '采集次数',
+	`severity_type` varchar(2) NOT NULL DEFAULT '' COMMENT '告警等级',
+	`alarm_duration` decimal(58,4) DEFAULT NULL COMMENT '告警时长',
+	`alarm_duration_sum` decimal(58,4) DEFAULT NULL COMMENT '告警总时长'
+	)ENGINE = InnoDB DEFAULT CHARSET = utf8;
+
+
+INSERT into bi_jichu_sheshi_gaojing	
+SELECT 
+	 'HOUR' AS dtype,
+	 t2.thedvalue as thedvalue,
+	 t1.ITM_HARDWARE_RESOURCES_ID as ITM_HARDWARE_RESOURCES_ID,
+	 t1.ORGAN_ID,
+	 t4.SHORT_NAME,
+	t3.ITM_APPCATAGORY_NAME as NET_NAME,
+	t1.cloud as cloud,
+	case 
+	when t1.itm_hardware_resources_type = '000100001' then '物理机'
+	when t1.itm_hardware_resources_type = '000100002' then '云主机' 
+	when t1.itm_hardware_resources_type = '000100004' then '宿主机' 
+	when substr(t1.itm_hardware_resources_type,1,4) = '0001' then '其他主机' 
+	when t1.itm_hardware_resources_type = '000200001' then '交换机' 
+	when t1.itm_hardware_resources_type = '000200002' then '路由器' 
+	when t1.itm_hardware_resources_type = '000300001' then '存储设备' 
+	when substr(itm_hardware_resources_type,1,4) = '0004' then '安全设备'
+	else '非资产设备' end as itm_hardware_resources_cntype,
+	t1.ITM_HARDWARE_RESOURCES_NAME as ITM_HARDWARE_RESOURCES_NAME,
+	sum(t2.avg_alarm_count) alarm_count,
+	sum(t2.collection_frequency) as collection_frequency,
+	case t2.severity_id when 1 then '致命' when 2 then '严重' when 3 then '一般' else '未知' end as severity_type,
+	
+	t2.alarm_duration,						
+	B.alarm_duration_sum
+	FROM itm_hardware_resources t1 
+	inner join tmp_v_bi_alm_all_alarm_hour t2 
+	  ON t2.alarm_object_id = t1.ITM_HARDWARE_RESOURCES_ID
+	left JOIN itm_appcatagory AS t3 
+	  ON t1.ITM_HARDWARE_RESOURCES_NETCODE = t3.ITM_APPCATAGORY_CODE 
+	left join pub_organ as t4 
+	  on t1.ORGAN_ID = t4.code left join 
+(select thedvalue,sum(alarm_duration) as alarm_duration_sum from tmp_v_bi_alm_all_alarm_hour
+group by 
+thedvalue) B on t2.thedvalue = B.thedvalue 
+	group by  
+	 t1.ITM_HARDWARE_RESOURCES_ID
+	,t3.ITM_APPCATAGORY_NAME
+	,t1.cloud
+	,t1.itm_hardware_resources_type
+	,t2.thedvalue;
+
+
+
+
+INSERT into bi_jichu_sheshi_gaojing	
+SELECT 
+	 'DAY' AS dtype,
+	 t2.thedvalue as thedvalue,
+	 t1.ITM_HARDWARE_RESOURCES_ID as ITM_HARDWARE_RESOURCES_ID,
+	 t1.ORGAN_ID,
+	 t4.SHORT_NAME,
+	t3.ITM_APPCATAGORY_NAME as NET_NAME,
+	t1.cloud as cloud,
+	case 
+	when t1.itm_hardware_resources_type = '000100001' then '物理机'
+	when t1.itm_hardware_resources_type = '000100002' then '云主机' 
+	when t1.itm_hardware_resources_type = '000100004' then '宿主机' 
+	when substr(t1.itm_hardware_resources_type,1,4) = '0001' then '其他主机' 
+	when t1.itm_hardware_resources_type = '000200001' then '交换机' 
+	when t1.itm_hardware_resources_type = '000200002' then '路由器' 
+	when t1.itm_hardware_resources_type = '000300001' then '存储设备' 
+	when substr(itm_hardware_resources_type,1,4) = '0004' then '安全设备'
+	else '非资产设备' end as itm_hardware_resources_cntype,
+	t1.ITM_HARDWARE_RESOURCES_NAME as ITM_HARDWARE_RESOURCES_NAME,
+	sum(t2.avg_alarm_count) alarm_count,
+	sum(t2.collection_frequency) as collection_frequency,
+	case t2.severity_id when 1 then '致命' when 2 then '严重' when 3 then '一般' else '未知' end as severity_type,
+	t2.alarm_duration,
+	B.alarm_duration_sum
+	FROM itm_hardware_resources t1 
+	inner join v_bi_alm_all_alarm_day t2 
+	  ON t2.alarm_object_id = t1.ITM_HARDWARE_RESOURCES_ID
+	left JOIN itm_appcatagory AS t3 
+	  ON t1.ITM_HARDWARE_RESOURCES_NETCODE = t3.ITM_APPCATAGORY_CODE 
+	left join pub_organ as t4 
+	  on t1.ORGAN_ID = t4.code left join 
+(select thedvalue,sum(alarm_duration) as alarm_duration_sum from v_bi_alm_all_alarm_day
+group by 
+thedvalue) B on t2.thedvalue = B.thedvalue 
+	group by  
+	 t1.ITM_HARDWARE_RESOURCES_ID
+	,t3.ITM_APPCATAGORY_NAME
+	,t1.cloud
+	,t1.itm_hardware_resources_type
+	,t2.thedvalue;
+
+	
+INSERT into bi_jichu_sheshi_gaojing	
+SELECT 
+	 'MONTH' AS dtype,
+	 t2.thedvalue as thedvalue,
+	 t1.ITM_HARDWARE_RESOURCES_ID as ITM_HARDWARE_RESOURCES_ID,
+	 t1.ORGAN_ID,
+	 t4.SHORT_NAME,
+	t3.ITM_APPCATAGORY_NAME as NET_NAME,
+	t1.cloud as cloud,
+	case 
+	when t1.itm_hardware_resources_type = '000100001' then '物理机'
+	when t1.itm_hardware_resources_type = '000100002' then '云主机' 
+	when t1.itm_hardware_resources_type = '000100004' then '宿主机' 
+	when substr(t1.itm_hardware_resources_type,1,4) = '0001' then '其他主机' 
+	when t1.itm_hardware_resources_type = '000200001' then '交换机' 
+	when t1.itm_hardware_resources_type = '000200002' then '路由器' 
+	when t1.itm_hardware_resources_type = '000300001' then '存储设备' 
+	when substr(itm_hardware_resources_type,1,4) = '0004' then '安全设备'
+	else '非资产设备' end as itm_hardware_resources_cntype,
+	t1.ITM_HARDWARE_RESOURCES_NAME as ITM_HARDWARE_RESOURCES_NAME,
+	sum(t2.avg_alarm_count) alarm_count,
+	sum(t2.collection_frequency) as collection_frequency,
+	case t2.severity_id when 1 then '致命' when 2 then '严重' when 3 then '一般' else '未知' end as severity_type,
+	t2.alarm_duration,
+	B.alarm_duration_sum
+	FROM itm_hardware_resources t1 
+	inner join v_bi_alm_all_alarm_month t2 
+	  ON t2.alarm_object_id = t1.ITM_HARDWARE_RESOURCES_ID
+	left JOIN itm_appcatagory AS t3 
+	  ON t1.ITM_HARDWARE_RESOURCES_NETCODE = t3.ITM_APPCATAGORY_CODE 
+	left join pub_organ as t4 
+	  on t1.ORGAN_ID = t4.code left join 
+(select thedvalue,sum(alarm_duration) as alarm_duration_sum from v_bi_alm_all_alarm_month
+group by 
+thedvalue) B on t2.thedvalue = B.thedvalue 
+	group by  
+	 t1.ITM_HARDWARE_RESOURCES_ID
+	,t3.ITM_APPCATAGORY_NAME
+	,t1.cloud
+	,t1.itm_hardware_resources_type
+	,t2.thedvalue;
+	
+	
+	
+INSERT into bi_jichu_sheshi_gaojing	
+SELECT 
+	 'YEAR' AS dtype,
+	 t2.thedvalue as thedvalue,
+	 t1.ITM_HARDWARE_RESOURCES_ID as ITM_HARDWARE_RESOURCES_ID,
+	 t1.ORGAN_ID,
+	 t4.SHORT_NAME,
+	t3.ITM_APPCATAGORY_NAME as NET_NAME,
+	t1.cloud as cloud,
+	case 
+	when t1.itm_hardware_resources_type = '000100001' then '物理机'
+	when t1.itm_hardware_resources_type = '000100002' then '云主机' 
+	when t1.itm_hardware_resources_type = '000100004' then '宿主机' 
+	when substr(t1.itm_hardware_resources_type,1,4) = '0001' then '其他主机' 
+	when t1.itm_hardware_resources_type = '000200001' then '交换机' 
+	when t1.itm_hardware_resources_type = '000200002' then '路由器' 
+	when t1.itm_hardware_resources_type = '000300001' then '存储设备' 
+	when substr(itm_hardware_resources_type,1,4) = '0004' then '安全设备'
+	else '非资产设备' end as itm_hardware_resources_cntype,
+	t1.ITM_HARDWARE_RESOURCES_NAME as ITM_HARDWARE_RESOURCES_NAME,
+	sum(t2.avg_alarm_count) alarm_count,
+	sum(t2.collection_frequency) as collection_frequency,
+	case t2.severity_id when 1 then '致命' when 2 then '严重' when 3 then '一般' else '未知' end as severity_type,
+	t2.alarm_duration,
+	B.alarm_duration_sum
+	FROM itm_hardware_resources t1 
+	inner join v_bi_alm_all_alarm_year t2 
+	  ON t2.alarm_object_id = t1.ITM_HARDWARE_RESOURCES_ID
+	left JOIN itm_appcatagory AS t3 
+	  ON t1.ITM_HARDWARE_RESOURCES_NETCODE = t3.ITM_APPCATAGORY_CODE 
+	left join pub_organ as t4 
+	  on t1.ORGAN_ID = t4.code left join 
+(select thedvalue,sum(alarm_duration) as alarm_duration_sum from v_bi_alm_all_alarm_year
+group by 
+thedvalue) B on t2.thedvalue = B.thedvalue 
+	group by  
+	 t1.ITM_HARDWARE_RESOURCES_ID
+	,t3.ITM_APPCATAGORY_NAME
+	,t1.cloud
+	,t1.itm_hardware_resources_type
+	,t2.thedvalue;
+	
+	
+-- 基础设施故障
+
+DROP TABLE IF EXISTS `bi_jichu_sheshi_guzhang`;
+CREATE TABLE `bi_jichu_sheshi_guzhang` (
+	`dtype` varchar(5) NOT NULL DEFAULT '' COMMENT '日期类型',
+	`thedvalue` varchar(15) DEFAULT NULL COMMENT '日期',
+	`ITM_HARDWARE_RESOURCES_ID` varchar(255) DEFAULT NULL comment '',
+	`ORGAN_ID` varchar(30) DEFAULT NULL comment '区域id/数据来源',
+	`ORGAN_name`  varchar(200) DEFAULT NULL comment '区域名称',
+	`net_name` varchar(200) DEFAULT NULL comment '网系',
+	`cloud` varchar(255) DEFAULT NULL COMMENT '云平台',
+	`itm_hardware_resources_cntype` varchar(100) DEFAULT NULL COMMENT '设备型号/资产类型',
+	`ITM_HARDWARE_RESOURCES_NAME` varchar(255) DEFAULT NULL COMMENT '设备名称/资产名称',
+	`total_zy_num`  decimal(29,8) DEFAULT NULL COMMENT '总资产数',
+	`severity_type` varchar(2) NOT NULL DEFAULT '' COMMENT '告警等级',
+	`alarm_duration` decimal(58,4) DEFAULT NULL COMMENT '故障时长(h)',
+	`alarm_object_sum`  decimal(29,8) DEFAULT NULL COMMENT '故障数',
+	`alarm_duration_sum` decimal(58,4) DEFAULT NULL COMMENT '故障总时长(h)'
+	)ENGINE = InnoDB DEFAULT CHARSET = utf8;
+
+insert into bi_jichu_sheshi_guzhang
+
+SELECT 
+	 'HOUR' AS dtype,
+	 t2.thedvalue as thedvalue,
+	 t1.ITM_HARDWARE_RESOURCES_ID as ITM_HARDWARE_RESOURCES_ID,
+	 t1.ORGAN_ID,
+	 t4.SHORT_NAME,
+	t3.ITM_APPCATAGORY_NAME as NET_NAME,
+	t1.cloud as cloud,
+	case 
+	when t1.itm_hardware_resources_type = '000100001' then '物理机'
+	when t1.itm_hardware_resources_type = '000100002' then '云主机' 
+	when t1.itm_hardware_resources_type = '000100004' then '宿主机' 
+	when substr(t1.itm_hardware_resources_type,1,4) = '0001' then '其他主机' 
+	when t1.itm_hardware_resources_type = '000200001' then '交换机' 
+	when t1.itm_hardware_resources_type = '000200002' then '路由器' 
+	when t1.itm_hardware_resources_type = '000300001' then '存储设备' 
+	when substr(itm_hardware_resources_type,1,4) = '0004' then '安全设备'
+	else '非资产设备' end as itm_hardware_resources_cntype,
+	t1.ITM_HARDWARE_RESOURCES_NAME as ITM_HARDWARE_RESOURCES_NAME,
+	D.total_zy_num as total_zy_num,
+	case t2.severity_id when 1 then '致命' when 2 then '严重' when 3 then '一般' else '未知' end as severity_type,
+	t2.alarm_duration,
+	B.alarm_object_sum,
+	C.alarm_duration_sum 
+	FROM itm_hardware_resources t1 
+	inner join tmp_v_bi_alm_all_alarm_hour t2 
+	  ON t2.alarm_object_id = t1.ITM_HARDWARE_RESOURCES_ID
+	left JOIN itm_appcatagory AS t3 
+	  ON t1.ITM_HARDWARE_RESOURCES_NETCODE = t3.ITM_APPCATAGORY_CODE 
+	left join pub_organ as t4 
+	  on t1.ORGAN_ID = t4.code 
+		left join
+(select thedvalue,count(DISTINCT alarm_object_id) as alarm_object_sum from tmp_v_bi_alm_all_alarm_hour group by thedvalue
+) as B on B.thedvalue = t2.thedvalue left join
+(select thedvalue,sum(alarm_duration) as alarm_duration_sum from tmp_v_bi_alm_all_alarm_hour group by thedvalue) C on 
+C.thedvalue = t2.thedvalue  join (select count(1) as total_zy_num from itm_hardware_resources where ITM_MONITOR_FLAG = '0') D
+	group by  
+	 t1.ITM_HARDWARE_RESOURCES_ID
+	,t3.ITM_APPCATAGORY_NAME
+	,t1.cloud
+	,t1.itm_hardware_resources_type
+	,t2.thedvalue;
+
+
+	
+insert into bi_jichu_sheshi_guzhang
+SELECT 
+	 'MONTH' AS dtype,
+	 t2.thedvalue as thedvalue,
+	 t1.ITM_HARDWARE_RESOURCES_ID as ITM_HARDWARE_RESOURCES_ID,
+	 t1.ORGAN_ID,
+	 t4.SHORT_NAME,
+	t3.ITM_APPCATAGORY_NAME as NET_NAME,
+	t1.cloud as cloud,
+	case 
+	when t1.itm_hardware_resources_type = '000100001' then '物理机'
+	when t1.itm_hardware_resources_type = '000100002' then '云主机' 
+	when t1.itm_hardware_resources_type = '000100004' then '宿主机' 
+	when substr(t1.itm_hardware_resources_type,1,4) = '0001' then '其他主机' 
+	when t1.itm_hardware_resources_type = '000200001' then '交换机' 
+	when t1.itm_hardware_resources_type = '000200002' then '路由器' 
+	when t1.itm_hardware_resources_type = '000300001' then '存储设备' 
+	when substr(itm_hardware_resources_type,1,4) = '0004' then '安全设备'
+	else '非资产设备' end as itm_hardware_resources_cntype,
+	t1.ITM_HARDWARE_RESOURCES_NAME as ITM_HARDWARE_RESOURCES_NAME,
+	D.total_zy_num as total_zy_num,
+	case t2.severity_id when 1 then '致命' when 2 then '严重' when 3 then '一般' else '未知' end as severity_type,
+	t2.alarm_duration,
+	B.alarm_object_sum,
+	C.alarm_duration_sum 
+	FROM itm_hardware_resources t1 
+	inner join v_bi_alm_all_alarm_month t2 
+	  ON t2.alarm_object_id = t1.ITM_HARDWARE_RESOURCES_ID
+	left JOIN itm_appcatagory AS t3 
+	  ON t1.ITM_HARDWARE_RESOURCES_NETCODE = t3.ITM_APPCATAGORY_CODE 
+	left join pub_organ as t4 
+	  on t1.ORGAN_ID = t4.code 
+		left join
+(select thedvalue,count(DISTINCT alarm_object_id) as alarm_object_sum from v_bi_alm_all_alarm_month group by thedvalue
+) as B on B.thedvalue = t2.thedvalue left join
+(select thedvalue,sum(alarm_duration) as alarm_duration_sum from v_bi_alm_all_alarm_month group by thedvalue) C on 
+C.thedvalue = t2.thedvalue  join (select count(1) as total_zy_num from itm_hardware_resources where ITM_MONITOR_FLAG = '0') D
+	group by  
+	 t1.ITM_HARDWARE_RESOURCES_ID
+	,t3.ITM_APPCATAGORY_NAME
+	,t1.cloud
+	,t1.itm_hardware_resources_type
+	,t2.thedvalue;
+
+
+
+
+
+
+
+
+
+insert into bi_jichu_sheshi_guzhang
+SELECT 
+	 'YEAR' AS dtype,
+	 t2.thedvalue as thedvalue,
+	 t1.ITM_HARDWARE_RESOURCES_ID as ITM_HARDWARE_RESOURCES_ID,
+	 t1.ORGAN_ID,
+	 t4.SHORT_NAME,
+	t3.ITM_APPCATAGORY_NAME as NET_NAME,
+	t1.cloud as cloud,
+	case 
+	when t1.itm_hardware_resources_type = '000100001' then '物理机'
+	when t1.itm_hardware_resources_type = '000100002' then '云主机' 
+	when t1.itm_hardware_resources_type = '000100004' then '宿主机' 
+	when substr(t1.itm_hardware_resources_type,1,4) = '0001' then '其他主机' 
+	when t1.itm_hardware_resources_type = '000200001' then '交换机' 
+	when t1.itm_hardware_resources_type = '000200002' then '路由器' 
+	when t1.itm_hardware_resources_type = '000300001' then '存储设备' 
+	when substr(itm_hardware_resources_type,1,4) = '0004' then '安全设备'
+	else '非资产设备' end as itm_hardware_resources_cntype,
+	t1.ITM_HARDWARE_RESOURCES_NAME as ITM_HARDWARE_RESOURCES_NAME,
+	D.total_zy_num as total_zy_num,
+	case t2.severity_id when 1 then '致命' when 2 then '严重' when 3 then '一般' else '未知' end as severity_type,
+	t2.alarm_duration,
+	B.alarm_object_sum,
+	C.alarm_duration_sum 
+	FROM itm_hardware_resources t1 
+	inner join v_bi_alm_all_alarm_year t2 
+	  ON t2.alarm_object_id = t1.ITM_HARDWARE_RESOURCES_ID
+	left JOIN itm_appcatagory AS t3 
+	  ON t1.ITM_HARDWARE_RESOURCES_NETCODE = t3.ITM_APPCATAGORY_CODE 
+	left join pub_organ as t4 
+	  on t1.ORGAN_ID = t4.code 
+		left join
+(select thedvalue,count(DISTINCT alarm_object_id) as alarm_object_sum from v_bi_alm_all_alarm_year group by thedvalue
+) as B on B.thedvalue = t2.thedvalue left join
+(select thedvalue,sum(alarm_duration) as alarm_duration_sum from v_bi_alm_all_alarm_year group by thedvalue) C on 
+C.thedvalue = t2.thedvalue  join (select count(1) as total_zy_num from itm_hardware_resources where ITM_MONITOR_FLAG = '0') D
+	group by  
+	 t1.ITM_HARDWARE_RESOURCES_ID
+	,t3.ITM_APPCATAGORY_NAME
+	,t1.cloud
+	,t1.itm_hardware_resources_type
+	,t2.thedvalue;
+
+
+
+-- 基础设备运维分析
+
+
+	`dhour` varchar(15) DEFAULT NULL comment '小时',
+	`ORGAN_ID` varchar(30) DEFAULT NULL comment '区域id/数据来源',
+	`ORGAN_name`  varchar(200) DEFAULT NULL comment '区域名称',
+	`net_name` varchar(200) DEFAULT NULL comment '网系',
+	`cloud` varchar(255) DEFAULT NULL COMMENT '云平台',
+	`itm_hardware_resources_cntype` varchar(100) DEFAULT NULL COMMENT '设备型号/资产类型',
+	`ITM_HARDWARE_RESOURCES_NAME` varchar(255) DEFAULT NULL COMMENT '设备名称/资产名称',
+	`IND_VALUE_HOST_DISK_USED` decimal(29,8) DEFAULT NULL COMMENT '已使用设备容量',
+	`itm_hardware_resources_id` varchar(100) DEFAULT NULL COMMENT '设备ID',
+	`IND_VALUE_NUM` decimal(29,8) DEFAULT NULL COMMENT '总设备数'
+	) ENGINE = InnoDB DEFAULT CHARSET = utf8;
+
+insert into bi_cunchu_shebei_yunwei_fenxi
+select 
+  'HOUR' AS dtype,
+	DATE_FORMAT(t1.CREATE_TIME,'%Y%m%d%H') as thedvalue,
+	DATE_FORMAT(t1.CREATE_TIME,'%H') as dhour,
+	t1.ORGAN_ID,
+	t1.ITM_HARDWARE_RESOURCES_AREACODE as organ_name,
+	t3.ITM_APPCATAGORY_NAME as NET_NAME,
+	t1.cloud as cloud,
+	case 
+	when t1.itm_hardware_resources_type = '000100001' then '物理机'
+	when t1.itm_hardware_resources_type = '000100002' then '云主机' 
+	when t1.itm_hardware_resources_type = '000100004' then '宿主机' 
+	when substr(t1.itm_hardware_resources_type,1,4) = '0001' then '其他主机' 
+	when t1.itm_hardware_resources_type = '000200001' then '交换机' 
+	when t1.itm_hardware_resources_type = '000200002' then '路由器' 
+	when t1.itm_hardware_resources_type = '000300001' then '存储设备' 
+	when substr(itm_hardware_resources_type,1,4) = '0004' then '安全设备'
+	else '非资产设备' end as itm_hardware_resources_cntype,
+	t1.ITM_HARDWARE_RESOURCES_NAME as ITM_HARDWARE_RESOURCES_NAME,
+	0 as IND_VALUE_HOST_DISK_USED,
+	t1.itm_hardware_resources_id,
+	b.c as IND_VALUE_NUM
+from
+	itm_hardware_resources  as t1
+	left JOIN itm_appcatagory AS t3 ON t1.ITM_HARDWARE_RESOURCES_NETCODE = t3.ITM_APPCATAGORY_CODE 
+	join (select count(1) c  from itm_hardware_resources where ITM_HARDWARE_RESOURCES_TYPE like '%0003%' ) b 
+	where t1.ITM_HARDWARE_RESOURCES_TYPE like '%0003%' group by itm_hardware_resources_id,DATE_FORMAT(t1.CREATE_TIME,'%Y%m%d%H');
+	
+insert into bi_cunchu_shebei_yunwei_fenxi	
+select 
+  'HOUR' AS dtype,
+	DATE_FORMAT(t1.CREATE_TIME,'%Y%m%d%H') as thedvalue,
+	DATE_FORMAT(t1.CREATE_TIME,'%H') as dhour,
+	t1.ORGAN_ID,
+	t1.ITM_HARDWARE_RESOURCES_AREACODE as organ_name,
+	t3.ITM_APPCATAGORY_NAME as NET_NAME,
+	t1.cloud as cloud,
+	case 
+	when t1.itm_hardware_resources_type = '000100001' then '物理机'
+	when t1.itm_hardware_resources_type = '000100002' then '云主机' 
+	when t1.itm_hardware_resources_type = '000100004' then '宿主机' 
+	when substr(t1.itm_hardware_resources_type,1,4) = '0001' then '其他主机' 
+	when t1.itm_hardware_resources_type = '000200001' then '交换机' 
+	when t1.itm_hardware_resources_type = '000200002' then '路由器' 
+	when t1.itm_hardware_resources_type = '000300001' then '存储设备' 
+	when substr(itm_hardware_resources_type,1,4) = '0004' then '安全设备'
+	else '非资产设备' end as itm_hardware_resources_cntype,
+	t1.ITM_HARDWARE_RESOURCES_NAME as ITM_HARDWARE_RESOURCES_NAME,
+	0 as IND_VALUE_HOST_DISK_USED,
+	t1.itm_hardware_resources_id,
+	b.c as IND_VALUE_NUM
+from
+	itm_hardware_resources  as t1
+	left JOIN itm_appcatagory AS t3 ON t1.ITM_HARDWARE_RESOURCES_NETCODE = t3.ITM_APPCATAGORY_CODE 
+	join (select count(1) c  from itm_hardware_resources where ITM_HARDWARE_RESOURCES_TYPE like '%0003%' ) b 
+	where t1.ITM_HARDWARE_RESOURCES_TYPE like '%0003%' group by itm_hardware_resources_id,DATE_FORMAT(t1.CREATE_TIME,'%Y%m%d%H');
+	
+	
+	
+insert into bi_cunchu_shebei_yunwei_fenxi
+	select 
+  'DAY' AS dtype,
+	substring(thedvalue,1,8) as thedvalue,
+	substring(thedvalue,9,10) as dhour,
+	ORGAN_ID,
+	organ_name,
+	NET_NAME,
+	cloud,
+	itm_hardware_resources_cntype,
+	ITM_HARDWARE_RESOURCES_NAME,
+	0 as IND_VALUE_HOST_DISK_USED,
+	itm_hardware_resources_id,
+	IND_VALUE_NUM 
+from
+	bi_cunchu_shebei_yunwei_fenxi where dtype = 'HOUR'
+ group by itm_hardware_resources_id,substring(thedvalue,1,8);
+ 
+ 
+ 
+ 
+ 
+insert into bi_cunchu_shebei_yunwei_fenxi
+	select 
+  'MONTH' AS dtype,
+	substring(thedvalue,1,6) as thedvalue,
+	substring(thedvalue,9,10) as dhour,
+	ORGAN_ID,
+	organ_name,
+	NET_NAME,
+	cloud,
+	itm_hardware_resources_cntype,
+	ITM_HARDWARE_RESOURCES_NAME,
+	0 as IND_VALUE_HOST_DISK_USED,
+	itm_hardware_resources_id,
+	IND_VALUE_NUM 
+from
+	bi_cunchu_shebei_yunwei_fenxi where dtype = 'DAY'
+ group by itm_hardware_resources_id,substring(thedvalue,1,6);
+ 
+ 
+ 
+   
+insert into bi_cunchu_shebei_yunwei_fenxi
+	select 
+  'YEAR' AS dtype,
+	substring(thedvalue,1,6) as thedvalue,
+	substring(thedvalue,9,10) as dhour,
+	ORGAN_ID,
+	organ_name,
+	NET_NAME,
+	cloud,
+	itm_hardware_resources_cntype,
+	ITM_HARDWARE_RESOURCES_NAME,
+	0 as IND_VALUE_HOST_DISK_USED,
+	itm_hardware_resources_id,
+	IND_VALUE_NUM 
+from
+	bi_cunchu_shebei_yunwei_fenxi where dtype = 'MONTH'
+ group by itm_hardware_resources_id,substring(thedvalue,1,4);
+ 
+ select * from bi_cunchu_shebei_yunwei_fenxi
+
+	
+	
+

+ 116 - 0
procedures/wk_bi_app_access_stat.sql

@@ -0,0 +1,116 @@
+CREATE PROCEDURE lawe.wk_bi_app_access_stat(in bg_time varchar(300), in ed_time varchar(300))
+BEGIN
+	DELETE FROM bi_app_access_stat WHERE dtype='HOUR' and thedvalue between bg_time and ed_time;
+	insert into bi_app_access_stat
+	SELECT
+		'HOUR' AS dtype,
+	    DATE_FORMAT(A.time_mark,'%Y%m%d%H') as thedvalue,
+		B.ITM_NETGROUP_ID AS NET_ID,
+		C.NAME AS net_name,
+		A.ORGAN_ID AS ORGAN_ID,
+		D.short_name AS ORGAN_name,
+		A.app_id as app_id,
+		B.ITM_APP_NAME AS app_name,
+		sum(A.visit_count) as visit_count,
+		sum(A.operate_count) as operate_count ,
+	CASE
+			B.PRIORITY 
+			WHEN 'low' THEN
+			'一般应用' 
+			WHEN 'important' THEN
+			'重要应用' 
+			WHEN 'high' THEN
+			'核心应用' ELSE '未知' 
+		END AS PRIORITY,
+		F.NAME
+	FROM  app_visit_log_region as A
+		LEFT JOIN itm_app B on A.app_id=B.itm_app_id
+		LEFT JOIN ( SELECT VALUE, NAME FROM m_com_dict WHERE dict_index = 'itm_resources_netcode' ) C ON C.VALUE = B.ITM_NETGROUP_ID
+		LEFT JOIN pub_organ D ON D.id = A.ORGAN_ID
+		LEFT JOIN ( SELECT temp1.ITM_APP_ID, temp2.NAME FROM itm_app temp1 LEFT JOIN m_com_dict temp2 ON temp1.app_type = temp2.VALUE ) AS F ON A.app_id = F.itm_app_id 
+	WHERE
+		DATE_FORMAT(A.time_mark,'%Y%m%d%H') between bg_time and ed_time
+	GROUP BY
+		A.app_id, A.ORGAN_ID, B.ITM_NETGROUP_ID, B.ITM_APP_NAME, C.NAME, D.short_name, B.priority, F.NAME, B.PRIORITY, A.time_mark, DATE_FORMAT(A.time_mark,'%Y%m%d%H');
+
+	DELETE FROM bi_app_access_stat WHERE dtype='DAY' and thedvalue=SUBSTRING(bg_time, 1, 8);
+	insert into bi_app_access_stat
+	SELECT
+		'DAY' AS dtype,
+	  	substring(thedvalue,1,8) AS thedvalue, 
+		NET_ID,
+		 net_name,
+		 ORGAN_ID,
+		 ORGAN_name,
+		app_id,
+		app_name,
+		sum(visit_count) as visit_count,
+		sum(operate_count) as operate_count ,
+	CASE
+			PRIORITY 
+			WHEN 'low' THEN
+			'一般应用' 
+			WHEN 'important' THEN
+			'重要应用' 
+			WHEN 'high' THEN
+			'核心应用' ELSE '未知' 
+		END AS PRIORITY,
+		app_type
+	FROM bi_app_access_stat 
+	WHERE dtype = 'HOUR' and substring(thedvalue,1,8)= SUBSTRING(bg_time, 1, 8)
+	GROUP BY dtype,thedvalue,NET_ID,net_name,ORGAN_ID,ORGAN_name,app_id,app_name,priority,app_type,substring(thedvalue,1,8);
+
+	DELETE FROM bi_app_access_stat WHERE dtype='MONTH' and thedvalue=SUBSTRING(bg_time, 1, 6);
+	insert into bi_app_access_stat
+	SELECT
+		'MONTH' AS dtype,
+	  	substring(thedvalue,1,6) AS thedvalue, 
+		NET_ID,
+		 net_name,
+		 ORGAN_ID,
+		 ORGAN_name,
+		app_id,
+		app_name,
+		sum(visit_count) as visit_count,
+		sum(operate_count) as operate_count ,
+	CASE
+			PRIORITY 
+			WHEN 'low' THEN
+			'一般应用' 
+			WHEN 'important' THEN
+			'重要应用' 
+			WHEN 'high' THEN
+			'核心应用' ELSE '未知' 
+		END AS PRIORITY,
+		app_type
+	FROM bi_app_access_stat 
+	WHERE dtype = 'DAY' and substring(thedvalue,1,6)= SUBSTRING(bg_time, 1, 6)
+	GROUP BY dtype,thedvalue,NET_ID,net_name,ORGAN_ID,ORGAN_name,app_id,app_name,priority,app_type,substring(thedvalue,1,6);
+
+	DELETE FROM bi_app_access_stat WHERE dtype='YEAR' and thedvalue=SUBSTRING(bg_time, 1, 4);
+	insert into bi_app_access_stat
+	SELECT
+		'YEAR' AS dtype,
+	  	substring(thedvalue,1,4) AS thedvalue, 
+		NET_ID,
+		 net_name,
+		 ORGAN_ID,
+		 ORGAN_name,
+		app_id,
+		app_name,
+		sum(visit_count) as visit_count,
+		sum(operate_count) as operate_count ,
+	CASE
+			PRIORITY 
+			WHEN 'low' THEN
+			'一般应用' 
+			WHEN 'important' THEN
+			'重要应用' 
+			WHEN 'high' THEN
+			'核心应用' ELSE '未知' 
+		END AS PRIORITY,
+		app_type
+	FROM bi_app_access_stat 
+	WHERE dtype = 'MONTH' and substring(thedvalue,1,4)= SUBSTRING(bg_time, 1, 4)
+	GROUP BY dtype,thedvalue,NET_ID,net_name,ORGAN_ID,ORGAN_name,app_id,app_name,priority,app_type,substring(thedvalue,1,4);
+END

+ 112 - 0
views/v_bi_alm_all_alarm_day.sql

@@ -0,0 +1,112 @@
+-- lawe.v_bi_alm_all_alarm_day source
+
+CREATE OR REPLACE
+ALGORITHM = UNDEFINED VIEW `v_bi_alm_all_alarm_day` AS
+select
+    `m`.`alarm_object_ip` AS `alarm_object_ip`,
+    `m`.`alarm_object_id` AS `alarm_object_id`,
+    (case
+        when (`m`.`alarm_object_type` = '000100001') then '物理机'
+        when (`m`.`alarm_object_type` = '000100002') then '云主机'
+        when (`m`.`alarm_object_type` = '000100004') then '宿主机'
+        when (substr(`m`.`alarm_object_type`, 1, 4) = '0001') then '其他主机'
+        when (`m`.`alarm_object_type` = '000200001') then '交换机'
+        when (`m`.`alarm_object_type` = '000200002') then '路由器'
+        when (`m`.`alarm_object_type` = '000300001') then '存储设备'
+        when (substr(`m`.`alarm_object_type`, 1, 4) = '0004') then '安全设备'
+        when (substr(`m`.`alarm_object_type`, 1, 4) = '0014') then '网络'
+        when ((`m`.`alarm_object_type` like '%0012%')
+        or (`m`.`alarm_object_type` like '%app%')) then '应用'
+        else '其它未知类型'
+    end) AS `alarm_object_type`,
+    `m`.`alarm_object_name` AS `alarm_object_name`,
+    `m`.`severity_id` AS `severity_id`,
+    `m`.`title` AS `title`,
+    `m`.`alarm_text` AS `alarm_text`,
+    `m`.`clr_status` AS `clr_status`,
+    `m`.`alarm_count` AS `alarm_count`,
+    `m`.`bg_time` AS `bg_time`,
+    `m`.`ed_time` AS `ed_time`,
+    `m`.`days` AS `days`,
+    `m`.`dtype` AS `dtype`,
+    `m`.`thedvalue` AS `thedvalue`,
+    `m`.`is_active_alarm` AS `is_active_alarm`,
+    floor((`m`.`alarm_count` / `m`.`days`)) AS `avg_alarm_count`,
+    if((`m`.`alarm_source` = '性能告警'),
+    ((60 / 5) * 24),
+    ((60 * 2) * 24)) AS `collection_frequency`,
+    (case
+        when ((`m`.`occur_time` <= `m`.`thedvalue_b`)
+        and (`m`.`update_time` >= `m`.`thedvalue_e`)) then (60 * 24)
+        when ((`m`.`occur_time` > `m`.`thedvalue_b`)
+        and (`m`.`update_time` >= `m`.`thedvalue_e`)) then ((60 * 24) - (`m`.`occur_time` % 100))
+        when ((`m`.`occur_time` <= `m`.`thedvalue_b`)
+        and (`m`.`update_time` < `m`.`thedvalue_e`)) then (`m`.`update_time` % 100)
+        when ((`m`.`occur_time` > `m`.`thedvalue_b`)
+        and (`m`.`update_time` < `m`.`thedvalue_e`)) then ((`m`.`update_time` % 100) - (`m`.`occur_time` % 100))
+    end) AS `alarm_duration`
+from
+    (
+    select
+        `aa`.`alarm_object_ip` AS `alarm_object_ip`,
+        `aa`.`alarm_object_id` AS `alarm_object_id`,
+        `aa`.`alarm_object_type` AS `alarm_object_type`,
+        `aa`.`alarm_object_name` AS `alarm_object_name`,
+        `aa`.`severity_id` AS `severity_id`,
+        `aa`.`title` AS `title`,
+        `aa`.`alarm_text` AS `alarm_text`,
+        `aa`.`clr_status` AS `clr_status`,
+        `aa`.`alarm_count` AS `alarm_count`,
+        cast(date_format(`aa`.`occur_time`, '%Y%m%d') as unsigned) AS `bg_time`,
+        cast(date_format(`aa`.`update_time`, '%Y%m%d') as unsigned) AS `ed_time`,
+        (abs((to_days(`aa`.`update_time`) - to_days(`aa`.`occur_time`))) + 1) AS `days`,
+        'DAY' AS `dtype`,
+        `dates`.`YYYYMMDD` AS `thedvalue`,
+        1 AS `is_active_alarm`,
+        `aa`.`alarm_source` AS `alarm_source`,
+        date_format(str_to_date(`dates`.`YYYYMMDD`, '%Y%m%d%H%m'), '%Y%m%d%H00') AS `thedvalue_b`,
+        date_format((str_to_date(`dates`.`YYYYMMDD`, '%Y%m%d%H%m') + interval 1 day), '%Y%m%d%H00') AS `thedvalue_e`,
+        date_format(`aa`.`occur_time`, '%Y%m%d%H%m') AS `occur_time`,
+        date_format(`aa`.`update_time`, '%Y%m%d%H%m') AS `update_time`
+    from
+        (`t_alm_active_alarm` `aa`
+    join (
+        select
+            `dd`.`YYYYMMDD` AS `YYYYMMDD`
+        from
+            `dim_date` `dd`
+        where
+            (`dd`.`YYYYMMDD` between 20230101 and 20241231)) `dates`)
+union all
+    select
+        `ha`.`alarm_object_ip` AS `alarm_object_ip`,
+        `ha`.`alarm_object_id` AS `alarm_object_id`,
+        `ha`.`alarm_object_type` AS `alarm_object_type`,
+        `ha`.`alarm_object_name` AS `alarm_object_name`,
+        `ha`.`severity_id` AS `severity_id`,
+        `ha`.`title` AS `title`,
+        `ha`.`alarm_text` AS `alarm_text`,
+        `ha`.`clr_status` AS `clr_status`,
+        `ha`.`alarm_count` AS `alarm_count`,
+        cast(date_format(`ha`.`occur_time`, '%Y%m%d') as unsigned) AS `bg_time`,
+        cast(date_format(`ha`.`update_time`, '%Y%m%d') as unsigned) AS `ed_time`,
+        (abs((to_days(`ha`.`update_time`) - to_days(`ha`.`occur_time`))) + 1) AS `days`,
+        'DAY' AS `dtype`,
+        `dates`.`YYYYMMDD` AS `thedvalue`,
+        0 AS `is_active_alarm`,
+        `ha`.`alarm_source` AS `alarm_source`,
+        date_format(str_to_date(`dates`.`YYYYMMDD`, '%Y%m%d%H%m'), '%Y%m%d%H00') AS `thedvalue_b`,
+        date_format((str_to_date(`dates`.`YYYYMMDD`, '%Y%m%d%H%m') + interval 1 day), '%Y%m%d%H00') AS `thedvalue_e`,
+        date_format(`ha`.`occur_time`, '%Y%m%d%H%m') AS `occur_time`,
+        date_format(`ha`.`update_time`, '%Y%m%d%H%m') AS `update_time`
+    from
+        (`t_alm_history_alarm` `ha`
+    join (
+        select
+            `dd`.`YYYYMMDD` AS `YYYYMMDD`
+        from
+            `dim_date` `dd`
+        where
+            (`dd`.`YYYYMMDD` between 20230101 and 20241231)) `dates`)) `m`
+where
+    (`m`.`thedvalue` between `m`.`bg_time` and `m`.`ed_time`);

+ 93 - 0
views/v_bi_alm_all_alarm_hour.sql

@@ -0,0 +1,93 @@
+-- lawe.v_bi_alm_all_alarm_hour source
+
+CREATE OR REPLACE
+ALGORITHM = UNDEFINED VIEW `v_bi_alm_all_alarm_hour` AS
+select
+    `m`.`alarm_object_ip` AS `alarm_object_ip`,
+    `m`.`alarm_object_id` AS `alarm_object_id`,
+    `m`.`alarm_object_type` AS `alarm_object_type`,
+    `m`.`alarm_object_name` AS `alarm_object_name`,
+    `m`.`severity_id` AS `severity_id`,
+    `m`.`title` AS `title`,
+    `m`.`alarm_text` AS `alarm_text`,
+    `m`.`clr_status` AS `clr_status`,
+    `m`.`alarm_count` AS `alarm_count`,
+    `m`.`bg_time` AS `bg_time`,
+    `m`.`ed_time` AS `ed_time`,
+    `m`.`hours` AS `hours`,
+    `m`.`dtype` AS `dtype`,
+    `m`.`thedvalue` AS `thedvalue`,
+    `m`.`is_active_alarm` AS `is_active_alarm`,
+    floor((`m`.`alarm_count` / `m`.`hours`)) AS `avg_alarm_count`,
+    if((`m`.`alarm_source` = '性能告警'),
+    (60 / 5),
+    (60 * 2)) AS `collection_frequency`,
+    CASE 
+	    WHEN occur_time<=thedvalue_b and update_time>=thedvalue_e THEN 60
+	    WHEN occur_time>thedvalue_b and update_time>=thedvalue_e THEN 60-MOD(occur_time,100)
+	    WHEN occur_time<=thedvalue_b and update_time<thedvalue_e THEN MOD(update_time,100)
+	    WHEN occur_time>thedvalue_b and update_time<thedvalue_e THEN MOD(update_time,100)-MOD(occur_time,100)
+    END 'alarm_duration'
+from
+    (
+    select
+        `aa`.`alarm_object_ip` AS `alarm_object_ip`,
+        `aa`.`alarm_object_id` AS `alarm_object_id`,
+        `aa`.`alarm_object_type` AS `alarm_object_type`,
+        `aa`.`alarm_object_name` AS `alarm_object_name`,
+        `aa`.`severity_id` AS `severity_id`,
+        `aa`.`title` AS `title`,
+        `aa`.`alarm_text` AS `alarm_text`,
+        `aa`.`clr_status` AS `clr_status`,
+        `aa`.`alarm_count` AS `alarm_count`,
+        cast(date_format(`aa`.`occur_time`, '%Y%m%d%H') as unsigned) AS `bg_time`,
+        cast(date_format(`aa`.`update_time`, '%Y%m%d%H') as unsigned) AS `ed_time`,
+        (abs(timestampdiff(HOUR, `aa`.`update_time`, `aa`.`occur_time`)) + 1) AS `hours`,
+        'HOUR' AS `dtype`,
+        `dates`.`thevalue` AS `thedvalue`,
+        1 AS `is_active_alarm`,
+        `aa`.`alarm_source` AS `alarm_source`,
+        date_format(STR_TO_DATE(`dates`.`thevalue`, '%Y%m%d%H%m'),'%Y%m%d%H00') 'thedvalue_b',
+        date_format(DATE_ADD(STR_TO_DATE(`dates`.`thevalue`, '%Y%m%d%H%m'), INTERVAL 1 HOUR),'%Y%m%d%H00') 'thedvalue_e',
+        date_format(`aa`.`occur_time`, '%Y%m%d%H%m') occur_time, date_format(`aa`.`update_time`, '%Y%m%d%H%m') update_time
+    from
+        (`t_alm_active_alarm` `aa`
+    join (
+        select
+            concat(`dh`.`yyyyMMdd`, lpad(`dh`.`hour`, 2, 0)) AS `thevalue`
+        from
+            `dim_hour` `dh`
+        where
+            (`dh`.`yyyyMMdd` between 20230101 and 20241231)) `dates`)
+union all
+    select
+        `ha`.`alarm_object_ip` AS `alarm_object_ip`,
+        `ha`.`alarm_object_id` AS `alarm_object_id`,
+        `ha`.`alarm_object_type` AS `alarm_object_type`,
+        `ha`.`alarm_object_name` AS `alarm_object_name`,
+        `ha`.`severity_id` AS `severity_id`,
+        `ha`.`title` AS `title`,
+        `ha`.`alarm_text` AS `alarm_text`,
+        `ha`.`clr_status` AS `clr_status`,
+        `ha`.`alarm_count` AS `alarm_count`,
+        cast(date_format(`ha`.`occur_time`, '%Y%m%d%H') as unsigned) AS `bg_time`,
+        cast(date_format(`ha`.`update_time`, '%Y%m%d%H') as unsigned) AS `ed_time`,
+        (abs(timestampdiff(HOUR, `ha`.`update_time`, `ha`.`occur_time`)) + 1) AS `hours`,
+        'HOUR' AS `dtype`,
+        `dates`.`thevalue` AS `thedvalue`,
+        0 AS `is_active_alarm`,
+        `ha`.`alarm_source` AS `alarm_source`,
+        date_format(STR_TO_DATE(`dates`.`thevalue`, '%Y%m%d%H%m'),'%Y%m%d%H00') 'thedvalue_b',
+        date_format(DATE_ADD(STR_TO_DATE(`dates`.`thevalue`, '%Y%m%d%H%m'), INTERVAL 1 HOUR),'%Y%m%d%H00') 'thedvalue_e',
+        date_format(`ha`.`occur_time`, '%Y%m%d%H%m') occur_time, date_format(`ha`.`update_time`, '%Y%m%d%H%m') update_time
+    from
+        (`t_alm_history_alarm` `ha`
+    join (
+        select
+            concat(`dh`.`yyyyMMdd`, lpad(`dh`.`hour`, 2, 0)) AS `thevalue`
+        from
+            `dim_hour` `dh`
+        where
+            (`dh`.`yyyyMMdd` between 20230101 and 20241231)) `dates`)) `m`
+where
+    (`m`.`thedvalue` between `m`.`bg_time` and `m`.`ed_time`);

+ 121 - 0
views/v_bi_alm_all_alarm_month.sql

@@ -0,0 +1,121 @@
+-- lawe.v_bi_alm_all_alarm_month source
+
+CREATE OR REPLACE
+ALGORITHM = UNDEFINED VIEW `v_bi_alm_all_alarm_month` AS
+select
+    `m`.`alarm_object_ip` AS `alarm_object_ip`,
+    `m`.`alarm_object_id` AS `alarm_object_id`,
+    `m`.`alarm_object_type` AS `alarm_object_type`,
+    `m`.`alarm_object_name` AS `alarm_object_name`,
+    `m`.`severity_id` AS `severity_id`,
+    `m`.`title` AS `title`,
+    `m`.`alarm_text` AS `alarm_text`,
+    `m`.`clr_status` AS `clr_status`,
+    `m`.`alarm_count` AS `alarm_count`,
+    `m`.`bg_time` AS `bg_time`,
+    `m`.`ed_time` AS `ed_time`,
+    `m`.`months` AS `months`,
+    `m`.`dtype` AS `dtype`,
+    `m`.`thedvalue` AS `thedvalue`,
+    `m`.`is_active_alarm` AS `is_active_alarm`,
+    floor((`m`.`alarm_count` / `m`.`months`)) AS `avg_alarm_count`,
+    if((`m`.`alarm_source` = '性能告警'),
+    (((60 / 5) * 24) * `m`.`days_in_month`),
+    (((60 * 2) * 24) * `m`.`days_in_month`)) AS `collection_frequency`,
+    (case
+        when ((`m`.`occur_time` <= `m`.`thedvalue_b`)
+        and (`m`.`update_time` >= `m`.`thedvalue_e`)) then timestampdiff(MINUTE,
+        str_to_date(`m`.`thedvalue_b`,
+        '%Y%m%d%H%m'),
+        str_to_date(`m`.`thedvalue_e`,
+        '%Y%m%d%H%m'))
+        when ((`m`.`occur_time` > `m`.`thedvalue_b`)
+        and (`m`.`update_time` >= `m`.`thedvalue_e`)) then timestampdiff(MINUTE,
+        str_to_date(`m`.`occur_time`,
+        '%Y%m%d%H%m'),
+        str_to_date(`m`.`thedvalue_e`,
+        '%Y%m%d%H%m'))
+        when ((`m`.`occur_time` <= `m`.`thedvalue_b`)
+        and (`m`.`update_time` < `m`.`thedvalue_e`)) then timestampdiff(MINUTE,
+        str_to_date(`m`.`thedvalue_b`,
+        '%Y%m%d%H%m'),
+        str_to_date(`m`.`update_time`,
+        '%Y%m%d%H%m'))
+        when ((`m`.`occur_time` > `m`.`thedvalue_b`)
+        and (`m`.`update_time` < `m`.`thedvalue_e`)) then timestampdiff(MINUTE,
+        str_to_date(`m`.`occur_time`,
+        '%Y%m%d%H%m'),
+        str_to_date(`m`.`update_time`,
+        '%Y%m%d%H%m'))
+    end) AS `alarm_duration`
+from
+    (
+    select
+        `aa`.`alarm_object_ip` AS `alarm_object_ip`,
+        `aa`.`alarm_object_id` AS `alarm_object_id`,
+        `aa`.`alarm_object_type` AS `alarm_object_type`,
+        `aa`.`alarm_object_name` AS `alarm_object_name`,
+        `aa`.`severity_id` AS `severity_id`,
+        `aa`.`title` AS `title`,
+        `aa`.`alarm_text` AS `alarm_text`,
+        `aa`.`clr_status` AS `clr_status`,
+        `aa`.`alarm_count` AS `alarm_count`,
+        cast(date_format(`aa`.`occur_time`, '%Y%m') as unsigned) AS `bg_time`,
+        cast(date_format(`aa`.`update_time`, '%Y%m') as unsigned) AS `ed_time`,
+        (timestampdiff(MONTH,
+        `aa`.`occur_time`,
+        `aa`.`update_time`) + 1) AS `months`,
+        'MONTH' AS `dtype`,
+        `dates`.`thedvalue` AS `thedvalue`,
+        1 AS `is_active_alarm`,
+        `aa`.`alarm_source` AS `alarm_source`,
+        dayofmonth(last_day((makedate((`dates`.`thedvalue` / 100), 1) + interval ((`dates`.`thedvalue` % 100) - 1) month))) AS `days_in_month`,
+        date_format(str_to_date(concat(`dates`.`thedvalue`, '01'), '%Y%m%d'), '%Y%m%d0000') AS `thedvalue_b`,
+        date_format((str_to_date(concat(`dates`.`thedvalue`, '01'), '%Y%m%d') + interval 1 month), '%Y%m%d%H00') AS `thedvalue_e`,
+        date_format(`aa`.`occur_time`, '%Y%m%d%H%m') AS `occur_time`,
+        date_format(`aa`.`update_time`, '%Y%m%d%H%m') AS `update_time`
+    from
+        (`t_alm_active_alarm` `aa`
+    join (
+        select
+            distinct floor((`dd`.`YYYYMMDD` / 100)) AS `thedvalue`
+        from
+            `dim_date` `dd`
+        where
+            (`dd`.`YYYYMMDD` between 20230101 and 20241231)) `dates`)
+union all
+    select
+        `ha`.`alarm_object_ip` AS `alarm_object_ip`,
+        `ha`.`alarm_object_id` AS `alarm_object_id`,
+        `ha`.`alarm_object_type` AS `alarm_object_type`,
+        `ha`.`alarm_object_name` AS `alarm_object_name`,
+        `ha`.`severity_id` AS `severity_id`,
+        `ha`.`title` AS `title`,
+        `ha`.`alarm_text` AS `alarm_text`,
+        `ha`.`clr_status` AS `clr_status`,
+        `ha`.`alarm_count` AS `alarm_count`,
+        cast(date_format(`ha`.`occur_time`, '%Y%m') as unsigned) AS `bg_time`,
+        cast(date_format(`ha`.`update_time`, '%Y%m') as unsigned) AS `ed_time`,
+        (timestampdiff(MONTH,
+        `ha`.`occur_time`,
+        `ha`.`update_time`) + 1) AS `months`,
+        'MONTH' AS `dtype`,
+        `dates`.`thedvalue` AS `thedvalue`,
+        0 AS `is_active_alarm`,
+        `ha`.`alarm_source` AS `alarm_source`,
+        dayofmonth(last_day((makedate((`dates`.`thedvalue` / 100), 1) + interval ((`dates`.`thedvalue` % 100) - 1) month))) AS `days_in_month`,
+        date_format(str_to_date(concat(`dates`.`thedvalue`, '01'), '%Y%m%d'), '%Y%m%d0000') AS `thedvalue_b`,
+        date_format((str_to_date(concat(`dates`.`thedvalue`, '01'), '%Y%m%d%H%m') + interval 1 month), '%Y%m%d%H00') AS `thedvalue_e`,
+        date_format(`ha`.`occur_time`, '%Y%m%d%H%m') AS `occur_time`,
+        date_format(`ha`.`update_time`, '%Y%m%d%H%m') AS `update_time`
+    from
+        (`t_alm_history_alarm` `ha`
+    join (
+        select
+            distinct floor((`dd`.`YYYYMMDD` / 100)) AS `thedvalue`
+        from
+            `dim_date` `dd`
+        where
+            (`dd`.`YYYYMMDD` between 20230101 and 20241231)) `dates`)) `m`
+where
+    (`m`.`thedvalue` between `m`.`bg_time` and `m`.`ed_time`);

A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 94 - 0
views/v_bi_alm_all_alarm_year.sql