安捷智数——数据集成与治理平台产品文档 首页

产品概览

发布于 2026年7月3日

01 — 产品概览与架构

文档版本:2026-06-11 · v3.0
适用读者:所有用户 — 产品、实施、测试、新成员、甲方验收
API 技术参考api-reference/01-overview.md


1 产品定位

SMDS(单机现代数据栈)是一套面向中小企业的自助式数据平台,将现代数据栈的核心能力——数据集成、数据仓库、数据治理、数据服务——整合为 Docker Compose 一键部署的单机解决方案。

核心价值主张

特性 说明
开箱即用 docker compose up 即可启动完整数据平台,无需逐个安装组件
低门槛 可视化 Web UI 操作,无需手写 EL 代码,业务人员也能参与数据治理
双通道数据集成 同时支持数据库直连(MSSQL / Postgres / MySQL / HANA 等)和 REST API 连接器
数据治理一体化 字段映射、质量规则、安全分级在一个工作流中完成
Dev / Prod 隔离 开发环境与生产环境的配置和调度完全隔离,通过发布中心一键同步

2 整体架构

2.1 数据流全景

flowchart TB
    subgraph 接入层["数据集成层(双通道)"]
        direction LR
        subgraph DBEL["DB EL 通道"]
            DB1["源库<br/>MSSQL / PG<br/>MySQL / HANA"]
            DB2["dlt<br/>YAML 驱动<br/>db_{id}.yml"]
        end
        subgraph APIEL["API EL 通道"]
            API1["REST API<br/>CRM / ERP<br/>WMS / OA"]
            API2["dlt 自定义 source<br/>api_{id}.yml"]
        end
    end

    subgraph 湖仓层["数据湖 / 仓库层"]
        ICE["MinIO / Iceberg<br/>ODS Raw(bronze)"]
        SR["StarRocks<br/>External Catalog"]
        DBT["dbt<br/>DWD → DWS → DM"]
    end

    subgraph 服务层["数据服务层"]
        DMUI["数据资产 UI<br/>查询 / 浏览 / 编辑"]
        DAPI["数据服务 API<br/>外部系统调用"]
    end

    DB1 --> DB2 --> ICE
    API1 --> API2 --> ICE
    ICE --> SR --> DBT
    DBT --> DMUI
    DBT --> DAPI

2.2 数仓分层(Medallion Architecture)

SMDS 采用数仓分层体系,由 dbt 模型串联各层:

层名 代码值(代码中统一) 含义 dbt 目录 StarRocks 数据库 写入方式
ODS Raw 原始数据着陆层 smds_{env}_db{id}_{db}_{schema} dlt 写入 Iceberg(bronze 命名空间)
DWD dwd 数据明细层(治理后的标准化表) models/dwd/ smds_{env}_dwd dbt staging(增量合并)
DWS dws 数据汇总层(聚合 / 宽表) models/dws/ smds_{env}_dws dbt intermediate(增量合并 / 增量覆盖 / 全量重建)
DM dm 数据集市层(面向应用的最终表) models/dm/ smds_{env}_dm dbt marts(增量 / 全量)

dbt 框架内部概念(staging / intermediate / marts)与业务命名(dwd / dws / dm)一一对应。代码存储值统一使用 dwddwsdm

2.3 双 EL 通道

SMDS 提供两条并行数据集成通道,汇合后进入统一的 dbt 转换链路:

通道 数据源 驱动方式 YAML 模板 Iceberg 命名空间 详情
DB EL MSSQL / Postgres / MySQL / HANA 等关系型数据库 dlt 连接器 + YAML 配置 db_{id}.yml db{id}_{db}_{schema} 02 数据集成(DB)
API EL REST API(CRM / ERP / WMS / OA 等 SaaS) dlt 自定义 source api_{id}.yml api{id}_{connector_type} 03 API 集成

2.4 技术栈

