3

我很清楚这样一个事实,这可能不是典型的 SO 问题,但由于这是我所知道的最强大的 R 编程社区,并且 opencpu 的作者明确鼓励在这里发帖,我会试一试:

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

几百 MB(甚至 GB)的数据呢?您将如何 a) 将其传输到您的用户文件夹?您将如何 b) 在一组经过身份验证的用户之间共享它并 c) 对公众隐藏它?

我阅读了许可证部分,根据我对安全的理解,只要源代码是公开的,就应该可以在幕后运行计算。但是,这份小文件仍然留下了悬而未决的问题和很多猜测。

4

3 回答 3

2

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

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

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

马特,

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

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

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

于 2014-11-02T09:35:58.597 回答
0

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

于 2012-06-21T23:27:55.853 回答