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,35 @@
-- haobang-security-dm 幂等索引升级。
-- 前置:01-schema-upgrade.sql 成功,所有相关旧应用仍保持停止,DBA 已评估索引空间和维护窗口。
-- 任一 CREATE 报错立即停止;禁止通过删除历史数据绕过重复问题。
-- 两张标准化表现场均按 LOG_TIME 做 RANGE 分区。
-- 当前 DM8 现场语法在不指定 GLOBAL 时建立分区索引;唯一键包含完整分区键,因此形成本地唯一索引。
-- 新版 id 是 event_id + normalize_rule_id + rule_version 的确定性 UUID,长度仍为 36 字符。
CREATE UNIQUE INDEX uk_normal_data_log_id
ON syslog_normal_data(log_time,id);
CREATE UNIQUE INDEX uk_normal_alarm_log_id
ON syslog_normal_alarm(log_time,id);
-- 规则聚合窗口和算法单事件结果需要跨日幂等,使用全局非分区唯一索引。
-- 历史新增字段保持 NULL,索引只保护新版本写入且幂等字段完整的数据。
CREATE UNIQUE INDEX uk_alarm_rule_window_group
ON alarm(rule_id,rule_version,window_start,group_key_hash) GLOBAL;
CREATE UNIQUE INDEX uk_alarm_visit_algorithm_event
ON alarm_visit(algorithm_id,algorithm_version,event_id,result_type) GLOBAL;
-- 结果门禁:前两个必须 UNIQUE/PARTITIONED=YES/VALID;后两个必须 UNIQUE/PARTITIONED=NO/VALID。
SELECT index_name,table_name,uniqueness,partitioned,status
FROM user_indexes
WHERE index_name IN (
'UK_NORMAL_DATA_LOG_ID','UK_NORMAL_ALARM_LOG_ID',
'UK_ALARM_RULE_WINDOW_GROUP','UK_ALARM_VISIT_ALGORITHM_EVENT'
)
ORDER BY table_name,index_name;
-- 旧全局宽字符串索引不属于目标结构。若现场已存在,立即停止并单独评审,禁止在本文件中自动 DROP。
SELECT index_name,table_name,uniqueness,partitioned,status
FROM user_indexes
WHERE index_name IN ('UK_NORMAL_DATA_EVENT_RULE','UK_NORMAL_ALARM_EVENT_RULE')
ORDER BY table_name,index_name;