在Linux云服务器上设置数据仓库挖掘项目.主要语言是Python.
想使用此模式查询数据和存储数据:
> sql数据库 – sql数据库用于查询数据.但是,sql数据库仅存储需要搜索的字段,它不存储数据本身的“blob”.相反,它存储一个键,该键引用键值Blobstore中的完整“blob”数据.
> Blobstore – 键值Blobstore用于存储数据的实际“文档”或“blob”.
我们遇到的问题是我们希望更频繁访问的数据blob自动存储在RAM中.我们计划使用Redis.但是,我们想要一个自动尝试从RAM中获取数据的解决方案,如果它无法在那里找到它,那么它将转到blobstore.
有没有一个好的图书馆或现成的解决方案,我们可以使用而无需自己动手?此外,任何有关拟议架构的评论和批评也将受到赞赏.
非常感谢!
最佳答案
我没有使用Redis或Memcached进行缓存,而是使用“blobstore”软件包将内容存储在磁盘上,我建议您查看Couchbase Server,它可以完全满足您的需求(即从内存中提供热点,但仍将它们存储到磁盘中) ).
在我工作的公司中,我们通常使用您描述的模式(即在关系数据库中建立索引,加上blob存储)来存档服务器(TB级数据).当写入blob的I / O保持顺序时,它运行良好. blob永远不会被重写,而只是附加在文件的末尾(对于归档应用程序来说很好).
其他人也使用了同样的方法.例如:
> Bitcask(用于Riak):http://downloads.basho.com/papers/bitcask-intro.pdf
> Eblob(用于Elliptics项目):http://doc.ioremap.net/eblob:eblob