在shinyapps.io部署含blpconnect()的Shiny App连接Bloomberg失败求助
解决Shiny Apps.io无法连接Bloomberg数据的问题
直接在shinyapps.io的共享服务器上通过Rblpapi调用blpConnect()连接Bloomberg是不可行的,原因很明确:
- shinyapps.io的服务器没有安装Bloomberg终端软件,也没有Bloomberg的授权许可和专用网络访问通道
- 默认的
blpConnect()会尝试连接本地的Bloomberg终端端口(127.0.0.1:8194),云端服务器不存在这个本地服务,必然连接失败
以下是几种可行的替代方案:
方案1:本地缓存+定时更新
- 在本地运行带Bloomberg终端的机器上,定时用
bdp/bdh获取所需数据,保存为CSV、RDS等格式 - 将数据上传到持久化存储(比如AWS S3、Google Cloud Storage,或利用
rsconnect包上传到应用目录,但注意shinyapps.io文件系统重启会重置,更推荐外部存储) - 修改Shiny App代码,从缓存存储中读取数据,而非直接调用Bloomberg API
- 用本地定时任务(Windows任务计划程序、Linux/macOS的cron)定期更新数据并同步到存储位置
方案2:自建带Bloomberg Server API的服务器
如果有Bloomberg的Server API授权许可:
- 搭建自己的云服务器(如AWS EC2、Azure VM),安装Bloomberg Server API客户端和R环境
- 在该服务器上部署Shiny App,配置
blpConnect()连接到Bloomberg的Server API端点(而非本地终端) - 确保服务器有Bloomberg的网络访问权限(通常需要专线或VPN连接到Bloomberg网络)
方案3:第三方数据服务中转
使用已集成Bloomberg数据的第三方金融数据API服务:
- 调用这些服务的API获取数据,替换直接的Bloomberg API调用
- 注意验证数据的实时性、覆盖范围是否符合需求,部分服务可能需要付费
内容的提问来源于stack exchange,提问作者Parineeta Gengaje
相关产品推荐
相关产品推荐

