-- ===================================================================== -- 设备API采集模块 建表 + 测试数据脚本 -- 适用数据库: 达梦 DM8 -- 说明: -- 1. 先执行建表语句(表已存在时请先删除或忽略 DDL 部分) -- 2. 再执行 INSERT 测试数据 -- 3. id 均为自增字段(IDENTITY),INSERT 无需也不允许指定 id -- ===================================================================== -- --------------------------------------------------------------------- -- 1. 建表: 设备API采集配置表 -- --------------------------------------------------------------------- DROP TABLE IF EXISTS device_api_collect_log; DROP TABLE IF EXISTS device_api_config; CREATE TABLE device_api_config ( id BIGINT IDENTITY(1,1) PRIMARY KEY, device_id INT, -- 设备ID,关联 device_device.id device_type VARCHAR(50) NOT NULL, -- 设备类型: tianyan/weibu/xdr device_name VARCHAR(100) NOT NULL, -- 设备名称 device_ip VARCHAR(200) NOT NULL, -- 设备IP地址 host_api VARCHAR(200) NOT NULL, -- 设备API URL地址 auth_config TEXT, -- 认证配置JSON data_types VARCHAR(500) NOT NULL, -- 数据类型: weblog,alarm / attack,info collect_interval_sec INT DEFAULT 300, -- 采集间隔(秒) enabled INT DEFAULT 1, -- 是否启用: 0-禁用, 1-启用 remark VARCHAR(500), -- 备注 create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); COMMENT ON TABLE device_api_config IS '设备API采集配置表'; COMMENT ON COLUMN device_api_config.id IS '主键,自增'; COMMENT ON COLUMN device_api_config.device_id IS '设备ID,关联 device_device.id'; COMMENT ON COLUMN device_api_config.device_type IS '设备类型: tianyan/weibu/xdr'; COMMENT ON COLUMN device_api_config.device_name IS '设备名称'; COMMENT ON COLUMN device_api_config.device_ip IS '设备IP地址'; COMMENT ON COLUMN device_api_config.host_api IS '设备API URL地址'; COMMENT ON COLUMN device_api_config.auth_config IS '认证配置JSON'; COMMENT ON COLUMN device_api_config.data_types IS '数据类型: weblog,alarm / attack,info'; COMMENT ON COLUMN device_api_config.collect_interval_sec IS '采集间隔(秒)'; COMMENT ON COLUMN device_api_config.enabled IS '是否启用: 0-禁用, 1-启用'; COMMENT ON COLUMN device_api_config.remark IS '备注'; COMMENT ON COLUMN device_api_config.create_time IS '创建时间'; COMMENT ON COLUMN device_api_config.update_time IS '更新时间'; -- --------------------------------------------------------------------- -- 2. 建表: 设备API采集执行日志表 -- --------------------------------------------------------------------- CREATE TABLE device_api_collect_log ( id BIGINT IDENTITY(1,1) PRIMARY KEY, device_id INT NOT NULL, -- 设备ID,关联 device_device.id device_type VARCHAR(50) NOT NULL, -- 设备类型 data_type VARCHAR(50) NOT NULL, -- 数据类型 start_time TIMESTAMP NOT NULL, -- 采集窗口开始时间 end_time TIMESTAMP NOT NULL, -- 采集窗口结束时间 total_count INT DEFAULT 0, -- 采集记录总数 success_count INT DEFAULT 0, -- 成功写入数 fail_count INT DEFAULT 0, -- 失败数 cost_ms BIGINT DEFAULT 0, -- 耗时(毫秒) status VARCHAR(20) NOT NULL, -- 状态: SUCCESS/FAIL error_msg TEXT, -- 错误信息 create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); COMMENT ON TABLE device_api_collect_log IS '设备API采集执行日志'; COMMENT ON COLUMN device_api_collect_log.id IS '主键,自增'; COMMENT ON COLUMN device_api_collect_log.device_id IS '设备ID,关联 device_device.id'; COMMENT ON COLUMN device_api_collect_log.device_type IS '设备类型'; COMMENT ON COLUMN device_api_collect_log.data_type IS '数据类型'; COMMENT ON COLUMN device_api_collect_log.start_time IS '采集窗口开始时间'; COMMENT ON COLUMN device_api_collect_log.end_time IS '采集窗口结束时间'; COMMENT ON COLUMN device_api_collect_log.total_count IS '采集记录总数'; COMMENT ON COLUMN device_api_collect_log.success_count IS '成功写入数'; COMMENT ON COLUMN device_api_collect_log.fail_count IS '失败数'; COMMENT ON COLUMN device_api_collect_log.cost_ms IS '耗时(毫秒)'; COMMENT ON COLUMN device_api_collect_log.status IS '状态: SUCCESS/FAIL'; COMMENT ON COLUMN device_api_collect_log.error_msg IS '错误信息'; COMMENT ON COLUMN device_api_collect_log.create_time IS '创建时间'; -- ===================================================================== -- 3. 测试数据: 设备API采集配置表(id 自增,不插入) -- 覆盖: 天眼(启用/停用)、微步(启用)、XDR(暂缓停用) -- ===================================================================== INSERT INTO device_api_config (device_id, device_type, device_name, device_ip, host_api, auth_config, data_types, collect_interval_sec, enabled, remark, create_time, update_time) VALUES -- 天眼-主设备(启用,采集 weblog+alarm) (35, 'tianyan', '天眼态势感知平台', '10.56.170.107', 'https://10.56.170.107', '{"login_key":"QuJm4NwF3GMaXb2Z","username":"xxadmin","branch_id":"QbJK%2FsLHi"}', 'weblog,alarm', 300, 1, '生产环境天眼主采集器', '2026-08-27 09:00:00', '2026-08-27 09:00:00'), -- 天眼-备设备(停用,仅测试) (102, 'tianyan', '天眼态势感知平台-备', '10.56.170.107', 'https://10.56.170.107', '{"login_key":"QuJm4NwF3GMaXb2Z","username":"xxadmin","branch_id":"QbJK%2FsLHi"}', 'weblog', 600, 0, '备用采集器,暂未启用', '2026-08-27 09:05:00', '2026-08-27 09:05:00'), -- 微步-TDP(启用,采集 attack+info) (36, 'weibu', '微步威胁感知平台', '10.56.171.164', 'https://10.56.171.164', '{"api_key":"57d8fb2b556a471ea36b8b4441fa1c0c","secret":"9d967876f51d4e16bbf8bde069d12a9b"}', 'attack,info', 300, 1, '生产环境微步采集器', '2026-08-27 09:10:00', '2026-08-27 09:10:00'), -- XDR(暂缓,联动码待联调) (104, 'xdr', '深信服XDR平台', '192.168.30.31', 'https://192.168.30.31', '{"auth_code":"<待联调时填入14段联动码>"}', 'alert', 300, 0, 'XDR采集暂缓,待联动码解码联调后启用', '2026-08-27 09:15:00', '2026-08-27 09:15:00'); -- ===================================================================== -- 4. 测试数据: 设备API采集执行日志表(id 自增,不插入) -- 覆盖: 成功、失败、不同设备/类型 -- ===================================================================== INSERT INTO device_api_collect_log (device_id, device_type, data_type, start_time, end_time, total_count, success_count, fail_count, cost_ms, status, error_msg, create_time) VALUES -- 天眼 weblog 采集成功 (101, 'tianyan', 'weblog', '2026-08-27 08:55:00', '2026-08-27 09:00:00', 1280, 1280, 0, 3265, 'SUCCESS', NULL, '2026-08-27 09:00:00'), -- 天眼 alarm 采集成功 (101, 'tianyan', 'alarm', '2026-08-27 08:55:00', '2026-08-27 09:00:00', 36, 36, 0, 1240, 'SUCCESS', NULL, '2026-08-27 09:00:00'), -- 微步 attack 采集成功(含少量失败) (103, 'weibu', 'attack', '2026-08-27 08:55:00', '2026-08-27 09:00:00', 520, 518, 2, 1890, 'SUCCESS', '2条消息Kafka推送失败', '2026-08-27 09:00:00'), -- 微步 info 采集失败(模拟接口超时) (103, 'weibu', 'info', '2026-08-27 08:55:00', '2026-08-27 09:00:00', 0, 0, 0, 30050, 'FAIL', 'searchBySql接口请求超时: read timed out', '2026-08-27 09:00:00'), -- XDR(停用状态,无采集记录; 以下为历史参考记录) (104, 'xdr', 'alert', '2026-08-26 09:00:00', '2026-08-26 09:05:00', 0, 0, 0, 150, 'FAIL', 'XDR采集器暂缓,待联动码解码与签名接口联调后实现', '2026-08-26 09:05:00'); -- ===================================================================== -- 5. 校验查询(可选执行) -- ===================================================================== -- 查询启用中的采集配置 -- SELECT id, device_type, device_name, data_types, collect_interval_sec -- FROM device_api_config -- WHERE enabled = 1; -- 查询最近采集日志 -- SELECT device_type, data_type, total_count, success_count, fail_count, -- status, error_msg, create_time -- FROM device_api_collect_log -- ORDER BY id DESC;