# DataPointer 功能架构图

## 一、总体功能架构图

```mermaid
flowchart TB
    %% 样式定义
    classDef userLayer fill:#e1f5fe,stroke:#01579b,stroke-width:2px,color:#000
    classDef appLayer fill:#e8f5e9,stroke:#2e7d32,stroke-width:2px,color:#000
    classDef securityLayer fill:#fff3e0,stroke:#ef6c00,stroke-width:2px,color:#000
    classDef engineLayer fill:#f3e5f5,stroke:#6a1b9a,stroke-width:2px,color:#000
    classDef dataLayer fill:#eceff1,stroke:#455a64,stroke-width:2px,color:#000
    classDef infraLayer fill:#fce4ec,stroke:#c2185b,stroke-width:2px,color:#000

    %% 用户层
    subgraph L5["👤 用户层"]
        U1[数据安全管理员]
        U2[合规审计员]
        U3[分类打标员]
        U4[系统管理员]
        U5[业务分析师]
    end

    %% 展示层
    subgraph L4["🖥️ 展示层"]
        V1[数据资产仪表盘]
        V2[分类分级工作台]
        V3[安全风险驾驶舱]
        V4[合规报告中心]
        V5[任务与工单看板]
    end

    %% 业务应用层
    subgraph L3["📦 业务应用层"]
        direction TB
        subgraph M1["资产管理"]
            A1[数据源管理]
            A2[元数据目录]
            A3[Schema变更追踪]
        end
        subgraph M2["分类分级"]
            A4[分类项目管理]
            A5[标注任务中心]
            A6[规则模板管理]
        end
        subgraph M3["安全运营"]
            A7[告警规则]
            A8[工单流转]
            A9[API资产管理]
        end
        subgraph M4["报表中心"]
            A10[统计报表]
            A11[报告导出]
            A12[操作审计]
        end
    end

    %% 安全能力层
    subgraph L2["🔒 安全能力层"]
        direction TB
        subgraph S1["数据保护"]
            B1[静态脱敏引擎]
            B2[数字水印溯源]
        end
        subgraph S2["风险合规"]
            B3[风险评分模型]
            B4[合规检查引擎]
        end
        subgraph S3["血缘追溯"]
            B5[SQL血缘解析]
            B6[血缘关系图谱]
        end
    end

    %% 核心引擎层
    subgraph L1["⚙️ 核心引擎层"]
        direction TB
        subgraph E1["采集与识别"]
            C1[元数据采集引擎]
            C2[增量扫描引擎]
            C3[Schema比对引擎]
        end
        subgraph E2["智能分类"]
            C4[规则匹配引擎]
            C5[语义相似度引擎]
            C6[ML分类模型]
        end
        subgraph E3["文件解析"]
            C7[Word/Excel解析]
            C8[PDF文本提取]
            C9[非结构化识别]
        end
    end

    %% 数据源层
    subgraph L0["🗄️ 数据源层"]
        D1[(PostgreSQL)]
        D2[(MySQL)]
        D3[(Oracle)]
        D4[(SQLServer)]
        D5[(达梦DM)]
        D6[MinIO对象存储]
        D7[Swagger/OpenAPI]
    end

    %% 基础设施层
    subgraph INF["☁️ 基础设施层"]
        I1[(PostgreSQL 16)]
        I2[(Redis 7)]
        I3[MinIO]
        I4[Celery Worker]
        I5[Celery Beat]
    end

    %% 连接关系
    U1 --> V1 & V3
    U2 --> V4
    U3 --> V2 & V5
    U4 --> V1 & V4 & V5
    U5 --> V1 & V2

    V1 --> A1 & A2 & A10
    V2 --> A4 & A5 & A6
    V3 --> A7 & A8 & A10
    V4 --> A11 & A12
    V5 --> A5 & A8

    A1 --> C1
    A2 --> C1 & C2
    A3 --> C3
    A4 --> C4 & C5 & C6
    A5 --> C4
    A6 --> C4 & C5
    A7 --> B3 & B4
    A8 --> B3
    A9 --> C9
    A10 --> B3 & B4
    A11 --> B1 & B2

    B1 --> C1
    B2 --> C7 & C8
    B3 --> C4 & C6
    B4 --> C4 & C6
    B5 --> C1
    B6 --> B5

    C1 --> D1 & D2 & D3 & D4 & D5
    C7 --> D6
    C8 --> D6
    C9 --> D6 & D7

    C1 --> I1
    C2 --> I2
    C4 --> I4
    C6 --> I4
    B3 --> I5
    B4 --> I5

    %% 样式应用
    class U1,U2,U3,U4,U5 userLayer
    class V1,V2,V3,V4,V5 userLayer
    class A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12 appLayer
    class B1,B2,B3,B4,B5,B6 securityLayer
    class C1,C2,C3,C4,C5,C6,C7,C8,C9 engineLayer
    class D1,D2,D3,D4,D5,D6,D7 dataLayer
    class I1,I2,I3,I4,I5 infraLayer
```

---

