用于 mahout 推荐的内存数据库
Posted
技术标签:
【中文标题】用于 mahout 推荐的内存数据库【英文标题】:In-memory database for mahout recommendatiion 【发布时间】:2016-04-06 04:59:52 【问题描述】:我最近一直在做 mahout。当前版本通过其 DataModels 支持来自文件、mysql 等的输入。就我而言,原始数据位于客户端位置的 Postgres 数据库中。原始数据在输入 mahout DataModel 之前需要进行大量的预处理。目前,我将优化后的数据存储为一个简单的*.csv
文件,并使用内置的 FileDataModel 将其加载到 Mahout。
是否可以使用内存数据库来实际存储精炼数据并使用现有的MySQLJDBCDataModel/JDBCDataModel
将其加载到 Mahout? .如果是这样,什么样的内存数据库可以达到这个目的
【问题讨论】:
【参考方案1】:sqllite3 通常是内存数据库中的 goto,并且有充分的理由,它是那里最坚固的数据库之一,并且可以在任何地方找到。您正在使用的浏览器可能正在使用它。它有一个相当直接的内存选项。即使是基于磁盘的它也很快。
如果有足够的 RAM,大多数数据库无论如何都会有效地将大部分数据加载到 RAM 中。我长期使用 PostgreSQL 作为搜索引擎的后端,大多数访问是对 RAM 的访问,读取时几乎没有任何内容进入磁盘。如果您已经在 PostgreSQL 中拥有数据库,则将其保存在其中可能会更简单。
【讨论】:
【参考方案2】:请记住,您只能从单个进程访问 SQLite 内存数据库。
如果您需要终极性能,即使是完全缓存的持久性数据库也不会像真正的内存数据库系统那样快。不过,对我来说,听起来您并不需要那种级别的极致性能。
【讨论】:
以上是关于用于 mahout 推荐的内存数据库的主要内容,如果未能解决你的问题,请参考以下文章
mahout0.7 是不是仍然支持内存和 MR KMeans 集群?
如何在不耗尽内存的情况下运行大型 Mahout 模糊 kmeans 聚类?