组件 技术 用途
数据集成 dlt (data load tool) DB EL 和 API EL 的执行引擎
数据湖 Apache Iceberg + Lakekeeper 数据存储格式和 REST Catalog
对象存储 MinIO S3 兼容存储,存放 Iceberg 数据文件
OLAP 引擎 StarRocks MPP 查询引擎,支持 External Catalog 直读 Iceberg
数据转换 dbt-core SQL 模型定义和执行(DWD / DWS / DM)
编排调度 Dagster 任务编排、定时调度、自动化条件触发
后端 API Django + Django Ninja REST API 服务
前端 React + TypeScript + Vite + Ant Design Web UI
桌面客户端 Electron(可选) 独立窗口、API 代理、系统托盘、自动更新
数据库 PostgreSQL 元数据存储(lakekeeper / dagster / smds 三个库)
反向代理 Nginx 统一入口、TCP/HTTP 代理

3 三车间工作流

平台核心操作按"车间"组织,对应左侧菜单"数据工厂"分组下的四个主要模块:

flowchart LR
    subgraph 一车间["一车间:数据集成"]
        W1A["创建数据源"]
        W1B["同步 Schema"]
        W1C["配置源表"]
    end
    subgraph 二车间["二车间:数据治理"]
        W2A["字段映射"]
        W2B["质量规则"]
        W2C["安全分级"]
        W2D["发布 DWD"]
    end
    subgraph 三车间["三车间:数据开发"]
        W3A["DWS/DM 模型"]
        W3B["SQL 编写"]
        W3C["质量测试"]
        W3D["发布"]
    end

    W1A --> W1B --> W1C
    W1C --> W2A --> W2B --> W2C --> W2D
    W2D --> W3A --> W3B --> W3C --> W3D
    W3D --> SERVICE["数据服务 / 数据资产"]
车间 模块名称 做什么 输出 文档
一车间 数据集成 连接数据源,把原始数据搬到平台 ODS Raw 原始表 02 数据集成(DB)03 API 集成
二车间 数据治理 字段标准化、质量规则、安全分级 DWD 标准明细表 04 数据治理
三车间 数据开发 聚合计算、宽表生成、应用模型 DWS 汇总表 / DM 应用表 05 数据开发
四车间 数据服务 对外暴露 REST API 外部系统可调用 06 数据服务

核心流程口诀接入 → 治理 → 加工 → 开放(02 → 04 → 05 → 06)


4 用户角色与权限

SMDS 面向中小企业的数据团队,通过 RBAC(基于角色的权限控制)管理各用户的功能访问权限。

4.1 角色定义

角色 典型人员 核心职责 常用模块
数据需求分析师 📋 业务人员、产品经理 定义数据标准、确认业务口径、探索数据 数据治理、数据资产、数据服务
数据开发工程师 🔧 数据工程师 配置数据源、设计模型、编写 SQL、执行发布 数据集成、数据治理、数据开发、发布与运维
数据分析人员 📊 BI 分析师、运营分析师 自助查询数据、调用 API、AI 辅助分析 数据资产、数据服务、AI 助手
平台管理员 ⚙️ IT 运维、管理员 管理用户权限、监控系统健康、执行发布 系统管理、发布与运维、资源监控

4.2 各角色关注模块

功能模块 数据需求分析 📋 数据开发 🔧 数据分析 📊 平台运维 ⚙️
02 数据集成(DB) ★ 了解可接入哪些数据 ★★★ 配置数据源与同步 ★ 了解数据从哪来 ★ 监控同步运行
03 API 集成 ★ 了解可对接哪些 SaaS ★★★ 配置连接器与任务 ★ 了解数据从哪来 ★ 监控同步运行
04 数据治理 ★★★ 定义字段标准与质量规则 ★★★ 执行治理与映射 ★★ 查看标准化结果
05 数据开发 ★★ 审核业务口径 ★★★ 编写模型 SQL ★ 了解有哪些可用模型
06 数据服务 ★★ 定义 API 需求 ★ 配置端点 ★ 调用 API 获取数据 ★ 管理 API 应用
07 数据资产 ★★★ 浏览和探索数据 ★★ SQL 查询验证 ★★★ 自助分析数据
08 血缘与监控 ★ 查看数据来源 ★ 排查问题 ★ 确认数据新鲜度 ★★★ 监控运行
09 发布与运维 ★ 提交发布 ★★★ 执行发布与回滚
10 系统与 AI ★★ AI 辅助分析 ★★★ 用户管理与配置

