6.9 KiB
# AmazingData 数据服务平台
基于 AmazingData SDK 的企业级数据服务平台,提供股票、期货 K 线数据获取和实时订阅服务。
功能特性
1. 单只品种查询
- 输入:品种代码(股票/期货)、交易日、周期、保存路径
- 输出:JSON 格式数据保存到指定目录
2. 批量股票获取
- 输入:股票代码列表、交易日列表、保存路径
- 输出:以每个交易日为文件名的 JSON 数据
3. 批量期货获取
- 输入:期货品种代码、交易日列表、保存路径
- 输出:以每个交易日为文件名的 JSON 数据
4. 实时订阅(股票)
- 输入:股票代码、订阅周期、保存路径
- 输出:按时间命名的实时数据文件
5. 实时订阅(期货)
- 输入:期货代码、订阅周期、保存路径
- 输出:按时间命名的实时数据文件
6. 批量品种订阅
- 支持同时订阅多个品种
- 支持多周期订阅
技术栈
- 后端: FastAPI + SQLAlchemy + MySQL
- 前端: Vue 3 + Vite + Element Plus
- 数据源: AmazingData SDK
- 部署: Docker + Docker Compose
快速开始
环境要求
- Python 3.11+
- Node.js 18+
- MySQL 8.0+
- AmazingData SDK
本地开发
1. 后端
\\ash cd amazingdata_platform
创建虚拟环境
python -m venv venv source venv/bin/activate # Windows: venv\Scripts\activate
安装依赖
pip install -r backend/requirements.txt
配置环境变量
cp .env.example .env
编辑 .env 文件
启动服务
uvicorn backend.main:app --reload --port 8000 \\
2. 前端
\\ash cd frontend
安装依赖
npm install
启动开发服务器
npm run dev \\
Docker 部署
\\ash
构建并启动
docker-compose up -d
查看日志
docker-compose logs -f
停止
docker-compose down \\
项目结构
\\ amazingdata_platform/ ├── backend/ # 后端服务 │ ├── api/ # API 路由 │ │ ├── auth.py # 认证接口 │ │ ├── historical.py # 历史数据接口 │ │ ├── realtime.py # 实时订阅接口 │ │ ├── batch.py # 批量操作接口 │ │ ├── cache.py # 缓存管理接口 │ │ └── settings.py # 系统配置接口 │ ├── auth/ # 认证模块 │ ├── models/ # 数据模型 │ ├── services/ # 业务逻辑 │ ├── config.py # 配置 │ └── main.py # 主应用 ├── frontend/ # 前端应用 │ ├── src/ │ │ ├── api/ # API 请求 │ │ ├── router/ # 路由 │ │ ├── stores/ # 状态管理 │ │ └── views/ # 页面组件 │ └── package.json ├── database/ # 数据库 │ └── init.sql # 初始化脚本 ├── docker-compose.yml # Docker 配置 ├── Dockerfile.backend # 后端 Dockerfile ├── Dockerfile.frontend # 前端 Dockerfile └── nginx.conf # Nginx 配置 \\
API 文档
启动服务后访问 \http://localhost:8000/docs\ 查看 Swagger API 文档。
主要接口
| 接口 | 方法 | 描述 |
|---|---|---|
| /api/v1/auth/login\ | POST | 用户登录 |
| /api/v1/historical/single\ | POST | 获取单只品种数据 |
| /api/v1/historical/batch-stocks\ | POST | 批量获取股票数据 |
| /api/v1/historical/batch-futures\ | POST | 批量获取期货数据 |
| /api/v1/realtime/subscribe\ | POST | 创建实时订阅 |
| /api/v1/realtime/tasks\ | GET | 获取订阅任务列表 |
| /api/v1/realtime/stop/{id}\ | POST | 停止订阅任务 |
| /api/v1/batch/execute\ | POST | 执行批量任务 |
| /api/v1/batch/tasks\ | GET | 获取批量任务列表 |
| /api/v1/cache/list\ | GET | 获取缓存文件列表 |
| /api/v1/cache/stats\ | GET | 获取缓存统计 |
| /api/v1/settings/amazing-data/config\ | GET | 获取 AmazingData 配置 |
| /api/v1/settings/test-connection\ | POST | 测试连接 |
使用示例
获取单只股票数据
\\ash
curl -X POST http://localhost:8000/api/v1/historical/single
-H
Content-Type:
application/json\
-d '{
\code: \000001.SZ,
\trading_day: \20260407,
\period: \day,
\save_path: ./data/single
}'
\\
创建实时订阅
\\ash
curl -X POST http://localhost:8000/api/v1/realtime/subscribe
-H \Content-Type:
application/json\
-d '{
\codes: [\ag2605.SHF],
\periods: [\min1, \min5],
\save_path: ./data/realtime,
\duration: 3600
}'
\\
默认账号
- 管理员: admin / admin123
- 普通用户: user / user123
许可证
MIT License