数据在openCPU中的作用

时间:2012-06-21 20:15:56

标签: r opencpu

我很清楚这可能不是典型的SO问题,但由于这是我所知道的最强大的R编程社区和opencpu explicitly encourages to post here的作者,我会试一试:

数据在opencpu方法中扮演什么角色?我的意思是云计算很好,但你需要一些数据来计算。上传一些示例.csv或.xls表可能是直截了当的,但opencpu对于真实世界数据有什么想法?

数百MB(甚至GB)的数据怎么样?您如何a)将其转移到您的用户文件夹?您如何b)在一组经过身份验证的用户之间共享它?c)将其隐藏在公众面前?

我阅读了license部分,根据我的安全理解,只要源代码是公开的,就应该可以在场景后面进行计算。但是,这个小小的文件留下了悬而未决的问题和许多猜测。

3 个答案:

答案 0 :(得分:2)

感谢您尝试使用OpenCPU。 OpenCPU目前仍然是一个不断发展的项目,因此我们对有趣的建议或用例持开放态度。

关于数据......你一次要问很多事情。一些想法:

  • 此时,OpenCPU无法解决“大数据”问题。它不会扩展到R本身扩展到的范围之外。它主要是作为中小型数据的基础设施;例如典型的研究论文,项目等。
  • OpenCPU是一个API。它不仅限于浏览器客户端。它也可以从其他客户端调用。
  • OpenCPU有一个用于在服务器上存储R对象的存储。例如,您上传CSV或其他任何内容,然后存储实际的数据帧。在任何后续调用中,您都可以将此对象包含为函数调用的参数。
  • 另一种方法是将它与外部数据库(例如mysql)结合并动态提取R代码中的数据(例如使用RMySQL)
  • Afaik,此时开放数据的法律方面尚不完全清楚。我认为版权如何适用于数据以及良好的许可证将达成共识。但是,OpenCPU设计的一个关键特性是确保事物易于重现。当然,这只能在数据实际公开时才能完成。

答案 1 :(得分:1)

马特,

我正在处理一个真实的用例,涉及从3GB(但不断增长的)数据集转换和处理数据。以下是我使用的方法(主要基于Gergely Daróczi的建议):

  • 只要源数据可以放入服务器内存,我就选择使用我的R包加载数据并在用户会话中保存数据(例如使用OpenCPU预加载数据包)
  • 如果您的服务器上没有这个选项,另一种方法是将您的数据复制到Ramdisk(Linux tmpfs系统)到.rds(或.rda.rData等)文件中在R包中使用getOption("path_to_my_persistent_data_files")设置这些路径,然后根据需要在包函数中加载/卸载这些文件
  • 当您的数据不再适合内存时,我会考虑将MongoDB后端与R接口rmongodb一起使用,因为这可能比RDBMS更快,更容易维护。

目前,OpenCPU不提供对大型持久性数据集的任何支持,您可以找到最适合您需求和资源的方法。

答案 2 :(得分:0)

您可以安装opencpu的本地实例。您不必在Internet上使用现有的。说明在网站上。