★★★ = 核心使用者 ★★ = 常用 ★ = 了解即可 — = 一般不涉及

4.3 权限系统

  • 所有页面和操作受角色权限树控制,角色与权限在「系统管理 → 角色与权限」页面配置。
  • 超级管理员(is_superuser)自动跳过所有权限检查。
  • 各模块的权限标识前缀详见对应模块文档中的"权限标识"章节。
  • 详见 10 系统管理与 AI

5 前端页面结构

Web UI 采用顶部导航栏 + 左侧菜单 + 内容区三栏布局。

5.1 顶部导航栏

区域 内容
左上角 Logo + 平台名称"安捷智数——数据集成与治理平台"
右上角 设置按钮、当前用户名、退出登录按钮

5.2 左侧菜单结构

三大菜单分组,对应路由代码 web/frontend/src/router/index.tsxappRoutes 定义:

数据工厂

菜单项 前端路由 功能 文档
📊 数据集成 /workshop1 DB 数据源列表与工作台 02 数据集成
🔗 API 集成 /connector 连接器市场、授权、同步任务 03 API 集成
🛡 数据治理 /workshop2 治理资产列表与工作台 04 数据治理
🧪 数据开发 /workshop3 DWS / DM 模型管理 05 数据开发
🌐 数据服务 /workshop4 API 应用管理 06 数据服务
📜 任务运维 /runs Dagster 任务运维 08 血缘与监控
✅ 数据契约概览 /contract-tests dbt 测试概览 05 数据开发 — 数据契约概览

数据资产

菜单项 前端路由 功能 文档
📁 数据资产 /datamanage 数据目录、表浏览、SQL 查询、行内编辑 07 数据资产
🏢 数据血缘 /lineage 全链路资产血缘 08 血缘与监控

系统管理

菜单项 前端路由 功能 文档
👤 用户管理 /system/users 用户 CRUD + 角色分配 10 系统管理
👥 角色与权限 /system/roles 角色 CRUD + 权限树配置 10 系统管理
📋 审计日志 /system/audit 操作审计 + 查询审计 10 系统管理
⚙ AI 设置 /system/ai 模型 / 智能体 / 流水线 / MCP 10 系统管理
🔧 连接器配置 /connector/config 连接器级全局参数(管理员) 03 API 集成
🚀 发布中心 /ops/publish Dev → Prod 发布与回滚 09 运维管理
☁ 资源监控 /ops/resources MinIO 存储健康监控 09 运维管理

6 服务清单与访问方式

服务 角色 对外访问方式 启动 Profile
postgres 元数据存储(lakekeeper / dagster / smds 三个库) Nginx TCP Stream → 宿主机 5432 默认
minio Iceberg 数据文件(S3 兼容) Nginx HTTP → 宿主机 9000(S3 API)/ 9001(Console) 默认
starrocks MPP 查询引擎,FE + BE 合一 Nginx → 宿主机 9030(MySQL 协议)/ 8030(FE UI)/ 8040(Stream Load) 默认
lakekeeper Iceberg REST Catalog Nginx HTTP → 宿主机 8181 默认
dagster-webserver Dagster UI & GraphQL Nginx HTTP → 宿主机 3000 默认
web-backend Django REST API 直接映射 8000:8000 --profile web
web-frontend React + Vite 前端 直接映射 5173:5173 --profile web
smds-maintenance Iceberg / dbt / PostgreSQL 维护任务调度 仅容器内 8090/health(Docker healthcheck) --profile maintenance

部署和基础设施详情参见 11 部署与架构


7 API 概览

所有 API 通过 /api/ 前缀访问,Swagger 文档地址:http://host:8000/api/docs

