9.3 KiB
数据源冗余机制使用指南
📋 功能概述
系统已实现Akshare和Tushare双数据源自动切换机制,当Akshare获取数据失败时,系统会自动切换到Tushare获取数据,确保数据获取的稳定性和可靠性。
✨ 核心特性
1. 自动切换
- ✅ 优先使用Akshare(免费,无需配置)
- ✅ Akshare失败时自动切换到Tushare
- ✅ 全程自动化,无需手动干预
- ✅ 详细的日志输出,方便追踪数据来源
2. 支持的数据类型
| 数据类型 | Akshare | Tushare | 说明 |
|---|---|---|---|
| 股票历史数据 | ✅ | ✅ | K线、成交量等 |
| 股票基本信息 | ✅ | ✅ | 名称、行业、市值等 |
| 实时行情 | ✅ | ✅ | 最新价格、涨跌幅 |
| 财务数据 | ✅ | ✅ | 利润表、资产负债表 |
| 资金流向 | ✅ | ✅ | 大单、小单流入流出 |
| 市场情绪 | ✅ | ✅ | ARBR、换手率 |
| 大盘指数 | ✅ | ✅ | 上证指数等 |
🔧 配置步骤
第一步:获取Tushare Token
- 访问 Tushare官网
- 注册账号并登录
- 进入个人中心
- 复制Token
第二步:配置环境变量
方法1:通过界面配置(推荐)
- 启动系统
- 点击左侧 ⚙️ 环境配置
- 切换到 📊 数据源配置 标签页
- 填写 Tushare Token
- 点击 💾 保存配置
方法2:手动编辑.env文件
在.env文件中添加:
# Tushare数据接口配置(可选,用作备用数据源)
TUSHARE_TOKEN="your_tushare_token_here"
第三步:重启应用
保存配置后重启应用,系统会自动初始化Tushare数据源。
📊 工作原理
数据获取流程
┌─────────────────┐
│ 开始获取数据 │
└────────┬────────┘
│
v
┌─────────────────┐
│ 尝试Akshare获取 │
└────────┬────────┘
│
成功 │ 失败
┌──────┴──────┐
│ │
v v
┌────┐ ┌──────────────┐
│返回│ │检查Tushare配置│
└────┘ └──────┬───────┘
│
已配置 │ 未配置
┌──────┴──────┐
│ │
v v
┌────────────┐ ┌────┐
│Tushare获取 │ │失败│
└──────┬─────┘ └────┘
│
成功 │ 失败
┌──────┴──────┐
│ │
v v
┌────┐ ┌────┐
│返回│ │失败│
└────┘ └────┘
日志输出示例
# 示例1:Akshare成功
[Akshare] 正在获取 600519 的历史数据...
[Akshare] ✅ 成功获取 243 条数据
# 示例2:Akshare失败,Tushare成功
[Akshare] 正在获取 600519 的历史数据...
[Akshare] ❌ 获取失败: Connection timeout
[Tushare] 正在获取 600519 的历史数据(备用数据源)...
[Tushare] ✅ 成功获取 243 条数据
# 示例3:Tushare未配置
[Akshare] 正在获取 600519 的历史数据...
[Akshare] ❌ 获取失败: Connection timeout
ℹ️ 未配置Tushare Token,将仅使用Akshare数据源
❌ 所有数据源均获取失败
🎯 使用场景
场景1:日常使用(仅Akshare)
适用情况:
- 网络稳定
- Akshare服务正常
- 不需要Tushare特殊数据
配置:
- 无需配置Tushare Token
- 系统仅使用Akshare
场景2:生产环境(Akshare + Tushare)
适用情况:
- 需要高可用性
- 自动化交易系统
- 定时任务分析
配置:
- 配置Tushare Token
- 启用双数据源冗余
场景3:Akshare受限
适用情况:
- Akshare访问受限
- 需要更专业的数据
- Tushare有特殊接口
配置:
- 配置Tushare Token
- 系统自动切换到Tushare
📈 数据对比
Akshare vs Tushare
| 对比项 | Akshare | Tushare |
|---|---|---|
| 费用 | 完全免费 | 免费(有限额) |
| 注册 | 无需注册 | 需要注册 |
| 配置 | 无需配置 | 需要Token |
| 数据更新 | 实时 | 准实时 |
| 稳定性 | 较好 | 优秀 |
| 数据量 | 丰富 | 非常丰富 |
| API限制 | 无明显限制 | 有调用限额 |
| 适用场景 | 日常分析 | 专业投研 |
🔍 故障排查
问题1:Tushare初始化失败
现象:
⚠️ Tushare数据源初始化失败: No module named 'tushare'
解决方法:
# 安装tushare库
pip install tushare>=1.3.0
# 或更新requirements.txt后安装
pip install -r requirements.txt
问题2:Tushare Token无效
现象:
[Tushare] ❌ 获取失败: Invalid token
解决方法:
- 检查Token是否正确复制
- 确认Token未过期
- 登录Tushare官网重新获取Token
问题3:Tushare调用限额
现象:
[Tushare] ❌ 获取失败: API call limit exceeded
解决方法:
- 等待限额重置(通常是每分钟/每天)
- 升级Tushare积分等级
- 优化查询频率
问题4:两个数据源都失败
现象:
❌ 所有数据源均获取失败
解决方法:
- 检查网络连接
- 确认股票代码正确
- 检查是否为交易时间
- 查看详细错误日志
💡 最佳实践
1. Token管理
# ❌ 错误:直接写在代码中
tushare_token = "your_token_here"
# ✅ 正确:使用环境变量
TUSHARE_TOKEN="your_token_here" # 在.env文件中
2. 错误处理
系统已自动处理数据获取失败的情况,无需额外编码。
3. 日志监控
关注日志中的以下标记:
[Akshare]- Akshare数据源操作[Tushare]- Tushare数据源操作✅- 操作成功❌- 操作失败⚠️- 警告信息
4. 性能优化
- 优先使用Akshare(响应更快)
- Tushare作为备用(更稳定)
- 合理设置数据缓存
- 避免频繁重复请求
📝 代码示例
自动使用数据源管理器
所有数据获取模块已自动集成数据源管理器,无需修改业务代码:
# 在stock_data.py中
from data_source_manager import data_source_manager
# 获取历史数据(自动切换)
df = data_source_manager.get_stock_hist_data(
symbol="600519",
start_date="20240101",
end_date="20241018",
adjust='qfq'
)
手动使用数据源管理器
如需在自定义模块中使用:
from data_source_manager import data_source_manager
# 1. 获取股票历史数据
hist_data = data_source_manager.get_stock_hist_data(
symbol="600519",
start_date="20240101",
end_date="20241018"
)
# 2. 获取股票基本信息
basic_info = data_source_manager.get_stock_basic_info("600519")
# 3. 获取实时行情
quotes = data_source_manager.get_realtime_quotes("600519")
# 4. 获取财务数据
financial = data_source_manager.get_financial_data(
symbol="600519",
report_type='income' # income/balance/cashflow
)
🔐 安全建议
Token保护
-
不要将Token提交到版本控制
# 在.gitignore中添加 .env -
不要在代码中硬编码Token
-
定期更换Token
-
限制Token的使用范围
📊 监控与统计
查看数据源使用情况
系统日志会记录每次数据获取使用的数据源,便于统计:
# 统计示例(从日志中提取)
Akshare成功: 95次
Tushare备用: 5次
全部失败: 0次
成功率: 100%
Tushare使用率: 5%
🎓 进阶功能
1. 自定义数据源优先级
当前默认:Akshare > Tushare
如需修改,编辑data_source_manager.py中的获取顺序。
2. 添加更多数据源
可以扩展DataSourceManager类,添加其他数据源(如Wind、东方财富等)。
3. 数据源监控告警
可以添加监控逻辑,当某个数据源失败率过高时发送告警。
📞 技术支持
相关文档
常见问题
-
Q: 是否必须配置Tushare? A: 不是。仅使用Akshare也可以正常工作,Tushare作为可选的备用数据源。
-
Q: Tushare免费版有限制吗? A: 有。免费版有每分钟调用次数限制,可通过做任务获得积分提升限额。
-
Q: 数据源切换会影响性能吗? A: 影响很小。只有在Akshare失败时才会尝试Tushare,增加的延迟在可接受范围内。
-
Q: 可以只使用Tushare吗? A: 可以,但不推荐。系统设计为优先Akshare,这样可以节省Tushare的调用额度。
🎉 总结
数据源冗余机制为系统提供了:
- ✅ 更高的可用性 - 单点故障不影响使用
- ✅ 更好的稳定性 - 自动容错恢复
- ✅ 更强的灵活性 - 可扩展多数据源
- ✅ 零学习成本 - 全自动化运行
现在您可以放心使用系统进行股票分析,无需担心数据获取问题!
更新日期: 2025-10-18
版本: v1.0.0
适用系统: AI股票分析系统