将 R 用作 restful 服务

Use R as a restful service

目前我有一个 shiny 网络应用程序,可以对加载到内存中的 3GB data.frame 进行一些计算。

现在,我不需要在 shiny 网络应用程序上实现此功能,而是需要将其作为 restful 服务,以 JSON 格式将其计算通过管道传输到另一个应用程序,以便人们可以通过使用 url 发送 http 请求来使用它,比如 http://my-app.com/function

我现在正在尝试 opencpu,但我不太明白如何加载大数据并将其保存在内存中,以便我可以使用 api of opencpu ] 调用包中的函数只是为了计算,而不是每次发送http请求时都从磁盘加载大数据。

一种解决方法可能是在内存数据库中使用 hbase 并使用 rhbase 加载数据。但在我花时间学习它之前,我想知道它是否是 3GB data.frame 的合理选择,因为它可能会增加序列化和其他抵消其速度优势的开销。

实现此功能的更好方法是什么?也欢迎使用opencpu以外包的解决方案,最好是免费的

您可能想看看 Plumber。您使用注释代码(可以包括您加载数据)装饰您的 R 函数,并通过 REST API.

使其可用

您应该将您的数据放在一个包中,并将此包添加到服务器配置中的 preload