5

在 Linux 云服务器上建立数据仓库挖掘项目。主要语言是 Python。

想使用这种模式来查询数据和存储数据:

  • SQL 数据库- SQL 数据库用于查询数据。但是,SQL 数据库只存储需要搜索的字段,它不存储数据本身的“blob”。相反,它在键值 Blobstore 中存储一个引用完整数据“blob”的键。
  • Blobstore - 键值 Blobstore 用于存储实际的“文档”或“blob”数据。

我们遇到的问题是,我们希望将更频繁访问的数据块自动存储在 RAM 中。我们计划为此使用 Redis。但是,我们想要一种解决方案,它首先自动尝试将数据从 RAM 中取出,如果在那里找不到,则将其转到 blobstore。

是否有一个很好的库或现成的解决方案,我们可以在不滚动自己的情况下使用?此外,对于所提议的架构的任何评论和批评也将不胜感激。

非常感谢!

4

2 回答 2

3

与其使用 Redis 或 Memcached 进行缓存,还不如使用“blobstore”包将内容存储在磁盘上,我建议您看看Couchbase Server,它完全符合您的要求(即从内存中提供热 blob,但仍将它们存储到盘)。

在我工作的公司中,我们通常将您描述的模式(即关系数据库中的索引,加上 blob 存储)用于我们的归档服务器(TB 级数据)。当写入 blob 的 I/O 保持顺序时,它工作得很好。Blob 永远不会被重写,而只是附加在文件的末尾(这对于归档应用程序来说很好)。

其他人也使用了相同的方法。例如:

于 2012-10-17T16:58:59.363 回答
1

任何 SQL 数据库都适用于第一部分。Blobstore 也可以通过使用 cbfs 获得,本质上是“现成的”。这是一个新项目,建立在 couchbase 2.0 之上,但它似乎处于非常活跃的开发阶段。

CouchBase 已经尝试在检查磁盘之前从 RAM 缓存中提供结果,并且完全分布式以支持大型数据集。

CBFS 在其上放置了一个文件系统,并且已经为它编写了一个 FUSE 模块。

由于 fileststems 实际上是最低公分母,因此您应该很容易从 python 访问它,并且会减少您需要编写的自定义代码的数量。

博文:http: //dustin.github.com/2012/09/27/cbfs.html

项目存储库: https ://github.com/couchbaselabs/cbfs

于 2012-11-04T12:15:59.350 回答