一站式企业级智能数据平台 —— 数据接入、治理、报表、可视化与 AI 分析的开源底座
DataTeaCup(数据茶杯)是一套可运行、可扩展、可私有化部署的开源数据平台。它把数据源接入、数据采集、数据同步(DataX)、数据流程编排、低代码报表、ECharts 可视化、数据治理、AI 数据分析和团队协作整合进同一套工作台,帮助团队从「散落在脚本、Excel、数据库客户端和临时看板里的数据工具」升级为「统一、可治理、可二次开发的数据中台」。
后端采用 Java 17 + Spring Boot 3 + Spring Cloud Gateway 微服务架构,前端采用 Vue 3 + TypeScript + Vite,内置桌面端与移动端两套视图,提供完整的 SQL 初始化脚本与 Docker Compose 一键部署,开箱即用。
关键词:
BI·数据中台·数据集成·数据采集·DataX·数据流程编排·低代码报表·可视化大屏·ECharts·数据质量·数据血缘·AI 数据分析·Spring Boot·Vue 3
- 一站式数据工作台:数据接入 → 采集/同步 → 治理 → 报表/图表 → 页面/大屏 → AI 分析,全链路在一个平台内闭环。
- 微服务架构,企业级可扩展:网关 + 4 个业务服务独立部署、独立扩容,适合内网部署与行业化二次开发。
- 低代码 + 设计器:报表设计器、图表设计器、页面设计器、数据流程设计器,拖拽即可构建数据应用。
- AI 原生:内置 SQL 生成、数据分析、SQL 优化、智能图表、文件识别、数据洞察等能力,不绑定厂商,支持 OpenAI 兼容 API、DeepSeek、Qwen、Ollama。
- 完善的权限与安全:RBAC 用户/角色/菜单/按钮权限、行级安全(RLS)、数据脱敏、操作与登录审计、JWT + Sa-Token。
- 桌面端 + 移动端:同一套后端,自动适配 PC 与移动端视图。
- 开箱即用的部署:完整 SQL 初始化脚本 + Docker Compose,
docker compose up一键拉起 MySQL、Redis、微服务、网关与前端。 - 友好的开源协议:基于 Apache License 2.0,对学习、商用集成和二次开发友好。
完整尺寸截图位于
docs/assets/screenshots/。
| 数据仪表盘 | 数据源管理 |
|---|---|
![]() |
![]() |
| 数据传输(DataX) | 图表中心 |
![]() |
![]() |
| 图表设计器 | 报表管理 |
![]() |
![]() |
| 报表设计器 | AI 助手 |
![]() |
![]() |
| 数据质量 | 数据血缘 |
![]() |
![]() |
| AI 模型配置(10+ 多模型接入) | AI 对话式开发 |
![]() |
![]() |
| 页面设计器(低代码大屏) | 系统监控 |
![]() |
![]() |
- 企业内部 BI 平台 / 数据门户 / 经营分析看板。
- 数据团队统一管理数据源、采集任务、同步任务与报表资产。
- 软件公司基于开源底座做行业化报表、数据应用或私有化交付。
- 需要把 AI SQL、AI 数据分析、AI 报表/图表辅助设计接入现有数据工作流。
| 模块 | 能力 |
|---|---|
| 数据源管理 | MySQL、PostgreSQL、Oracle、SQL Server、SQLite、ClickHouse、Trino 等多源连接管理,支持连接测试、批量测试、元数据读取与密码加密存储 |
| 数据采集 | 全量 / 增量 / 自定义 SQL 采集,任务调度、重试、采集日志、数据导入与库表管理 |
| 数据传输(DataX) | 基于 DataX 的库表同步:传输数据源、参数化传输任务、执行日志与运行监控 |
| 数据流程编排 | 可视化流程设计器、流程管理、执行监控与执行日志,串联采集、清洗、同步等步骤 |
| 数据管理 / 治理 | 表数据管理、数据视图、数据字典、数据质量规则与评分、数据血缘与影响分析、查询构建器 |
| 报表中心 | 低代码报表设计器、多数据源查询、分页预览、报表版本、Excel / CSV / PDF / ZIP 导出与移动端发布 |
| 图表中心 | 基于 ECharts 的图表设计器与图表资源库,支持折线、柱状、饼图、雷达、漏斗、指标卡、词云等,含 AI 智能图表设计 |
| 页面与大屏 | 拖拽式页面设计器、仪表板页面、可视化大屏、图表嵌入、在线预览与移动端页面 |
| AI 助手 | SQL 生成、数据分析、SQL 优化、智能图表、文件识别、AI 对话、数据洞察、Prompt 模板 |
| 团队协作 | 团队空间、即时通讯、工单管理、知识库、公告管理与资源共享 |
| 权限与安全 | RBAC 用户 / 角色 / 菜单 / 按钮权限、行级安全(RLS)、数据脱敏、JWT + Sa-Token 登录安全 |
| 系统与运维 | 用户/部门/岗位/字典/系统配置、系统监控、告警管理、慢查询分析、健康检查、操作 / 登录日志、导出中心、使用统计、在线升级 |
面向「取数即出报表」场景的低代码报表引擎,从 SQL 到可分发的报表资产一站式完成。
- 双模式设计器:支持 SQL 模式(直接编写参数化查询)与 可视化模式(拖拽字段、配置维度/指标),内置 SQL 校验、测试执行与字段自动抽取。
- 多数据源 + 动态参数:任意已接入数据源作为报表数据源,支持动态参数(日期、下拉、文本等)与运行时筛选,一份报表适配多场景。
- 多格式导出:Excel / CSV / PDF / ZIP 批量导出,可配置 是否允许导出 Excel / PDF、是否允许打印、PDF 水印(无水印 / 文字水印等),满足合规分发要求。
- 版本管理:报表版本快照、版本对比与回滚,变更可追溯(
report-version)。 - 定时调度与订阅:报表定时执行(
ReportScheduleController)+ 邮件/通道订阅推送(SubscriptionController),实现「日报 / 周报」自动生成与分发。 - 分享与外链:登录态分享、公开外链(
PublicShareController/ShareController)与免登访问,便于跨团队协作。 - 报表模板:内置/自定义报表模板(
ReportTemplateController),一键复制快速建表。 - 移动端发布:一键开启移动端访问,PC 与移动端共用同一报表定义。
基于 ECharts 的可视化中心,覆盖「图表设计 → 资源库管理 → 嵌入分发」全流程。
- 图表设计器:选择数据源与数据表 → 字段映射(维度 X 轴 / 指标 Y 轴)→ 实时预览 + 数据预览,右侧提供「基础 / 颜色 / 图表 / 交互 / 高级」样式配置面板。
- 丰富图表类型:折线图、柱状图、饼图 / 环形图、雷达图、漏斗图、散点图、仪表盘、热力图、关系图、地图、数据表格、KPI 指标卡等,按基础 / 高级 / 特殊 / 地理 / 统计 / 金融 / 关系分类管理。
- 图表资源库:图表分组(文件夹)、收藏、检索、按类型/更新时间筛选,集中管理团队图表资产(
ChartFolderController)。 - 联动与下钻:图表联动配置(
ChartLinkController),支持图表间参数联动与数据下钻分析。 - 嵌入与分享:独立嵌入地址(
/embed/chart/:id)可内嵌到第三方系统或页面/大屏,支持免登外链。 - 导出与水印:图表支持 Excel / PDF 导出与 PDF 水印配置,控制粒度到单张图表。
- AI 智能图表:自然语言描述需求,AI 推荐图表类型、自动生成 SQL 与图表配置并一键落库(见「AI 智能分析」)。
可视化的 DAG 流程编排引擎,把采集、SQL、脚本、通知等步骤串成可调度、可监控的数据管道。
- 拖拽式 DAG 设计器:画布拖拽节点 + 连线编排执行依赖,支持画布缩放、节点配置与流程校验。
- 多类型节点(分组提供):
- 数据节点:读取 / 写入数据库;
- 脚本节点:SQL 脚本、Shell 脚本、Python 脚本、HTTP 请求;
- 控制节点:条件分支、子流程调用、等待、前置任务依赖、错误处理(异常捕获与重试);
- 通知节点:企业微信、钉钉、邮件(SMTP)、短信。
- 调度与依赖:流程定时调度、流程间前置依赖(等待其他流程完成)、子流程复用。
- 执行监控:流程执行记录、节点级执行日志、运行状态与进度跟踪,失败可重试。
- 告警闭环:执行异常通过企微 / 钉钉 / 邮件 / 短信节点实时通知到人。
内置 AI 数据助手,不绑定厂商,覆盖从「选模型 → 对话取数 → 一键生成报表/图表/ETL → 数据洞察」的全链路,让自然语言成为操作平台的入口。
可视化「AI 模型配置」面板,无需改代码即可切换模型,每个厂商内置主流模型选项并可自定义 API 地址:
| 厂商 | 内置模型(节选) |
|---|---|
| OpenAI | GPT-4.1 / 4.1 Mini / 4o / o3 / o4-mini / GPT-4 Turbo |
| DeepSeek | DeepSeek V4 Flash / V4 Pro |
| 通义千问 Qwen | Qwen-Max / Plus / Turbo / Long / Qwen2.5-Coder |
| Claude | Claude Sonnet 4 / 3.5 Sonnet / 3.5 Haiku / 3 Opus |
| Gemini | Gemini 2.5 Flash / 2.5 Pro / 2.0 Flash / 1.5 Pro |
| 智谱 GLM | GLM-4-Plus 等 |
| Ollama(本地) | 本地私有化部署模型 |
| DeepSeek(本地) | DeepSeek-R1 / Coder-V2 等本地推理 |
| 百度文心、讯飞星火 | 国产大模型接入 |
- 灵活配置:自定义 API 密钥 / API 地址、选择具体模型、调节 记忆轮数(AI 记住最近几轮对话)、一键 测试连接,支持「仅保存 / 保存配置」。
- 数据安全:可选 Ollama / DeepSeek 本地模型,数据不出内网,满足私有化与合规要求。
AI 助手首页提供快捷指令卡片 + 推荐问题,选择数据源后即可对话:
- 创建:💬 创建报表、创建图表、创建 ETL、生成 SQL —— 一句话生成并直接落库(含自动建菜单)。
- 分析:质量分析、数据字典解读、智能建议(索引优化 / 慢查询分析等)。
- 查看:报表列表、ETL 任务、系统诊断与系统总览。
- 附件上传:支持上传文件(Excel / CSV / 文档等),由 AI 解析结构与内容并辅助分析(
/ai/analyze-file)。 - 流式对话:SSE 实时流式输出(
/ai/chat/stream),多会话管理、历史保存与检索。
- 智能 SQL 生成:自动加载表结构,自然语言 → 可执行 SQL(
/ai/generate-sql)。 - SQL 优化与解释:性能优化建议与逐句解释(
/ai/optimize-sql、/ai/explain-sql)。 - 数据分析与洞察:结果 AI 解读、异常检测、趋势分析、智能告警与洞察报告(
AiInsightController)。 - AI 图表 / 报表 / ETL / 大屏:自然语言一键生成并落库(
/ai/generate-and-create-chart、/ai/create-report-with-menu、/ai/generate-etl、NLDashboardController)。 - AI 血缘分析:基于 SQL / 元数据自动推断字段级血缘(
/ai/analyze-lineage)。 - Prompt 模板:内置 + 自定义模板库,沉淀团队最佳实践(
/ai/prompt-templates)。 - 用量统计与额度:调用次数统计与每日额度控制(开源版默认每日 20 次)。
拖拽式低代码搭建引擎,零代码即可搭出数据门户页面、业务表单与可视化大屏。
- 画布与布局:网格画布、画布尺寸预设(如 1200×800 经典)、自由缩放、显示参数区、全屏设计、主题切换(默认 / 暗黑等)。
- 丰富组件库(拖拽即用):
- 基础组件:文本框、数字框、日期、日期树、下拉单选、下拉多选、滑块选择、按钮、图片、容器、分割线、表单、超链接等;
- 基础图表:折线图、柱状图、饼图 / 环形图、数据表格、汇总表、进度表、雷达图等(与图表中心同源);
- 查询组件:参数筛选、查询面板,配合数据集实现交互式数据应用。
- 数据绑定与参数:组件绑定数据源 / 图表 / 报表,支持页面级动态参数与组件联动(
DynamicParameterController、参数面板)。 - 图层 / 模板 / AI 助手:图层管理、模板库快速起步、内置 AI 助手按描述生成页面布局。
- 版本与发布:版本历史回溯、在线预览、独立页面/大屏地址(
/bigscreen-view/:id全屏大屏、page-view/:id页面)、移动端访问与图表嵌入(/embed/chart/:id)。
平台内置完整的协作与通信子系统(dp-collaboration-service),让数据工作在平台内闭环沟通。
- 即时通讯(IM):单聊 / 群聊会话、消息收发、已读回执、在线状态(
ChatController:/chat/conversations、/messages、/online-status)。 - 团队空间:多团队 / 工作空间隔离与成员管理,资源按团队共享(
TeamSpaceController)。 - 工单管理:工单创建、流转与处理,支撑数据需求 / 问题协同(
TicketController)。 - 知识库:沉淀团队文档与经验,与工单体系打通。
- 公告管理:系统公告发布与触达(
AnnouncementController)。 - 统一消息通道与通知:站内通知 + 多通道触达(邮件 / 企微 / 钉钉 / 短信),可按模板与个人偏好配置(
NotificationController、MessageChannelController、NotificationTemplateController、NotificationSettingController)。 - 评论协作:报表 / 图表等资源上的评论讨论(
CommentController)。
flowchart TB
subgraph Client["客户端"]
PC["PC 端 Web<br/>Vue 3 + Naive UI"]
Mobile["移动端 Web"]
end
Nginx["Nginx 前端容器<br/>:80"]
GW["dp-gateway · API 网关<br/>Spring Cloud Gateway · :8888"]
subgraph Services["业务微服务 (Spring Boot 3)"]
SYS["dp-system-service<br/>用户·权限·配置·监控 · :9001"]
DATA["dp-data-service<br/>数据源·采集·DataX·AI · :9002"]
ANA["dp-analytics-service<br/>报表·图表·页面·大屏 · :9003"]
COL["dp-collaboration-service<br/>团队·会话·工单·公告 · :9004"]
end
subgraph Infra["基础设施"]
MySQL[("MySQL 8.0")]
Redis[("Redis 7")]
end
PC --> Nginx
Mobile --> Nginx
Nginx --> GW
GW --> SYS & DATA & ANA & COL
SYS & DATA & ANA & COL --> MySQL
SYS & DATA & ANA & COL --> Redis
共享模块
dp-common:通用 DTO、异常、工具、缓存、Redis、Sa-Token 配置。dp-core:核心业务实体与服务。dp-service-starter:共享 Controller、Feign、拦截器、AOP 与公共配置。
| 层级 | 技术 |
|---|---|
| 后端 | Java 17、Spring Boot 3.2、Spring Cloud 2023、Spring Cloud Gateway、MyBatis、MyBatis-Plus、Druid、Sa-Token、JWT、Hutool |
| 前端 | Vue 3、TypeScript 5、Vite 5、Naive UI、Pinia、Vue Router、ECharts、CodeMirror |
| 数据 | MySQL 8.0、Redis 7、Caffeine、DataX |
| 构建与部署 | Maven、npm、Docker、Docker Compose、Nginx |
| AI | OpenAI 兼容 API、DeepSeek、Qwen、Ollama |
Docker Compose 会一次性启动 MySQL、Redis、4 个后端微服务、API 网关和前端 Nginx,首次启动时 MySQL 会自动执行 docs/sql/full/datateacup_full.sql 初始化数据库。
# 1. 准备环境变量(按需修改密码、AI Key 等)
cp .env.example .env
# 2. 构建并启动全部服务
docker compose up -d --build
# 3. 查看网关日志
docker compose logs -f gateway启动完成后访问:
| 入口 | 地址 |
|---|---|
| 前端 | http://localhost |
| 网关健康检查 | http://localhost:8888/api/health |
| 默认账号 | admin |
| 默认密码 | admin123 |
⚠️ 生产环境请务必修改.env中的JWT_SECRET、数据库与 Redis 密码,并在首次登录后修改默认管理员密码。
环境要求:JDK 17、Maven 3.8+、Node.js 18+、MySQL 8.0+、Redis 7+。
# 1. 初始化数据库
mysql -u root -p < docs/sql/full/datateacup_full.sql
# 2. 构建后端
mvn clean package -DskipTests
# 3. 分别启动后端服务
java -jar dp-system-service/target/dp-system-service-2.1.0-exec.jar --spring.profiles.active=dev
java -jar dp-data-service/target/dp-data-service-2.1.0-exec.jar --spring.profiles.active=dev
java -jar dp-analytics-service/target/dp-analytics-service-2.1.0-exec.jar --spring.profiles.active=dev
java -jar dp-collaboration-service/target/dp-collaboration-service-2.1.0-exec.jar --spring.profiles.active=dev
java -jar dp-gateway/target/dp-gateway-2.1.0.jar
# 4. 启动前端
cd dp-ui
npm install
npm run dev前端开发地址:http://localhost:3000。
主要环境变量(完整列表见 .env.example):
| 分类 | 变量 | 说明 |
|---|---|---|
| 数据库 | DB_HOST / DB_PORT / DB_NAME / DB_USERNAME / DB_PASSWORD |
MySQL 连接信息(默认库名 data_platform) |
| 缓存 | REDIS_ENABLED / REDIS_HOST / REDIS_PORT / REDIS_PASSWORD |
Redis 连接与会话缓存 |
| 安全 | JWT_SECRET / USER_DEFAULT_PASSWORD / JASYPT_PASSWORD |
令牌密钥、默认密码与配置加密密钥 |
| 端口 | APP_PORT / GATEWAY_PORT |
前端与网关对外端口 |
| AI | AI_ENABLED / AI_PROVIDER / AI_API_KEY / AI_BASE_URL / AI_MODEL |
AI 能力开关与模型配置 |
| 许可 | DATATEACUP_LICENSE_FILE / DATATEACUP_LICENSE_PUBLIC_KEY |
商业授权文件路径与公钥 |
DataTeaCup 不绑定特定 AI 厂商,支持任何 OpenAI 兼容 API。以 DeepSeek 为例:
AI_ENABLED=true
AI_PROVIDER=deepseek
AI_API_KEY=your-api-key
AI_BASE_URL=https://api.deepseek.com
AI_MODEL=deepseek-v4-flash也可切换为 openai、qwen 或本地 ollama。请勿将真实 API Key 提交到版本库。
DataTeaCup/
├── dp-common/ # 通用 DTO、异常、工具、缓存、Redis、Sa-Token 配置
├── dp-core/ # 核心业务服务与实体
├── dp-service-starter/ # 共享 Controller、Feign、拦截器、AOP 和公共配置
├── dp-gateway/ # API 网关(默认端口 8888)
├── dp-system-service/ # 系统服务:用户/权限/配置/监控(默认端口 9001)
├── dp-data-service/ # 数据服务:数据源/采集/DataX/AI(默认端口 9002)
├── dp-analytics-service/ # 分析服务:报表/图表/页面/大屏(默认端口 9003)
├── dp-collaboration-service/ # 协作服务:团队/会话/工单/公告(默认端口 9004)
├── dp-ui/ # Vue 3 前端(含桌面端与移动端视图)
├── docs/sql/ # 数据库结构、初始化数据与完整安装脚本
├── docs/assets/screenshots/ # 界面预览截图
├── docker-compose.yml # 一键部署编排
├── Dockerfile # 后端服务镜像构建
└── README.md
SQL 脚本位于 docs/sql/:
| 脚本 | 用途 |
|---|---|
docs/sql/full/datateacup_full.sql |
完整一键安装脚本(建库、建表、视图、索引、初始化数据) |
docs/sql/schema/01_schema.sql |
数据库结构脚本 |
docs/sql/data/02_seed_data.sql |
安全初始化数据 |
- 全新安装推荐直接执行
datateacup_full.sql。 - 拆分安装可先执行
schema/01_schema.sql,再执行data/02_seed_data.sql。 - 初始化数据仅包含默认管理员、角色权限、菜单、系统配置、字典、组织岗位、工作流默认规则和内置模板;运行日志、聊天记录、SQL 历史、导出记录等不会写入开源脚本。
更多说明见 docs/sql/README.md。
未提供许可文件时,系统进入默认限制模式:项目正常启动、常规功能可用,高级额度按默认值限制。
| 限制项 | 默认值 |
|---|---|
| 报表导出最大行数 | 100,000 行 |
| 图表中心页面数量 | 10 个 |
| 报表中心页面数量 | 20 个 |
| AI 每日提问次数 | 20 次 |
| 数据流程数量 | 10 个 |
商业授权使用 Ed25519 签名的 JSON 文件,默认路径:
- Docker 容器:
/app/license/datateacup-license.json - 本地运行:
runtime/license/datateacup-license.json - 环境变量覆盖:
DATATEACUP_LICENSE_FILE - Spring 配置覆盖:
datateacup.license.file
# 后端构建 / 测试
mvn clean package -DskipTests
mvn test
# 前端开发 / 生产构建
cd dp-ui && npm run dev
cd dp-ui && npm run build:docker
# Docker 部署
docker compose up -d --build
docker compose logs -f gateway
docker compose down欢迎通过 Issue 提交问题、需求与使用反馈。如果这个项目对你有帮助,欢迎 Star、Fork 或二次开发。
提交 PR 前建议执行:
mvn test
cd dp-ui && npm run build:docker
mysql -u root -p < docs/sql/full/datateacup_full.sqlDataTeaCup 基于 Apache License 2.0 开源协议发布。














