【问题标题】:What database to use for a clicks stream application RELATIONAL OR NOSQL? [closed]点击流应用程序 RELATIONAL 或 NOSQL 使用什么数据库? [关闭]
【发布时间】:2013-07-10 09:39:27
【问题描述】:

我需要创建一个数据库来处理点击流(来自约 240 个子域)。我使用 Java 脚本为每次点击获取信息,例如(主机、页面、日期、用户 ID、引用者、主机名、引用路径、唯一用户 ID),然后通过 java web 动态应用程序将数据插入数据库。每天大约有 900 万条新记录,我必须每分钟插入新记录。另一个应用程序需要能够检索有关特定文章/子域在最近(10 分钟、20 分钟、30 分钟、1 小时...24 小时)内的浏览量/唯一身份访问者/等信息。我只需要保留最近 3 个月的记录。

最初我考虑使用 MySQL,因为我只对开源感兴趣。但我正在考虑 NoSQL 解决方案。问题是我只在关系数据库方面有经验,并不能真正判断 NoSQL 是否会是一个更好的解决方案。如果我选择使用 NoSQL,我应该使用哪个数据库?键值存储是最好的方法吗?

【问题讨论】:

    标签: mysql database nosql key-value-store


    【解决方案1】:

    我猜这种数据一致性并不重要(统计数据?),因此您确实可以保留一点一致性。 NoSQL 似乎是一个不错的选择,键值存储也是我的选择。现在真正的问题是:什么是最合适的?

    我会考虑 Redis 和 Riak(它们基本上是最知名的):

    Riak(AP系统):

    • 容错(带分区和复制的无主控)
    • Map reduce
    • 全文搜索
    • BASE

    Redis(CP系统):

    • 真快
    • 内存中:您需要内存!这也意味着您需要复制,这样您就不会在崩溃时丢失所有内容。我相信 Redis 也使用磁盘快照。
    • 主/从与reelection
    • 基础

    两者都有更多功能,您应该阅读文档以了解问题。 Redis 主要用作缓存,因为它速度快,而 Riak 专注于容错。鉴于您的可扩展性要求,两者都可以满足您的需求。因此,您必须根据以上内容进行选择。

    【讨论】:

    • 非常感谢 :) 一致性并不重要我也不需要任何主键或外键
    猜你喜欢
    • 1970-01-01
    • 2012-06-19
    • 1970-01-01
    • 2010-09-29
    • 1970-01-01
    • 2017-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多