-- ============================================================================= -- 脚本:04-fairness-late-replay-precheck.sql -- 用途:升级公平调度和迟到告警重放功能之前,检查当前数据库结构。 -- 性质:只读脚本,不会修改表结构和业务数据,可以重复执行。 -- 执行时机:执行 05-fairness-late-replay-upgrade.sql 之前。 -- -- 首次升级的预期结果: -- 1. 第 1 组返回 0 行,表示 SCHEDULER_PRIORITY 尚未添加; -- 2. 第 2 组返回 0 行,表示两张重放表尚未创建; -- 3. 第 3 组返回 ANALYSIS_CHECKPOINT,表示规则分析基础表存在; -- 4. 第 4 组应返回 DEVICE_ID、LOG_TIME、CREATED_AT 三个字段; -- 5. 第 5 组应能看到 NDR_ALERT 和 NDR_FLOW_LOG 任务。 -- -- 如果第 1 组或第 2 组已经有结果,说明可能升级过,不要直接重跑 05, -- 应先执行 06-fairness-late-replay-verify.sql 判断结构是否完整。 -- ============================================================================= -- 第 1 组:检查任务配置表是否已经有调度优先级字段。 SELECT column_name FROM user_tab_columns WHERE table_name='DEVICE_COLLECT_API_CONFIG' AND column_name='SCHEDULER_PRIORITY'; -- 第 2 组:检查迟到告警和规则重放表是否已经存在。 SELECT table_name FROM user_tables WHERE table_name IN ('ANALYSIS_LATE_ALARM_BUCKET','ANALYSIS_RULE_REPLAY_WINDOW') ORDER BY table_name; -- 第 3 组:确认现有规则分析进度表存在,应返回一行 ANALYSIS_CHECKPOINT。 SELECT table_name FROM user_tables WHERE table_name='ANALYSIS_CHECKPOINT'; -- 第 4 组:确认标准化告警表具备判断迟到数据所需的字段。 SELECT column_name,data_type,nullable FROM user_tab_columns WHERE table_name='SYSLOG_NORMAL_ALARM' AND column_name IN ('DEVICE_ID','LOG_TIME','CREATED_AT') ORDER BY column_name; -- 第 5 组:查看现有 API 拉取任务类型及数量,为升级后的优先级赋值做准备。 SELECT stream_key,COUNT(*) AS task_count FROM device_collect_api_config GROUP BY stream_key ORDER BY stream_key;