feat: 新增设备 API 拉取采集及配套处理能力

- 接入 NDRServer 告警和流量日志,支持凭据与任务管理
- 支持分页拉取、窗口拆分、调度优先级及 WAL 持久化后推进断点
- 增加迟到告警规则重放,优化多条泛化规则选择和事件时间处理
- 补充回归测试、数据库升级脚本及部署文档
This commit is contained in:
王绍宏
2026-09-06 16:46:21 +08:00
parent b61ec2e37c
commit 00c0a1fb7f
141 changed files with 11318 additions and 467 deletions
@@ -0,0 +1,46 @@
-- =============================================================================
-- 脚本: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;