Files
ai-security-xdr/haobang-security-dm/upgrade-doc/v2/database/01-device-api-pull-precheck.sql
T
王绍宏 00c0a1fb7f feat: 新增设备 API 拉取采集及配套处理能力
- 接入 NDRServer 告警和流量日志,支持凭据与任务管理
- 支持分页拉取、窗口拆分、调度优先级及 WAL 持久化后推进断点
- 增加迟到告警规则重放,优化多条泛化规则选择和事件时间处理
- 补充回归测试、数据库升级脚本及部署文档
2026-09-06 16:46:21 +08:00

36 lines
2.1 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- =============================================================================
-- 脚本:01-device-api-pull-precheck.sql
-- 用途:安装设备 API 拉取基础表之前,检查现有表结构是否满足升级条件。
-- 性质:只读脚本,不会修改表结构和业务数据,可以重复执行。
-- 执行时机:执行 02-device-api-pull-upgrade.sql 之前。
--
-- 重点检查:
-- 1. device_collect_task.method 当前使用了哪些值,避免新增 API 类型与旧值冲突;
-- 2. device_collect_task.id 和 device_device.id 是否都有主键;
-- 3. 两个主键字段的数据类型是否分别为 INTEGER/INT 和 BIGINT;
-- 4. 四张 DEVICE_COLLECT_API_* 表是否已经存在。
--
-- 判断方法:
-- - 任一 SQL 报错时,不要执行 02,先确认当前用户和 Schema 是否正确;
-- - 第四组查询返回 0 行,表示四张 API 拉取表尚未创建;
-- - 第四组查询有返回,表示可能执行过升级,应先运行 03 验证,不要直接重跑 02。
-- =============================================================================
-- 第 1 组:查看采集任务 method 的现有取值及任务数量。
SELECT method, COUNT(*) AS task_count FROM device_collect_task GROUP BY method ORDER BY method;
-- 第 2 组:确认两张被引用的旧表都有主键,每张表应各返回一条统计记录。
SELECT table_name, COUNT(*) AS pk_count FROM user_constraints
WHERE LOWER(table_name) IN ('device_collect_task','device_device') AND constraint_type='P'
GROUP BY table_name ORDER BY table_name;
-- 第 3 组:核对外键关联字段的数据类型、长度和是否允许为空。
SELECT table_name,column_name,data_type,data_length,data_precision,data_scale,nullable
FROM user_tab_columns
WHERE LOWER(table_name) IN ('device_collect_task','device_device') AND LOWER(column_name)='id'
ORDER BY table_name;
-- 第 4 组:检查目标表是否已存在。首次升级时应返回 0 行。
SELECT table_name FROM user_tables WHERE LOWER(table_name) IN
('device_collect_api_credential','device_collect_api_config','device_collect_api_checkpoint','device_collect_api_run');