|
|
|
|
@ -18,56 +18,53 @@
|
|
|
|
|
|
|
|
|
|
| 序号 | 字段名 | 数据类型 | 长度 | 精度 | 是否主键 | 是否为空 | 默认值 | 字段说明 | 备注 |
|
|
|
|
|
|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
| 1 | id | BIGINT | - | - | ✓ | NOT NULL | IDENTITY | 主键ID | |
|
|
|
|
|
| 2 | role_name | VARCHAR | 50 | - | - | NOT NULL | - | 角色名称 | |
|
|
|
|
|
| 3 | role_key | VARCHAR | 50 | - | - | NOT NULL | - | 角色唯一标识 | |
|
|
|
|
|
| 4 | description | VARCHAR | 255 | - | - | NULL | - | 角色描述 | |
|
|
|
|
|
| 5 | is_system_role | BOOLEAN | - | - | - | NOT NULL | FALSE | 是否为系统内置角色 | |
|
|
|
|
|
| 6 | created_at | TIMESTAMPTZ | - | - | - | NOT NULL | NOW() | 创建时间 | |
|
|
|
|
|
| 7 | updated_at | TIMESTAMPTZ | - | - | - | NOT NULL | NOW() | 更新时间 | |
|
|
|
|
|
| 1 | id | BIGINT | - | - | ✓ | NOT NULL | - | 主键ID | |
|
|
|
|
|
| 2 | role_name | CHARACTER | - | - | - | NOT NULL | - | 角色名称 | |
|
|
|
|
|
| 3 | role_key | CHARACTER | - | - | - | NOT NULL | - | 角色唯一标识 | |
|
|
|
|
|
| 4 | description | CHARACTER | - | - | - | NULL | - | 角色描述 | |
|
|
|
|
|
| 5 | is_system_role | BOOLEAN | - | - | - | NOT NULL | false | 是否为系统内置角色 | |
|
|
|
|
|
| 6 | created_at | TIMESTAMP | - | - | - | NOT NULL | now() | 创建时间 | |
|
|
|
|
|
| 7 | updated_at | TIMESTAMP | - | - | - | NOT NULL | now() | 更新时间 | |
|
|
|
|
|
|
|
|
|
|
**索引信息**:
|
|
|
|
|
- PRIMARY KEY: id
|
|
|
|
|
- UNIQUE KEY: uk_role_key (role_key)
|
|
|
|
|
|
|
|
|
|
- PRIMARY KEY: (id)
|
|
|
|
|
#### 表名: permissions (权限表)
|
|
|
|
|
**表说明**: 系统权限定义
|
|
|
|
|
|
|
|
|
|
| 序号 | 字段名 | 数据类型 | 长度 | 精度 | 是否主键 | 是否为空 | 默认值 | 字段说明 | 备注 |
|
|
|
|
|
|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
| 1 | id | BIGINT | - | - | ✓ | NOT NULL | IDENTITY | 主键ID | |
|
|
|
|
|
| 2 | permission_name | VARCHAR | 100 | - | - | NOT NULL | - | 权限名称 | |
|
|
|
|
|
| 3 | permission_key | VARCHAR | 100 | - | - | NOT NULL | - | 权限唯一标识 | |
|
|
|
|
|
| 4 | description | VARCHAR | 255 | - | - | NULL | - | 权限描述 | |
|
|
|
|
|
| 5 | created_at | TIMESTAMPTZ | - | - | - | NOT NULL | NOW() | 创建时间 | |
|
|
|
|
|
| 1 | id | BIGINT | - | - | ✓ | NOT NULL | - | 主键ID | |
|
|
|
|
|
| 2 | permission_name | CHARACTER | - | - | - | NOT NULL | - | 权限名称 | |
|
|
|
|
|
| 3 | permission_key | CHARACTER | - | - | - | NOT NULL | - | 权限唯一标识 | |
|
|
|
|
|
| 4 | description | CHARACTER | - | - | - | NULL | - | 权限描述 | |
|
|
|
|
|
| 5 | created_at | TIMESTAMP | - | - | - | NOT NULL | now() | 创建时间 | |
|
|
|
|
|
|
|
|
|
|
**索引信息**:
|
|
|
|
|
- PRIMARY KEY: id
|
|
|
|
|
- UNIQUE KEY: uk_permission_key (permission_key)
|
|
|
|
|
|
|
|
|
|
- PRIMARY KEY: (id)
|
|
|
|
|
#### 表名: role_permission_mapping (角色-权限映射表)
|
|
|
|
|
**表说明**: 角色与权限的多对多关系
|
|
|
|
|
|
|
|
|
|
| 序号 | 字段名 | 数据类型 | 长度 | 精度 | 是否主键 | 是否为空 | 默认值 | 字段说明 | 备注 |
|
|
|
|
|
|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
| 1 | role_id | BIGINT | - | - | ✓ | NOT NULL | - | 角色ID | 外键关联roles |
|
|
|
|
|
| 2 | permission_id | BIGINT | - | - | ✓ | NOT NULL | - | 权限ID | 外键关联permissions |
|
|
|
|
|
| 1 | role_id | BIGINT | - | - | ✓ | NOT NULL | - | 角色ID | |
|
|
|
|
|
| 2 | permission_id | BIGINT | - | - | ✓ | NOT NULL | - | 权限ID | |
|
|
|
|
|
|
|
|
|
|
**索引信息**:
|
|
|
|
|
- PRIMARY KEY: (role_id, permission_id)
|
|
|
|
|
|
|
|
|
|
- FOREIGN KEY: FK(permission_id) -> public.permissions(id)
|
|
|
|
|
- FOREIGN KEY: FK(role_id) -> public.roles(id)
|
|
|
|
|
#### 表名: user_role_mapping (用户-角色映射表)
|
|
|
|
|
**表说明**: 用户与角色的多对多关系
|
|
|
|
|
|
|
|
|
|
| 序号 | 字段名 | 数据类型 | 长度 | 精度 | 是否主键 | 是否为空 | 默认值 | 字段说明 | 备注 |
|
|
|
|
|
|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
| 1 | user_id | BIGINT | - | - | ✓ | NOT NULL | - | 用户ID | 外键关联users |
|
|
|
|
|
| 2 | role_id | BIGINT | - | - | ✓ | NOT NULL | - | 角色ID | 外键关联roles |
|
|
|
|
|
| 1 | user_id | BIGINT | - | - | ✓ | NOT NULL | - | 用户ID | |
|
|
|
|
|
| 2 | role_id | BIGINT | - | - | ✓ | NOT NULL | - | 角色ID | |
|
|
|
|
|
|
|
|
|
|
**索引信息**:
|
|
|
|
|
- PRIMARY KEY: (user_id, role_id)
|
|
|
|
|
### 2.1 核心业务表
|
|
|
|
|
|
|
|
|
|
- FOREIGN KEY: FK(role_id) -> public.roles(id)
|
|
|
|
|
- FOREIGN KEY: FK(user_id) -> public.users(id)
|
|
|
|
|
#### 表名: fault_records (故障记录表)
|
|
|
|
|
**表说明**: 存储系统检测到的所有故障信息,是系统的核心业务表
|
|
|
|
|
|
|
|
|
|
@ -106,444 +103,199 @@
|
|
|
|
|
|
|
|
|
|
| 序号 | 字段名 | 数据类型 | 长度 | 精度 | 是否主键 | 是否为空 | 默认值 | 字段说明 | 备注 |
|
|
|
|
|
|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
| 1 | id | BIGINT | - | - | ✓ | NOT NULL | IDENTITY | 主键ID | |
|
|
|
|
|
| 2 | exec_id | VARCHAR | 32 | - | - | NOT NULL | - | 执行唯一标识 | 格式: EXE-YYYYMMDD-XXXX |
|
|
|
|
|
| 3 | fault_id | VARCHAR | 32 | - | - | NOT NULL | - | 关联故障ID | 外键关联fault_records |
|
|
|
|
|
| 4 | command_type | VARCHAR | 50 | - | - | NOT NULL | - | 命令类型 | restart/repair/check等 |
|
|
|
|
|
| 5 | script_path | VARCHAR | 255 | - | - | NULL | - | 脚本路径 | 执行脚本的文件路径 |
|
|
|
|
|
| 6 | command_content | TEXT | - | - | - | NOT NULL | - | 执行的命令内容 | 完整的命令或脚本内容 |
|
|
|
|
|
| 7 | target_nodes | JSONB | - | - | - | NULL | - | 目标执行节点 | JSONB数组 |
|
|
|
|
|
| 8 | risk_level | VARCHAR | 20 | - | - | - | NOT NULL | 'medium' | 风险级别 | low/medium/high |
|
|
|
|
|
| 9 | execution_status | VARCHAR | 20 | - | - | - | NOT NULL | 'pending' | 执行状态 | pending/running/success/failed/timeout |
|
|
|
|
|
| 10 | start_time | TIMESTAMPTZ | - | - | - | NULL | - | 开始执行时间 | |
|
|
|
|
|
| 11 | end_time | TIMESTAMPTZ | - | - | - | NULL | - | 结束执行时间 | |
|
|
|
|
|
| 12 | duration | INT | - | - | - | NULL | - | 执行时长(秒) | 计算得出的执行时长 |
|
|
|
|
|
| 1 | id | BIGINT | - | - | ✓ | NOT NULL | - | 主键ID | |
|
|
|
|
|
| 2 | exec_id | CHARACTER | - | - | - | NOT NULL | - | 执行唯一标识 | |
|
|
|
|
|
| 3 | fault_id | CHARACTER | - | - | - | NOT NULL | - | 关联故障标识(无外键) | |
|
|
|
|
|
| 4 | command_type | CHARACTER | - | - | - | NOT NULL | - | 命令类型 | |
|
|
|
|
|
| 5 | script_path | CHARACTER | - | - | - | NULL | - | 脚本路径 | |
|
|
|
|
|
| 6 | command_content | TEXT | - | - | - | NOT NULL | - | 执行的命令内容 | |
|
|
|
|
|
| 7 | target_nodes | JSONB | - | - | - | NULL | - | 目标执行节点(JSONB) | |
|
|
|
|
|
| 8 | risk_level | CHARACTER | - | - | - | NOT NULL | 'medium'::character | 风险级别(low/medium/high) | |
|
|
|
|
|
| 9 | execution_status | CHARACTER | - | - | - | NOT NULL | 'pending'::character | 执行状态(pending/running/success/failed/timeout) | |
|
|
|
|
|
| 10 | start_time | TIMESTAMP | - | - | - | NULL | - | 开始执行时间 | |
|
|
|
|
|
| 11 | end_time | TIMESTAMP | - | - | - | NULL | - | 结束执行时间 | |
|
|
|
|
|
| 12 | duration | INTEGER | - | - | - | NULL | - | 执行时长(秒) | |
|
|
|
|
|
| 13 | stdout_log | TEXT | - | - | - | NULL | - | 标准输出日志 | |
|
|
|
|
|
| 14 | stderr_log | TEXT | - | - | - | NULL | - | 错误输出日志 | |
|
|
|
|
|
| 15 | exit_code | INT | - | - | - | NULL | - | 退出码 | 命令执行的退出码 |
|
|
|
|
|
| 16 | operator | VARCHAR | 50 | - | - | NOT NULL | 'system' | 操作人 | 执行操作的用户 |
|
|
|
|
|
| 17 | created_at | TIMESTAMPTZ | - | - | - | NOT NULL | NOW() | 创建时间 | |
|
|
|
|
|
| 18 | updated_at | TIMESTAMPTZ | - | - | - | NOT NULL | NOW() | 更新时间 | |
|
|
|
|
|
| 15 | exit_code | INTEGER | - | - | - | NULL | - | 退出码 | |
|
|
|
|
|
| 16 | operator | CHARACTER | - | - | - | NOT NULL | 'system'::character | 操作人 | |
|
|
|
|
|
| 17 | created_at | TIMESTAMP | - | - | - | NOT NULL | now() | 创建时间 | |
|
|
|
|
|
| 18 | updated_at | TIMESTAMP | - | - | - | NOT NULL | now() | 更新时间 | |
|
|
|
|
|
|
|
|
|
|
**索引信息**:
|
|
|
|
|
- PRIMARY KEY: id
|
|
|
|
|
- UNIQUE KEY: uk_exec_id (exec_id)
|
|
|
|
|
- INDEX: idx_fault_id (fault_id)
|
|
|
|
|
- INDEX: idx_execution_status (execution_status)
|
|
|
|
|
|
|
|
|
|
**外键约束**:
|
|
|
|
|
- fk_exec_logs_fault_id: fault_id → fault_records.fault_id
|
|
|
|
|
|
|
|
|
|
- PRIMARY KEY: (id)
|
|
|
|
|
- INDEX: idx_exec_logs_end_time (end_time)
|
|
|
|
|
- INDEX: idx_exec_logs_fault_id (fault_id)
|
|
|
|
|
- INDEX: idx_exec_logs_start_time (start_time)
|
|
|
|
|
- INDEX: idx_exec_logs_status (execution_status)
|
|
|
|
|
#### 表名: nodes (节点信息表)
|
|
|
|
|
**表说明**: 记录集群内各节点的状态信息
|
|
|
|
|
|
|
|
|
|
| 序号 | 字段名 | 数据类型 | 长度 | 精度 | 是否主键 | 是否为空 | 默认值 | 字段说明 | 备注 |
|
|
|
|
|
|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
| 1 | id | BIGINT | - | - | ✓ | NOT NULL | IDENTITY | 主键ID | |
|
|
|
|
|
| 1 | id | BIGINT | - | - | ✓ | NOT NULL | - | 主键ID | |
|
|
|
|
|
| 2 | uuid | UUID | - | - | - | NOT NULL | - | 节点唯一标识(UUID) | |
|
|
|
|
|
| 3 | cluster_id | BIGINT | - | - | - | NOT NULL | - | 集群ID | 外键关联clusters表 |
|
|
|
|
|
| 4 | hostname | VARCHAR | 100 | - | - | NOT NULL | - | 节点主机名 | |
|
|
|
|
|
| 5 | ip_address | INET | - | - | - | NOT NULL | - | 节点IP地址 | 兼容IPv4/IPv6 |
|
|
|
|
|
| 6 | status | VARCHAR | 20 | - | - | - | NOT NULL | 'unknown' | 节点状态 | healthy/unhealthy/warning/unknown |
|
|
|
|
|
| 7 | cpu_usage | NUMERIC | 5 | 2 | - | NULL | - | CPU使用率(%) | 0.00-100.00 |
|
|
|
|
|
| 8 | memory_usage | NUMERIC | 5 | 2 | - | NULL | - | 内存使用率(%) | 0.00-100.00 |
|
|
|
|
|
| 9 | disk_usage | NUMERIC | 5 | 2 | - | NULL | - | 磁盘使用率(%) | 0.00-100.00 |
|
|
|
|
|
| 10 | last_heartbeat | TIMESTAMPTZ | - | - | - | NULL | - | 最后心跳时间 | |
|
|
|
|
|
| 11 | created_at | TIMESTAMPTZ | - | - | - | NOT NULL | NOW() | 创建时间 | |
|
|
|
|
|
| 12 | updated_at | TIMESTAMPTZ | - | - | - | NOT NULL | NOW() | 更新时间 | |
|
|
|
|
|
| 3 | cluster_id | BIGINT | - | - | - | NOT NULL | - | 所属集群ID | |
|
|
|
|
|
| 4 | hostname | CHARACTER | - | - | - | NOT NULL | - | 节点主机名 | |
|
|
|
|
|
| 5 | ip_address | INET | - | - | - | NOT NULL | - | 节点IP地址(INET, 兼容IPv4/IPv6) | |
|
|
|
|
|
| 6 | status | CHARACTER | - | - | - | NOT NULL | 'unknown'::character | 节点健康状态(healthy/unhealthy/warning/unknown) | |
|
|
|
|
|
| 7 | last_heartbeat | TIMESTAMP | - | - | - | NULL | - | 最后心跳时间 | |
|
|
|
|
|
| 8 | created_at | TIMESTAMP | - | - | - | NOT NULL | now() | 创建时间 | |
|
|
|
|
|
| 9 | updated_at | TIMESTAMP | - | - | - | NOT NULL | now() | 更新时间 | |
|
|
|
|
|
| 10 | ssh_user | CHARACTER | - | - | - | NULL | - | | |
|
|
|
|
|
| 11 | ssh_password | CHARACTER | - | - | - | NULL | - | | |
|
|
|
|
|
|
|
|
|
|
**索引信息**:
|
|
|
|
|
- PRIMARY KEY: id
|
|
|
|
|
- UNIQUE KEY: uk_cluster_hostname (cluster_id, hostname)
|
|
|
|
|
- PRIMARY KEY: (id)
|
|
|
|
|
- INDEX: idx_nodes_cluster_id (cluster_id)
|
|
|
|
|
- INDEX: idx_nodes_status (status)
|
|
|
|
|
- INDEX: idx_nodes_last_heartbeat (last_heartbeat)
|
|
|
|
|
- INDEX: idx_nodes_ip_address (ip_address)
|
|
|
|
|
|
|
|
|
|
**外键约束**:
|
|
|
|
|
- fk_nodes_cluster_id: cluster_id → clusters.id
|
|
|
|
|
|
|
|
|
|
- INDEX: idx_nodes_last_heartbeat (last_heartbeat)
|
|
|
|
|
- INDEX: idx_nodes_status (status)
|
|
|
|
|
- INDEX: uk_cluster_hostname (cluster_id, hostname)
|
|
|
|
|
- FOREIGN KEY: FK(cluster_id) -> public.clusters(id)
|
|
|
|
|
#### 表名: system_logs (系统日志表)
|
|
|
|
|
**表说明**: 存储从Flume采集的原始日志数据
|
|
|
|
|
|
|
|
|
|
| 序号 | 字段名 | 数据类型 | 长度 | 精度 | 是否主键 | 是否为空 | 默认值 | 字段说明 | 备注 |
|
|
|
|
|
|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
| 1 | id | BIGINT | - | - | ✓ | NOT NULL | IDENTITY | 主键ID | |
|
|
|
|
|
| 2 | log_id | VARCHAR | 32 | - | - | NOT NULL | - | 日志唯一标识 | |
|
|
|
|
|
| 3 | fault_id | VARCHAR | 32 | - | - | NULL | - | 关联故障ID | 外键关联fault_records |
|
|
|
|
|
| 4 | cluster_id | BIGINT | - | - | - | NULL | - | 关联集群ID | 外键关联clusters表 |
|
|
|
|
|
| 5 | timestamp | TIMESTAMPTZ | - | - | - | NOT NULL | - | 日志时间戳 | |
|
|
|
|
|
| 6 | host | VARCHAR | 100 | - | - | NOT NULL | - | 主机名 | 产生日志的主机 |
|
|
|
|
|
| 7 | service | VARCHAR | 50 | - | - | NOT NULL | - | 服务名 | HDFS/YARN/MapReduce等 |
|
|
|
|
|
| 8 | log_level | VARCHAR | 10 | - | - | - | NOT NULL | - | 日志级别 | DEBUG/INFO/WARN/ERROR/FATAL |
|
|
|
|
|
| 1 | id | BIGINT | - | - | ✓ | NOT NULL | - | 主键ID | |
|
|
|
|
|
| 2 | log_id | CHARACTER | - | - | - | NOT NULL | - | 日志唯一标识 | |
|
|
|
|
|
| 3 | fault_id | CHARACTER | - | - | - | NULL | - | 关联故障标识(无外键) | |
|
|
|
|
|
| 4 | cluster_id | BIGINT | - | - | - | NULL | - | 关联集群ID | |
|
|
|
|
|
| 5 | host | CHARACTER | - | - | - | NOT NULL | - | 主机名 | |
|
|
|
|
|
| 6 | service | CHARACTER | - | - | - | NOT NULL | - | 服务名 | |
|
|
|
|
|
| 7 | source | CHARACTER | - | - | - | NULL | - | 来源 | |
|
|
|
|
|
| 8 | log_level | CHARACTER | - | - | - | NOT NULL | - | 日志级别(DEBUG/INFO/WARN/ERROR/FATAL) | |
|
|
|
|
|
| 9 | message | TEXT | - | - | - | NOT NULL | - | 日志消息 | |
|
|
|
|
|
| 10 | exception | TEXT | - | - | - | NULL | - | 异常堆栈 | |
|
|
|
|
|
| 11 | raw_log | TEXT | - | - | - | NULL | - | 原始日志内容 | |
|
|
|
|
|
| 12 | processed | BOOLEAN | - | - | - | NOT NULL | FALSE | 是否已处理 | 标记是否已被分析处理 |
|
|
|
|
|
| 13 | created_at | TIMESTAMPTZ | - | - | - | NOT NULL | NOW() | 创建时间 | |
|
|
|
|
|
| 12 | processed | BOOLEAN | - | - | - | NOT NULL | false | 是否已处理 | |
|
|
|
|
|
| 13 | created_at | TIMESTAMP | - | - | - | NOT NULL | now() | 创建时间 | |
|
|
|
|
|
|
|
|
|
|
**索引信息**:
|
|
|
|
|
- PRIMARY KEY: id
|
|
|
|
|
- UNIQUE KEY: uk_log_id (log_id)
|
|
|
|
|
- INDEX: idx_system_logs_fault_id (fault_id)
|
|
|
|
|
- PRIMARY KEY: (id)
|
|
|
|
|
- INDEX: idx_system_logs_cluster_id (cluster_id)
|
|
|
|
|
- INDEX: idx_system_logs_timestamp (timestamp)
|
|
|
|
|
- INDEX: idx_system_logs_fault_id (fault_id)
|
|
|
|
|
- INDEX: idx_system_logs_level (log_level)
|
|
|
|
|
- INDEX: idx_system_logs_processed (processed)
|
|
|
|
|
|
|
|
|
|
**外键约束**:
|
|
|
|
|
- fk_system_logs_fault_id: fault_id → fault_records.fault_id
|
|
|
|
|
- fk_system_logs_cluster_id: cluster_id → clusters.id
|
|
|
|
|
|
|
|
|
|
### 2.2 配置管理与用户表
|
|
|
|
|
|
|
|
|
|
- INDEX: idx_system_logs_timestamp ("timestamp")
|
|
|
|
|
- FOREIGN KEY: FK(cluster_id) -> public.clusters(id)
|
|
|
|
|
#### 表名: clusters (集群信息表)
|
|
|
|
|
**表说明**: 存储用户管理的集群信息
|
|
|
|
|
|
|
|
|
|
| 序号 | 字段名 | 数据类型 | 长度 | 精度 | 是否主键 | 是否为空 | 默认值 | 字段说明 | 备注 |
|
|
|
|
|
|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
| 1 | id | BIGINT | - | - | ✓ | NOT NULL | IDENTITY | 主键ID | |
|
|
|
|
|
| 1 | id | BIGINT | - | - | ✓ | NOT NULL | - | 主键ID | |
|
|
|
|
|
| 2 | uuid | UUID | - | - | - | NOT NULL | - | 集群唯一标识(UUID) | |
|
|
|
|
|
| 3 | name | VARCHAR | 100 | - | - | NOT NULL | - | 集群名称 | 唯一名称 |
|
|
|
|
|
| 4 | type | VARCHAR | 50 | - | - | NOT NULL | - | 集群类型 | Hadoop/Kubernetes等 |
|
|
|
|
|
| 5 | node_count | INT | - | - | - | NOT NULL | 0 | 节点数量 | |
|
|
|
|
|
| 6 | health_status | VARCHAR | 20 | - | - | - | NOT NULL | 'unknown' | 健康状态 | healthy/warning/error/unknown |
|
|
|
|
|
| 3 | name | CHARACTER | - | - | - | NOT NULL | - | 集群名称 | |
|
|
|
|
|
| 4 | type | CHARACTER | - | - | - | NOT NULL | - | 集群类型 | |
|
|
|
|
|
| 5 | node_count | INTEGER | - | - | - | NOT NULL | 0 | 集群节点数量 | |
|
|
|
|
|
| 6 | health_status | CHARACTER | - | - | - | NOT NULL | 'unknown'::character | 集群健康状态(healthy/warning/error/unknown) | |
|
|
|
|
|
| 7 | description | TEXT | - | - | - | NULL | - | 集群描述 | |
|
|
|
|
|
| 8 | config_info | JSONB | - | - | - | NULL | - | 集群配置信息 | JSONB |
|
|
|
|
|
| 9 | created_at | TIMESTAMPTZ | - | - | - | NOT NULL | NOW() | 创建时间 | |
|
|
|
|
|
| 10 | updated_at | TIMESTAMPTZ | - | - | - | NOT NULL | NOW() | 更新时间 | |
|
|
|
|
|
| 8 | config_info | JSONB | - | - | - | NULL | - | 集群配置信息(JSONB) | |
|
|
|
|
|
| 9 | created_at | TIMESTAMP | - | - | - | NOT NULL | now() | 创建时间 | |
|
|
|
|
|
| 10 | updated_at | TIMESTAMP | - | - | - | NOT NULL | now() | 更新时间 | |
|
|
|
|
|
| 11 | namenode_ip | INET | - | - | - | NULL | - | | |
|
|
|
|
|
| 12 | namenode_psw | CHARACTER | - | - | - | NULL | - | | |
|
|
|
|
|
| 13 | rm_ip | INET | - | - | - | NULL | - | | |
|
|
|
|
|
| 14 | rm_psw | CHARACTER | - | - | - | NULL | - | | |
|
|
|
|
|
|
|
|
|
|
**索引信息**:
|
|
|
|
|
- PRIMARY KEY: id
|
|
|
|
|
- UNIQUE KEY: uuid
|
|
|
|
|
- UNIQUE KEY: name
|
|
|
|
|
- INDEX: 可根据查询需要扩展
|
|
|
|
|
|
|
|
|
|
- PRIMARY KEY: (id)
|
|
|
|
|
#### 表名: user_cluster_mapping (用户与集群映射表)
|
|
|
|
|
**表说明**: 管理用户和集群的多对多关系
|
|
|
|
|
|
|
|
|
|
| 序号 | 字段名 | 数据类型 | 长度 | 精度 | 是否主键 | 是否为空 | 默认值 | 字段说明 | 备注 |
|
|
|
|
|
|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
| 1 | id | BIGINT | - | - | ✓ | NOT NULL | IDENTITY | 主键ID | |
|
|
|
|
|
| 2 | user_id | BIGINT | - | - | - | NOT NULL | - | 用户ID | 外键关联users表 |
|
|
|
|
|
| 3 | cluster_id | BIGINT | - | - | - | NOT NULL | - | 集群ID | 外键关联clusters表 |
|
|
|
|
|
| 4 | role_id | BIGINT | - | - | - | NOT NULL | - | 角色ID | 外键关联roles表 |
|
|
|
|
|
| 5 | created_at | TIMESTAMPTZ | - | - | - | NOT NULL | NOW() | 创建时间 | |
|
|
|
|
|
| 1 | id | BIGINT | - | - | ✓ | NOT NULL | - | 主键ID | |
|
|
|
|
|
| 2 | user_id | BIGINT | - | - | - | NOT NULL | - | 用户ID | |
|
|
|
|
|
| 3 | cluster_id | BIGINT | - | - | - | NOT NULL | - | 集群ID | |
|
|
|
|
|
| 4 | role_id | BIGINT | - | - | - | NOT NULL | - | 角色ID | |
|
|
|
|
|
| 5 | created_at | TIMESTAMP | - | - | - | NOT NULL | now() | 创建时间 | |
|
|
|
|
|
|
|
|
|
|
**索引信息**:
|
|
|
|
|
- PRIMARY KEY: id
|
|
|
|
|
- UNIQUE KEY: uk_user_cluster (user_id, cluster_id)
|
|
|
|
|
|
|
|
|
|
**外键约束**:
|
|
|
|
|
- fk_mapping_user_id: user_id → users.id
|
|
|
|
|
- fk_mapping_cluster_id: cluster_id → clusters.id
|
|
|
|
|
- fk_mapping_role_id: role_id → roles.id
|
|
|
|
|
|
|
|
|
|
- PRIMARY KEY: (id)
|
|
|
|
|
- FOREIGN KEY: FK(cluster_id) -> public.clusters(id)
|
|
|
|
|
- FOREIGN KEY: FK(role_id) -> public.roles(id)
|
|
|
|
|
- FOREIGN KEY: FK(user_id) -> public.users(id)
|
|
|
|
|
#### 表名: app_configurations (应用配置表)
|
|
|
|
|
**表说明**: 存储系统各类配置信息,包括系统参数、告警规则和通知设置
|
|
|
|
|
|
|
|
|
|
| 序号 | 字段名 | 数据类型 | 长度 | 精度 | 是否主键 | 是否为空 | 默认值 | 字段说明 | 备注 |
|
|
|
|
|
|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
| 1 | id | BIGINT | - | - | ✓ | NOT NULL | IDENTITY | 主键ID | |
|
|
|
|
|
| 2 | config_type | VARCHAR | 20 | - | - | - | NOT NULL | - | 配置类型 | system/alert_rule/notification/llm |
|
|
|
|
|
| 3 | config_key | VARCHAR | 100 | - | - | NOT NULL | - | 配置键 | 配置的唯一标识 |
|
|
|
|
|
| 4 | config_value | JSONB | - | - | - | NOT NULL | - | 配置值 | JSONB格式的配置内容 |
|
|
|
|
|
| 5 | description | VARCHAR | 500 | - | - | NULL | - | 配置描述 | 配置项的说明 |
|
|
|
|
|
| 6 | is_enabled | BOOLEAN | - | - | - | NOT NULL | TRUE | 是否启用 | 配置是否生效 |
|
|
|
|
|
| 7 | created_at | TIMESTAMPTZ | - | - | - | NOT NULL | NOW() | 创建时间 | |
|
|
|
|
|
| 8 | updated_at | TIMESTAMPTZ | - | - | - | NOT NULL | NOW() | 更新时间 | |
|
|
|
|
|
| 1 | id | BIGINT | - | - | ✓ | NOT NULL | - | 主键ID | |
|
|
|
|
|
| 2 | config_type | CHARACTER | - | - | - | NOT NULL | - | 配置类型(system/alert_rule/notification/llm) | |
|
|
|
|
|
| 3 | config_key | CHARACTER | - | - | - | NOT NULL | - | 配置键 | |
|
|
|
|
|
| 4 | config_value | JSONB | - | - | - | NOT NULL | - | 配置值(JSONB) | |
|
|
|
|
|
| 5 | description | CHARACTER | - | - | - | NULL | - | 配置描述 | |
|
|
|
|
|
| 6 | is_enabled | BOOLEAN | - | - | - | NOT NULL | true | 是否启用 | |
|
|
|
|
|
| 7 | created_at | TIMESTAMP | - | - | - | NOT NULL | now() | 创建时间 | |
|
|
|
|
|
| 8 | updated_at | TIMESTAMP | - | - | - | NOT NULL | now() | 更新时间 | |
|
|
|
|
|
|
|
|
|
|
**索引信息**:
|
|
|
|
|
- PRIMARY KEY: id
|
|
|
|
|
- UNIQUE KEY: uk_app_config (config_type, config_key)
|
|
|
|
|
- PRIMARY KEY: (id)
|
|
|
|
|
- INDEX: idx_app_config_enabled (is_enabled)
|
|
|
|
|
|
|
|
|
|
#### 表名: users (用户表)
|
|
|
|
|
**表说明**: 系统用户信息
|
|
|
|
|
|
|
|
|
|
| 序号 | 字段名 | 数据类型 | 长度 | 精度 | 是否主键 | 是否为空 | 默认值 | 字段说明 | 备注 |
|
|
|
|
|
|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
| 1 | id | BIGINT | - | - | ✓ | NOT NULL | IDENTITY | 主键ID | |
|
|
|
|
|
| 2 | username | VARCHAR | 50 | - | - | NOT NULL | - | 用户名 | 登录用户名 |
|
|
|
|
|
| 3 | email | VARCHAR | 100 | - | - | NOT NULL | - | 邮箱 | 用户邮箱地址 |
|
|
|
|
|
| 4 | password_hash | VARCHAR | 255 | - | - | NOT NULL | - | 密码哈希 | 加密后的密码 |
|
|
|
|
|
| 5 | full_name | VARCHAR | 100 | - | - | NOT NULL | - | 姓名 | 用户真实姓名 |
|
|
|
|
|
| 6 | is_active | BOOLEAN | - | - | - | NOT NULL | TRUE | 是否激活 | 账号是否可用 |
|
|
|
|
|
| 7 | last_login | TIMESTAMPTZ | - | - | - | NULL | - | 最后登录时间 | 最后一次登录时间 |
|
|
|
|
|
| 8 | created_at | TIMESTAMPTZ | - | - | - | NOT NULL | NOW() | 创建时间 | 账号创建时间 |
|
|
|
|
|
| 9 | updated_at | TIMESTAMPTZ | - | - | - | NOT NULL | NOW() | 更新时间 | 账号更新时间 |
|
|
|
|
|
| 1 | id | BIGINT | - | - | ✓ | NOT NULL | - | 主键ID | |
|
|
|
|
|
| 2 | username | CHARACTER | - | - | - | NOT NULL | - | 用户名 | |
|
|
|
|
|
| 3 | email | CHARACTER | - | - | - | NOT NULL | - | 邮箱 | |
|
|
|
|
|
| 4 | password_hash | CHARACTER | - | - | - | NOT NULL | - | 密码哈希 | |
|
|
|
|
|
| 5 | full_name | CHARACTER | - | - | - | NOT NULL | - | 姓名 | |
|
|
|
|
|
| 6 | is_active | BOOLEAN | - | - | - | NOT NULL | true | 是否激活 | |
|
|
|
|
|
| 7 | last_login | TIMESTAMP | - | - | - | NULL | - | 最后登录时间 | |
|
|
|
|
|
| 8 | created_at | TIMESTAMP | - | - | - | NOT NULL | now() | 创建时间 | |
|
|
|
|
|
| 9 | updated_at | TIMESTAMP | - | - | - | NOT NULL | now() | 更新时间 | |
|
|
|
|
|
|
|
|
|
|
**索引信息**:
|
|
|
|
|
- PRIMARY KEY: id
|
|
|
|
|
- UNIQUE KEY: uk_username (username)
|
|
|
|
|
- UNIQUE KEY: uk_email (email)
|
|
|
|
|
|
|
|
|
|
- PRIMARY KEY: (id)
|
|
|
|
|
#### 表名: audit_logs (操作审计表)
|
|
|
|
|
**表说明**: 记录用户操作审计日志
|
|
|
|
|
|
|
|
|
|
| 序号 | 字段名 | 数据类型 | 长度 | 精度 | 是否主键 | 是否为空 | 默认值 | 字段说明 | 备注 |
|
|
|
|
|
|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
| 1 | id | BIGINT | - | - | ✓ | NOT NULL | IDENTITY | 主键ID | |
|
|
|
|
|
| 2 | user_id | BIGINT | - | - | - | NULL | - | 用户ID | 关联users表 |
|
|
|
|
|
| 3 | cluster_id | BIGINT | - | - | - | NULL | - | 集群ID | 关联clusters表 |
|
|
|
|
|
| 4 | role_id | BIGINT | - | - | - | NULL | - | 角色ID | 关联roles表 |
|
|
|
|
|
| 4 | username | VARCHAR | 50 | - | - | NOT NULL | - | 用户名 | 操作用户名 |
|
|
|
|
|
| 5 | action | VARCHAR | 100 | - | - | NOT NULL | - | 操作动作 | 具体的操作类型 |
|
|
|
|
|
| 6 | resource_type | VARCHAR | 50 | - | - | NOT NULL | - | 资源类型 | 操作的资源类型 |
|
|
|
|
|
| 7 | resource_id | VARCHAR | 100 | - | - | NULL | - | 资源ID | 操作的资源标识 |
|
|
|
|
|
| 8 | ip_address | INET | - | - | - | NOT NULL | - | IP地址 | 操作来源IP |
|
|
|
|
|
| 9 | request_data | JSONB | - | - | - | NULL | - | 请求数据 | 请求的详细数据 |
|
|
|
|
|
| 10 | response_status | INT | - | - | - | NULL | - | 响应状态码 | HTTP响应状态 |
|
|
|
|
|
| 11 | created_at | TIMESTAMPTZ | - | - | - | NOT NULL | NOW() | 操作发生时间 | |
|
|
|
|
|
| 1 | id | BIGINT | - | - | ✓ | NOT NULL | - | 主键ID | |
|
|
|
|
|
| 2 | user_id | BIGINT | - | - | - | NULL | - | 用户ID | |
|
|
|
|
|
| 3 | cluster_id | BIGINT | - | - | - | NULL | - | 集群ID | |
|
|
|
|
|
| 4 | role_id | BIGINT | - | - | - | NULL | - | 角色ID | |
|
|
|
|
|
| 5 | username | CHARACTER | - | - | - | NOT NULL | - | 用户名 | |
|
|
|
|
|
| 6 | action | CHARACTER | - | - | - | NOT NULL | - | 操作动作 | |
|
|
|
|
|
| 7 | resource_type | CHARACTER | - | - | - | NOT NULL | - | 资源类型 | |
|
|
|
|
|
| 8 | resource_id | CHARACTER | - | - | - | NULL | - | 资源ID | |
|
|
|
|
|
| 9 | ip_address | INET | - | - | - | NOT NULL | - | 请求来源IP(INET, 兼容IPv4/IPv6) | |
|
|
|
|
|
| 10 | request_data | JSONB | - | - | - | NULL | - | 请求数据(JSONB) | |
|
|
|
|
|
| 11 | response_status | INTEGER | - | - | - | NULL | - | 响应状态码 | |
|
|
|
|
|
| 12 | created_at | TIMESTAMP | - | - | - | NOT NULL | now() | 创建时间 | |
|
|
|
|
|
|
|
|
|
|
**索引信息**:
|
|
|
|
|
- PRIMARY KEY: id
|
|
|
|
|
- INDEX: idx_audit_logs_user_id (user_id)
|
|
|
|
|
- INDEX: idx_audit_logs_cluster_id (cluster_id)
|
|
|
|
|
- INDEX: idx_audit_logs_role_id (role_id)
|
|
|
|
|
- PRIMARY KEY: (id)
|
|
|
|
|
- INDEX: idx_audit_logs_action (action)
|
|
|
|
|
- INDEX: idx_audit_logs_cluster_id (cluster_id)
|
|
|
|
|
- INDEX: idx_audit_logs_created_at (created_at)
|
|
|
|
|
|
|
|
|
|
**外键约束**:
|
|
|
|
|
- fk_audit_logs_user_id: user_id → users.id
|
|
|
|
|
- fk_audit_logs_cluster_id: cluster_id → clusters.id
|
|
|
|
|
- fk_audit_logs_role_id: role_id → roles.id
|
|
|
|
|
|
|
|
|
|
### 2.3 扩展表
|
|
|
|
|
|
|
|
|
|
- INDEX: idx_audit_logs_role_id (role_id)
|
|
|
|
|
- INDEX: idx_audit_logs_user_id (user_id)
|
|
|
|
|
- FOREIGN KEY: FK(cluster_id) -> public.clusters(id)
|
|
|
|
|
- FOREIGN KEY: FK(role_id) -> public.roles(id)
|
|
|
|
|
- FOREIGN KEY: FK(user_id) -> public.users(id)
|
|
|
|
|
#### 表名: repair_templates (修复模板表)
|
|
|
|
|
**表说明**: 存储常见故障的修复模板
|
|
|
|
|
|
|
|
|
|
| 序号 | 字段名 | 数据类型 | 长度 | 精度 | 是否主键 | 是否为空 | 默认值 | 字段说明 | 备注 |
|
|
|
|
|
|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
| 1 | id | BIGINT | - | - | ✓ | NOT NULL | IDENTITY | 主键ID | |
|
|
|
|
|
| 2 | template_name | VARCHAR | 100 | - | - | NOT NULL | - | 模板名称 | 模板的唯一名称 |
|
|
|
|
|
| 3 | fault_type | VARCHAR | 50 | - | - | NOT NULL | - | 适用故障类型 | 模板适用的故障类型 |
|
|
|
|
|
| 4 | script_content | TEXT | - | - | - | NOT NULL | - | 脚本内容 | 修复脚本或命令 |
|
|
|
|
|
| 5 | risk_level | VARCHAR | 20 | - | - | - | NOT NULL | 'medium' | 风险级别 | low/medium/high |
|
|
|
|
|
| 6 | description | TEXT | - | - | - | NULL | - | 模板描述 | 模板的功能说明 |
|
|
|
|
|
| 7 | parameters | JSONB | - | - | - | NULL | - | 参数定义 | 脚本所需参数的定义 |
|
|
|
|
|
| 8 | created_by | VARCHAR | 50 | - | - | NULL | - | 创建者 | 模板的创建者 |
|
|
|
|
|
| 9 | created_at | TIMESTAMPTZ | - | - | - | NOT NULL | NOW() | 创建时间 | |
|
|
|
|
|
| 10 | updated_at | TIMESTAMPTZ | - | - | - | NOT NULL | NOW() | 更新时间 | |
|
|
|
|
|
| 1 | id | BIGINT | - | - | ✓ | NOT NULL | - | 主键ID | |
|
|
|
|
|
| 2 | template_name | CHARACTER | - | - | - | NOT NULL | - | 模板名称 | |
|
|
|
|
|
| 3 | fault_type | CHARACTER | - | - | - | NOT NULL | - | 适用故障类型 | |
|
|
|
|
|
| 4 | script_content | TEXT | - | - | - | NOT NULL | - | 脚本内容 | |
|
|
|
|
|
| 5 | risk_level | CHARACTER | - | - | - | NOT NULL | 'medium'::character | 风险级别(low/medium/high) | |
|
|
|
|
|
| 6 | description | TEXT | - | - | - | NULL | - | 模板描述 | |
|
|
|
|
|
| 7 | parameters | JSONB | - | - | - | NULL | - | 模板参数定义(JSONB) | |
|
|
|
|
|
| 8 | created_by | CHARACTER | - | - | - | NULL | - | 创建人 | |
|
|
|
|
|
| 9 | created_at | TIMESTAMP | - | - | - | NOT NULL | now() | 创建时间 | |
|
|
|
|
|
| 10 | updated_at | TIMESTAMP | - | - | - | NOT NULL | now() | 更新时间 | |
|
|
|
|
|
|
|
|
|
|
**索引信息**:
|
|
|
|
|
- PRIMARY KEY: id
|
|
|
|
|
- UNIQUE KEY: uk_template_name (template_name)
|
|
|
|
|
- INDEX: idx_fault_type (fault_type)
|
|
|
|
|
|
|
|
|
|
## 3. 枚举值定义
|
|
|
|
|
|
|
|
|
|
### 3.1 故障级别 (fault_level)
|
|
|
|
|
- `low`: 低级别故障,影响较小
|
|
|
|
|
- `medium`: 中等级别故障,需要关注
|
|
|
|
|
- `high`: 高级别故障,需要及时处理
|
|
|
|
|
- `critical`: 严重故障,需要立即处理
|
|
|
|
|
|
|
|
|
|
### 3.2 故障状态 (status)
|
|
|
|
|
- `detected`: 已检测到,等待分析
|
|
|
|
|
- `analyzing`: 正在分析中
|
|
|
|
|
- `repairing`: 正在修复中
|
|
|
|
|
- `resolved`: 已解决
|
|
|
|
|
- `failed`: 修复失败
|
|
|
|
|
|
|
|
|
|
### 3.3 节点角色 (node_role)
|
|
|
|
|
- `NameNode`: Hadoop NameNode节点
|
|
|
|
|
- `DataNode`: Hadoop DataNode节点
|
|
|
|
|
- `ResourceManager`: YARN ResourceManager节点
|
|
|
|
|
- `NodeManager`: YARN NodeManager节点
|
|
|
|
|
|
|
|
|
|
### 3.4 节点状态 (node_status)
|
|
|
|
|
- `healthy`: 健康
|
|
|
|
|
- `unhealthy`: 不健康
|
|
|
|
|
- `warning`: 警告
|
|
|
|
|
- `unknown`: 状态未知
|
|
|
|
|
|
|
|
|
|
### 3.5 日志级别 (log_level)
|
|
|
|
|
- `DEBUG`: 调试信息
|
|
|
|
|
- `INFO`: 一般信息
|
|
|
|
|
- `WARN`: 警告信息
|
|
|
|
|
- `ERROR`: 错误信息
|
|
|
|
|
- `FATAL`: 致命错误
|
|
|
|
|
|
|
|
|
|
### 3.6 执行状态 (execution_status)
|
|
|
|
|
- `pending`: 等待执行
|
|
|
|
|
- `running`: 正在执行
|
|
|
|
|
- `success`: 执行成功
|
|
|
|
|
- `failed`: 执行失败
|
|
|
|
|
- `timeout`: 执行超时
|
|
|
|
|
|
|
|
|
|
### 3.7 角色标识 (role_key)
|
|
|
|
|
- `admin`: 系统管理员,拥有所有权限
|
|
|
|
|
- `operator`: 运维工程师,可以执行修复操作
|
|
|
|
|
- `viewer`: 查看者,只能查看信息
|
|
|
|
|
- `cluster_admin`: 集群管理员(用于集群范围权限)
|
|
|
|
|
|
|
|
|
|
## 4. JSON字段结构说明
|
|
|
|
|
|
|
|
|
|
### 4.1 affected_nodes (受影响节点)
|
|
|
|
|
```json
|
|
|
|
|
[
|
|
|
|
|
{
|
|
|
|
|
"node_uuid": "a1b2c3d4-e5f6-7890-1234-567890abcdef",
|
|
|
|
|
"hostname": "hadoop-master",
|
|
|
|
|
"impact_level": "high"
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 4.2 target_nodes (目标节点)
|
|
|
|
|
```json
|
|
|
|
|
[
|
|
|
|
|
{
|
|
|
|
|
"node_uuid": "a1b2c3d4-e5f6-7890-1234-567890abcdef",
|
|
|
|
|
"hostname": "hadoop-master",
|
|
|
|
|
"execution_order": 1
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 4.3 parameters (模板参数)
|
|
|
|
|
```json
|
|
|
|
|
[
|
|
|
|
|
{
|
|
|
|
|
"name": "target_directory",
|
|
|
|
|
"type": "string",
|
|
|
|
|
"description": "The target directory for the cleanup script.",
|
|
|
|
|
"required": true
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 4.4 config_info (集群配置信息)
|
|
|
|
|
```json
|
|
|
|
|
{
|
|
|
|
|
"namenode_rpc_address": "hdfs://namenode:8020",
|
|
|
|
|
"resourcemanager_address": "yarn-rm:8032",
|
|
|
|
|
"zookeeper_quorum": "zk1:2181,zk2:2181"
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 4.5 app_configurations.config_value (配置值)
|
|
|
|
|
**config_type: 'system'**
|
|
|
|
|
```json
|
|
|
|
|
{
|
|
|
|
|
"max_concurrent_repairs": 5,
|
|
|
|
|
"log_retention_days": 30
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
**config_type: 'alert_rule'**
|
|
|
|
|
```json
|
|
|
|
|
{
|
|
|
|
|
"metric": "cpu_usage",
|
|
|
|
|
"threshold": 90,
|
|
|
|
|
"operator": ">",
|
|
|
|
|
"duration_sec": 300,
|
|
|
|
|
"severity": "high"
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
**config_type: 'notification'**
|
|
|
|
|
```json
|
|
|
|
|
{
|
|
|
|
|
"channel": "email",
|
|
|
|
|
"recipients": ["admin@example.com"],
|
|
|
|
|
"template_id": "fault_notification_template"
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
**config_type: 'llm'**
|
|
|
|
|
```json
|
|
|
|
|
{
|
|
|
|
|
"provider": "openai",
|
|
|
|
|
"api_key": "sk-xxxxxxxx",
|
|
|
|
|
"model": "gpt-4"
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
(敏感信息需通过安全配置管理,避免明文保存)
|
|
|
|
|
|
|
|
|
|
## 5. 数据完整性约束
|
|
|
|
|
|
|
|
|
|
### 5.1 主键约束
|
|
|
|
|
所有表都有主键约束;多数表采用`IDENTITY`自增主键(PostgreSQL GENERATED ALWAYS AS IDENTITY)。
|
|
|
|
|
|
|
|
|
|
### 5.2 唯一性约束
|
|
|
|
|
- fault_records.fault_id
|
|
|
|
|
- exec_logs.exec_id
|
|
|
|
|
- nodes.(cluster_id, hostname)
|
|
|
|
|
- system_logs.log_id
|
|
|
|
|
- clusters.uuid
|
|
|
|
|
- clusters.name
|
|
|
|
|
- user_cluster_mapping.(user_id, cluster_id)
|
|
|
|
|
- user_role_mapping.(user_id, role_id)
|
|
|
|
|
- role_permission_mapping.(role_id, permission_id)
|
|
|
|
|
- app_configurations.(config_type, config_key)
|
|
|
|
|
- roles.role_key
|
|
|
|
|
- permissions.permission_key
|
|
|
|
|
- users.username
|
|
|
|
|
- users.email
|
|
|
|
|
- repair_templates.template_name
|
|
|
|
|
|
|
|
|
|
### 5.3 外键约束
|
|
|
|
|
- nodes.cluster_id → clusters.id
|
|
|
|
|
- fault_records.cluster_id → clusters.id
|
|
|
|
|
- exec_logs.fault_id → fault_records.fault_id
|
|
|
|
|
- system_logs.fault_id → fault_records.fault_id
|
|
|
|
|
- system_logs.cluster_id → clusters.id
|
|
|
|
|
- user_cluster_mapping.user_id → users.id
|
|
|
|
|
- user_cluster_mapping.cluster_id → clusters.id
|
|
|
|
|
- user_cluster_mapping.role_id → roles.id
|
|
|
|
|
- user_role_mapping.user_id → users.id
|
|
|
|
|
- user_role_mapping.role_id → roles.id
|
|
|
|
|
- role_permission_mapping.role_id → roles.id
|
|
|
|
|
- role_permission_mapping.permission_id → permissions.id
|
|
|
|
|
- audit_logs.user_id → users.id
|
|
|
|
|
- audit_logs.cluster_id → clusters.id
|
|
|
|
|
- audit_logs.role_id → roles.id
|
|
|
|
|
|
|
|
|
|
### 5.4 检查约束
|
|
|
|
|
- nodes.cpu_usage: 0.00 <= cpu_usage <= 100.00
|
|
|
|
|
- nodes.memory_usage: 0.00 <= memory_usage <= 100.00
|
|
|
|
|
- nodes.disk_usage: 0.00 <= disk_usage <= 100.00
|
|
|
|
|
- fault_records.fault_level ∈ {low, medium, high, critical}
|
|
|
|
|
- fault_records.status ∈ {detected, analyzing, repairing, resolved, failed}
|
|
|
|
|
- exec_logs.risk_level ∈ {low, medium, high}
|
|
|
|
|
- exec_logs.execution_status ∈ {pending, running, success, failed, timeout}
|
|
|
|
|
|
|
|
|
|
## 9. PowerDesigner建模建议
|
|
|
|
|
|
|
|
|
|
### 9.1 物理数据模型(PDM)
|
|
|
|
|
1. 导入SQL脚本创建基础结构
|
|
|
|
|
2. 设置表和字段的注释
|
|
|
|
|
3. 配置索引和约束
|
|
|
|
|
4. 生成数据库文档
|
|
|
|
|
|
|
|
|
|
### 9.2 概念数据模型(CDM)
|
|
|
|
|
1. 定义实体和属性
|
|
|
|
|
2. 建立实体间关系
|
|
|
|
|
3. 设置业务规则
|
|
|
|
|
4. 生成概念模型图
|
|
|
|
|
|
|
|
|
|
### 9.3 逻辑数据模型(LDM)
|
|
|
|
|
1. 从CDM生成LDM
|
|
|
|
|
2. 优化表结构设计
|
|
|
|
|
3. 设置数据类型和约束
|
|
|
|
|
4. 验证模型完整性
|
|
|
|
|
|
|
|
|
|
## 10. 维护建议
|
|
|
|
|
|
|
|
|
|
### 10.1 定期维护
|
|
|
|
|
- 每周分析表统计信息
|
|
|
|
|
- 每月检查索引使用情况
|
|
|
|
|
- 每季度进行表空间整理
|
|
|
|
|
|
|
|
|
|
### 10.2 性能监控
|
|
|
|
|
- 监控慢查询日志
|
|
|
|
|
- 跟踪表增长趋势
|
|
|
|
|
- 优化高频查询索引
|
|
|
|
|
|
|
|
|
|
### 10.3 数据归档
|
|
|
|
|
- system_logs表按月分区
|
|
|
|
|
- 历史数据定期归档
|
|
|
|
|
- 保持表大小合理
|
|
|
|
|
- PRIMARY KEY: (id)
|
|
|
|
|
- INDEX: idx_repair_templates_fault_type (fault_type)
|
|
|
|
|
|