sam*_*dhi 6 hadoop r amazon-simpledb mahout google-bigquery
我目前正致力于生成像亚马逊那样的产品推荐的系统:"购买此产品的人也买了这个......"
目前的情景:
提取客户端的Google Analytics数据并将其插入数据库.
在客户的网站上,在产品页面加载时,进行API调用以获取正在查看的产品的建议.
当API收到产品ID作为请求时,它会在数据库中查找并检索(使用关联规则)推荐的产品ID并将其作为响应发送.
将处理这些产品ID的列表,以在客户端获取产品详细信息(图像,价格..)并显示在网站上.
目前我在AMAZON EC2上使用PHP和MYSQL与gapi包和REST api存储.
我的问题是: 现在,如果我必须选择以下内容,这将是实施上述概念的最佳选择.
PHP与SimpleDB或BIGQuery.
R语言与BIGQuery.
RHIPE-(R和hadoop)与SimpleDB.
Apache Mahout.
请帮忙!
这个问题不太容易回答,因为约束条件相当专业。
不过,可以考虑以下因素:
结果,这消除了第一个、第二个和第四个选项。
我不太明白的是需要一个实时服务器来利用 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 可以让您实例化许多已准备好的 R 进程,这些进程已加载包并在 RAM 中存储数据;因此,您只需要传递需要用于预测的任何数据。如果您的新数据是一个小向量,那么 RApache 应该没问题,而且这对于实时处理的数据来说似乎是正确的。