我正在尝试开发一个系统,在我们的网站上记录用户的操作,这样以后我们就可以做一些模式。我不确定我应该使用什么数据存储,但我考虑使用NoSQL之类的存储,因为它很容易扩展。它应该是无模式的东西,这样我们就可以在必要时轻松地更改数据格式。此外,它应该非常快且频繁地写入数据,但读取操作非常少。
数据应该是这样的:
userid=1、action=act1、timestamp=1234、additional_info1=something_here userid=2、action=act1、timestamp=324、additional_info2=something_else_here
在存储时,我们希望为一个用户、一个操作、一个additional_info进行一些统计。
你能给我一些关于我应该使用什么存储的提示吗?
PS: Out webapp是用PHP编写的
发布于 2011-08-04 17:54:34
基于您的规范-快速、频繁和安全的写入,不是那么快的读取,可伸缩性,以及将是集合的“代表”和您将通过其获取数据的键,我推荐使用Cassandra DB。它的描述是:
最佳使用:当你写的比你读的多时(日志记录)。
您需要的资源:
http://cassandra.apache.org/
由Facebook开发,用于管理消息系统,但也被其他大型公司使用,如Digg、Twitter、Reddit、Rackspace、Cloudkick、Cisco、SimpleGeo、Ooyala、OpenX。
就写作而言,最快也是最可靠的。
编辑:
另一个描述Cassandra的关键句子是:
写入比读取更快,因此一个自然的利基是实时数据分析。
据我所知,这个利基或多或少就是你需要它的目的。
在这里,您可以了解详细信息,并对NoSQL数据库机制进行良好、客观的比较-
http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis
如果您想要一种更简单的方法,但以不太安全的编写为代价,MongoDB也是一个可行的选择。
它有一个更容易的查询系统,所以基本上它会让你更容易搜索数据。
资源:
http://www.mongodb.org/
干杯,
发布于 2011-08-09 03:23:41
据我所知,您需要易用性和动态/无模式。虽然信息还不够,但我觉得你需要一些像Redis或MongoDB这样的东西。请注意,MongoDB存储JSON文档,查询有时会变得复杂,可能会涉及一些学习曲线。另一方面,使用Redis,你可以在任何时候都可以很好地使用它。但是,您应该知道,您需要与RDBMS进行不同的思考。数据分析部分没有连接和关系内容,因此您需要了解并相应地设计您的解决方案。
如果您需要NoSQL、http://ttltheory.wordpress.com/2011/08/07/next-generation-data-storage/的概述,我已经在我的博客中解释了一些不同类型的NoSQL数据库
发布于 2011-08-04 22:21:56
你能给我一些关于我应该使用什么存储的提示吗?
不是,不是。而且您似乎已经决定使用NoSQL DB。
你(我们?)需要回答的是你想(明确地)捕获什么信息,你想如何分析它,以及你想要如何呈现结果。
一定要使用nosql系统实现完整的解决方案--但是如果您还没有很好地定义自己的需求,那么我强烈建议您使用关系数据库来建模数据并生成示例报告。
https://stackoverflow.com/questions/6939120
复制相似问题