路由前缀 模块 说明 文档
/api/accounts/ 用户与权限 登录、用户管理、角色与权限 10 系统管理 API
/api/datasources/ 数据源管理 DB 数据源 CRUD、连接测试、Schema 同步 02 数据集成 API
/api/connectors/ REST API 连接器 连接器类型、凭证、同步任务 03 API 集成 API
/api/connector-webhook/ 连接器 Webhook OAuth 回调、消息接收 03 API 集成 API
/api/extract/ 数据抽取(EL) 源表配置、列配置、游标候选 02 数据集成 API
/api/governance/ 数据治理 治理资产、字段映射、质量规则、安全分级 04 治理 API
/api/transform/ 数据转换(T) dbt 模型 CRUD、质量测试、dbt parse 05 加工 API
/api/processing/ 数据开发 DM 宽表、SQL 执行与 AI 辅助 05 加工 API
/api/datamanage/ 数据资产 数据目录、表浏览、SQL 查询 07 数据资产 API
/api/monitor/ 运行监控 Dagster 任务运维、状态查询 08 监控 API
/api/openservice/ 服务与开放 API 应用、端点、调用日志 06 开放 API
/api/lineage/ 血缘分析 全链路资产拓扑 08 血缘 API
/api/ops/ 运维操作 发布、回滚、Schedule 控制、资源监控 09 运维 API
/api/maintenance/ 平台维护 Iceberg / dbt / PostgreSQL 维护任务 09 运维 API
/api/audit/ 审计日志 操作审计、查询审计 10 系统 API
/api/ai/ AI 能力 智能体、LLM、MCP、聊天、流水线 10 系统 API
/api/tasks/ 异步任务 后台任务状态查询

8 桌面客户端

SMDS 除了通过浏览器访问(http://host:5173),还提供 Electron 桌面客户端web/client/),主要特性:

特性 说明
独立窗口运行 不依赖浏览器标签页,提供桌面应用体验
自定义协议 通过 app:// 协议访问前端页面
API 代理 内置代理转发后端 API 请求,避免跨域问题
系统托盘 最小化到系统托盘,后台运行
自动更新 支持版本检测和自动更新

桌面客户端仅是浏览器版的包装壳,功能与浏览器版完全一致。日常使用两种方式均可。


9 快速上手路径

30 分钟体验全流程

建议按以下顺序操作,快速了解平台核心能力:

步骤 去哪里做 做什么 参考文档
① 登录系统 浏览器打开 http://localhost:5173 用默认账号登录(admin / admin) 10 系统管理
② 接入一个数据库 数据工厂 → 数据集成 注册数据源 → 同步 Schema → 选择源表 → 手动触发同步 02 数据集成
③ 治理源表 数据工厂 → 数据治理 自动创建资产 → 字段映射(可 AI 一键映射)→ 发布为 DWD 04 数据治理
④ 创建汇总模型 数据工厂 → 数据开发 新建 DWS 模型 → 编写聚合 SQL → 配置质量测试 05 数据开发
⑤ 查看数据 数据资产 → 数据资产 浏览 Catalog → 找到表 → 查看数据 07 数据资产
⑥ 发布到生产 系统管理 → 发布中心 Diff 预览 → 预检 → 发布 09 运维管理

💡 步骤 ② 也可以换成 API 连接器(接入一个 ERP / CRM 系统),参考 03 API 集成


10 模块文档索引

完整的 11 个模块文档索引(含 API 参考与页面入口)见顶层 产品文档 README。本页(01 概览)聚焦产品定位、整体架构与核心概念。


11 安全注意事项

以下配置仅适用于开发环境。生产环境部署前必须按照下表替换

当前开发值 生产环境替换要求
Lakekeeper 加密密钥 This-is-NOT-Secure!(写在 deploy/.env / docker-compose.yml 替换为 32+ 字节强随机字符串,通过部署平台的 secret 管理注入
MinIO 凭据 docker-compose.yml 中明文写入的 access / secret key 替换为强随机 key,通过环境变量 / secret 管理注入
Lakekeeper 鉴权模式 allowall(开发模式,任何请求均放行) 切换为 kv2 或同等鉴权模式,配置实际 token / OIDC 提供方