0
0
0
0
博客/.../

一个基于 Dumpling 的多租户 TiDB 数据导出平台,支持将数据导出到 S3 兼容存储。

 Hammer  发表于  2026-04-02

一个基于 Dumpling 的多租户 TiDB 数据导出平台,支持将数据导出到 S3 兼容存储。

https://github.com/Vincenzo-Wang/TiDataExporter

功能特性

  • 多租户架构 - 完整的租户隔离和配额管理
  • 灵活导出 - 支持 CSV、SQL 格式,支持 Gzip/Snappy/Zstd 压缩
  • S3 集成 - 直接上传到各种 S3 兼容存储(AWS S3、MinIO、阿里云 OSS 等)
  • 高性能 - 基于 Dumpling 的 TiDB 数据导出
  • 双重认证 - JWT + API Key/Secret 认证机制
  • 异步任务 - 基于 Redis 的任务队列,支持优先级和自动重试
  • 管理后台 - 现代化的 React 管理界面
  • 监控审计 - 内置统计报表和审计日志

快速开始

环境要求

  • Docker 20.10+
  • Docker Compose 1.18.0+
  • Dumpling(通过 TiUP 安装)

安装 Dumpling

# 使用 TiUP 安装
tiup install dumpling

# 确认安装路径
tiup list --installed | grep dumpling

一键部署

# 1. 克隆项目
git clone https://github.com/Vincenzo-Wang/TiDataExporter.git
cd TiDataExporter

# 2. 复制环境变量配置
cp .env.example .env

# 3. 修改配置(重要!)
vim .env
# 必须配置:
# - HOST_DUMPLING_PATH:Dumpling 可执行文件路径
# - JWT_SECRET:JWT 签名密钥(至少 32 字符)
# - AES_KEY:AES-256 加密密钥(必须 32 字节)

# 4. 一键启动
chmod +x deploy.sh
./deploy.sh start

# 5. 访问应用
# 前端:http://localhost
# 后端:http://localhost:8080
# 默认管理员:admin / admin123(首次登录后请立即修改!)

API 概览

管理端 API(JWT 认证)

端点 方法 说明
/api/v1/admin/auth/login POST 管理员登录
/api/v1/admin/tasks GET 任务列表
/api/v1/admin/tenants GET/POST 租户列表/创建
/api/v1/admin/tidb-configs GET/POST TiDB 配置
/api/v1/admin/s3-configs GET/POST S3 配置
/api/v1/admin/statistics/overview GET 统计概览

开放 API(API Key/Secret 认证)

端点 方法 说明
/api/v1/export/tasks POST 创建导出任务
/api/v1/export/tasks/:id GET 查询任务状态
/api/v1/export/tasks/:id/cancel POST 取消任务

安全特性

  • 数据加密 - 敏感数据使用 AES-256-GCM 加密存储
  • 双重认证 - JWT Token + API Key/Secret 机制
  • 防护措施 - SQL 注入防护、时序攻击防护
  • 访问限制 - 令牌桶 + 滑动窗口限流算法
  • 审计日志 - 完整的操作日志记录
  • 配额管理 - 租户级别的并发和容量限制

技术栈

后端

  • Go 1.25+ / Gin Framework
  • MySQL 8.0
  • Redis 7
  • Dumpling (TiDB 数据导出工具)

前端

  • React 18 + TypeScript
  • Vite 构建工具
  • Ant Design 5 组件库
  • Zustand 状态管理

文档

参与贡献

欢迎参与贡献!请遵循以下步骤:

  1. Fork 本仓库
  2. 创建特性分支 (git checkout -b feature/amazing-feature)
  3. 提交更改 (git commit -m 'Add some amazing feature')
  4. 推送到分支 (git push origin feature/amazing-feature)
  5. 提交 Pull Request

许可证

本项目采用 MIT 许可证 - 详见 LICENSE 文件。

致谢

  • TiDB - 分布式 SQL 数据库
  • Dumpling - TiDB 数据导出工具
  • TiUP - TiDB 组件管理器

0
0
0
0

版权声明:本文为 TiDB 社区用户原创文章,遵循 CC BY-NC-SA 4.0 版权协议,转载请附上原文出处链接和本声明。

评论
暂无评论