## 二、数据流向架构图

```mermaid
flowchart LR
    subgraph 输入["📥 数据输入"]
        IN1[关系型数据库]
        IN2[非结构化文件]
        IN3[API文档]
        IN4[SQL脚本]
    end

    subgraph 处理["🔧 核心处理"]
        P1[元数据采集]
        P2[规则/ML分类]
        P3[风险评分]
        P4[合规扫描]
    end

    subgraph 存储["💾 数据存储"]
        S1[(PostgreSQL<br/>业务数据)]
        S2[(Redis<br/>缓存/队列)]
        S3[MinIO<br/>文件存储]
    end

    subgraph 输出["📤 数据输出"]
        OUT1[分类结果库]
        OUT2[风险评分报告]
        OUT3[合规差距分析]
        OUT4[血缘关系图]
        OUT5[脱敏/水印数据]
    end

    IN1 --> P1 --> S1
    IN2 --> P2 --> S3
    IN3 --> P2 --> S1
    IN4 --> P4 --> S1

    S1 --> P2 --> OUT1
    S1 --> P3 --> OUT2
    S1 --> P4 --> OUT3
    S1 --> P4 --> OUT4
    S3 --> P4 --> OUT5

    S2 -.-> P1 & P2 & P3 & P4
```

---

## 三、安全能力闭环图

```mermaid
flowchart TD
    A[数据发现] --> B[自动分类分级]
    B --> C[风险量化评估]
    C --> D{风险等级?}

    D -->|高风险| E[触发告警]
    D -->|中风险| F[生成工单]
    D -->|低风险| G[持续监控]

    E --> H[数据脱敏]
    F --> H
    H --> I[数字水印]
    I --> J[合规检查]
    J --> K{合规通过?}

    K -->|否| L[整改优化]
    L --> B
    K -->|是| M[报告导出]
    G --> N[Schema变更追踪]
    N --> C
```

---

## 四、系统部署架构图

```mermaid
flowchart TB
    subgraph 外部用户["外部用户"]
        USER[浏览器/客户端]
    end

    subgraph 接入层["接入层"]
        NGINX[Nginx<br/>反向代理/负载均衡]
    end

    subgraph 应用层["应用层"]
        FE[Vue3 前端<br/>静态资源]
        BE1[FastAPI 实例1]
        BE2[FastAPI 实例2]
        WORKER1[Celery Worker 1]
        WORKER2[Celery Worker 2]
        BEAT[Celery Beat]
        FLOWER[Flower 监控]
    end

    subgraph 数据层["数据层"]
        PG[(PostgreSQL<br/>主从集群)]
        REDIS[(Redis<br/>Sentinel)]
        MINIO[MinIO<br/>分布式对象存储]
    end

    USER --> NGINX
    NGINX --> FE
    NGINX --> BE1 & BE2
    BE1 & BE2 --> PG & REDIS & MINIO
    BEAT --> REDIS
    WORKER1 & WORKER2 --> REDIS & PG & MINIO
    FLOWER --> REDIS
```

---

## 五、核心业务流程图

### 5.1 数据分类分级流程

```mermaid
sequenceDiagram
    actor 管理员
    participant 前端
    participant 后端API
    participant Celery
    participant 数据库

    管理员->>前端: 创建分类项目
    前端->>后端API: POST /projects
    后端API->>数据库: 保存项目配置
    数据库-->>后端API: 返回项目ID
    后端API-->>前端: 创建成功

    管理员->>前端: 启动自动分类
    前端->>后端API: POST /auto-classify/{id}
    后端API->>Celery: 投递异步任务
    Celery-->>后端API: 任务ID
    后端API-->>前端: 已开始

    loop 进度轮询
        前端->>后端API: GET /auto-classify-status
        后端API-->>前端: 当前进度
    end

    Celery->>数据库: 写入分类结果
    Celery-->>后端API: 任务完成

    管理员->>前端: 查看结果并人工复核
    前端->>后端API: PUT /results/{id}/label
    后端API->>数据库: 更新结果状态
```

### 5.2 风险告警与工单流程

```mermaid
sequenceDiagram
    participant 定时器
    participant CeleryBeat
    participant 告警引擎
    participant 数据库
    actor 安全管理员
    participant 工单系统

    定时器->>CeleryBeat: 触发每日扫描
    CeleryBeat->>告警引擎: 执行风险重算
    告警引擎->>数据库: 查询敏感数据分布
    告警引擎->>告警引擎: 比对阈值规则

    alt 触发告警条件
        告警引擎->>数据库: 写入告警记录
        告警引擎-->>安全管理员: 站内消息通知
        安全管理员->>工单系统: 一键转工单
        工单系统->>数据库: 创建工单记录
        工单系统-->>安全管理员: 指派处理人
    else 未触发
        告警引擎->>数据库: 更新风险评分
    end

    安全管理员->>工单系统: 处理完成
    工单系统->>数据库: 更新工单状态
```

---

*DataPointer 功能架构图 v1.0 | 由 DataPointer 项目组编制*
