这不是那么容易回答的,因为约束是相当专业的。
不过,可以考虑以下几点:
- BIGQuery 尚未公开。因此,由于使用基数较小,即使您处于预览版人群中,也很难获得改进建议。
- 您的每个答案都询问了建模系统和存储系统。Apache Mahout 不是一种存储机制,因此它不一定会单独工作。我曾经认为它的机器学习实现是一些 Google Summer of Code 的仿制品,但我已经根据评论者的建议更新了这一观点。看起来它对不同算法的覆盖仍然相当不均匀和参差不齐,而且还不清楚如何支持或维护这些组件。我鼓励 Mahout 的布道者解决这个问题。
因此,这消除了第 1、第 2 和第 4 个选项。
我不太明白的是需要一个实时服务器来利用 Hadoop 和 RHIPE。这应该在开发推荐模型的批处理中完成,而不是实时完成。我想你可以使用 RHIPE 作为一个简单的一站式前端来触发查询。
我建议使用 RApache 而不是 RHIPE,因为您可以预先加载您的包和模型。我认为在前端使用 Hadoop 没有任何优势,但对于模型拟合来说,它将是一个非常自然的后端系统。
(更新 1)其他接口选项包括 RServe (http://www.rforge.net/Rserve/) 和可能在服务器模式下的 RStudio。有 R/PHP 接口(见下面的评论),但我怀疑通过 HTTP 或 TCP/IP 访问 R 会更好。
(更新 2)解决整个过程,我看到的基本想法是您可以从 PHP 查询数据并传递给 R,或者,如果您希望从 R 中查询,请查看评论中的链接(到 OmegaHat 工具) 或发布一个关于 R & SimpleDB 的新问题——我相信 SO 上的其他人能够更好地了解这个特定的连接。RApache 将允许您实例化许多已经准备好加载包和 RAM 中的数据的 R 进程;因此,您只需要传递需要用于预测的任何数据。如果您的新数据是一个小向量,那么 RApache 应该没问题,而且这对于实时处理的数据似乎是正确的。