【问题标题】:Deploying an RShiny Application online, with access to a Database在线部署 RShiny 应用程序,并访问数据库
【发布时间】:2020-10-21 14:28:21
【问题描述】:

正如标题已经说过的,我正在尝试部署一个 RShiny 应用程序,但由于它需要访问数据库而无法使其工作。我发现的 Webhosters 不允许安装 Rstudio Server 或者我无法远程访问数据库,是否有任何替代方法可以用来托管应用程序以及我的数据库?

提前谢谢你

【问题讨论】:

  • 数据库和应用需要在同一台服务器上吗?那可能很贵。而且很复杂。我自己的解决方案是在 shinyapps.io 上托管应用程序,在 AWS 上托管数据库。我必须在 AWS 上创建一个 API 来处理应用程序和数据库之间的通信,但这并不太难,并且在应用程序和数据库分开托管的任何情况下都可能需要。数据库主机通常不允许远程访问。我无法在 shinyapps.io 上托管数据库,因为 shinyapps.io 是容器化的。
  • 感谢大家的帮助,为什么需要创建API,不能远程访问数据库?
  • 您真的需要关系数据库,还是 XML 文件可以?无论如何,shinyapps.io 的性能往往很糟糕
  • 也许 XML 文件可以工作,但我如何在 R 中访问 XML 文件?
  • @Johann:是的。我目前正在shinyapps.io 上开发一个应用程序,并且出于这个原因,我不得不从本地.Rds 文件中的数据存储转移到AWS 上托管的远程MySQL 数据库。但是 MySQL db 确实带来了其他好处(审计跟踪、访问冲突解决等),所以这并不全是痛苦的。

标签: mysql r database hosting


【解决方案1】:

如果性能不是关键任务(在这种情况下,闪亮的应用程序无论如何都不是一个好的选择),并且如果需要数据库来简单存储信息并且不需要复杂的数据库功能,那么解决方案可能是使用XML 数据集,托管在 Dropbox 上。

XML 文件基本上是一个文本文件,您可以在其中定义具有各种“值”的“对象”或节点。 你可以看看herehere 进行温和的介绍。

XML 可以通过 xml2 等包在 R 中轻松操作。请参阅 homepagetutorial

最后正如@Limey 指出的那样,shinyapps.io 等主机可能不允许永久存储(即读取和写入文本文件,而不会在每次应用启动时都被删除)。

shinyapps.io 文档提供了各种解决方法,此处:https://shiny.rstudio.com/articles/persistent-data-storage.html

其中最简单/最便宜的似乎是 Dropbox 实现,使用 rdrop2 package。因此,基本上您将在 Dropbox 帐户上拥有一个 database.xml 文本文件,该文件由应用程序读取、修改和保存。 请注意,如果您希望有许多并发用户,则此解决方案可能不够健壮(例如,如果两个用户同时保存会发生什么情况?)。对于大多数教育和爱好项目来说,它仍然是一个快速且可行的选择。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-29
    • 2013-05-25
    相关资源
    最近更新 更多