【问题标题】:What are good NoSQL and non-relational database solutions for audit/logging database审计/日志数据库有哪些好的 NoSQL 和非关系数据库解决方案
【发布时间】:2010-05-05 14:59:16
【问题描述】:

什么是合适的数据库?我对您在非关系 NoSQL 系统方面的体验特别感兴趣。 它们对这种用法有什么好处吗?您使用过并且会推荐哪个系统,或者我应该使用普通的关系数据库(DB2)吗?

我需要从一堆来源收集审计跟踪/日志记录类型信息到 集中式服务器,我可以在其中高效地生成报告并检查系统中发生的情况。

通常,审核/日志记录事件总是包含一些必填字段,例如

  • 全球唯一 ID(生成此事件的程序如何生成)
  • 时间戳
  • 事件类型(即用户登录、发生错误等)
  • 关于源(server1、server2)的一些信息

此外,事件可能包含 0-N 个键值对,其中值可能高达几千字节的文本。

  • 必须在 Linux 服务器上运行
  • 它应该适用于大量数据(例如 100GB)
  • 它应该支持某种高效的全文搜索
  • 应该允许并发读写
  • 应该灵活地添加新的事件类型和添加/删除键值对到新的事件。灵活=不需要更改数据库架构,生成事件的应用程序可以根据需要添加新的事件类型/新字段。
  • 对数据库进行查询应该是有效的。用于报告和探索发生的事情。例如:
    • 在某个时间段内发生了多少 type=X 的事件。
    • 获取字段 A 的值为 Y 的所有事件。
    • 获取类型为 X 且字段 A 的值为 1 且字段 B 不是 2 且事件发生在过去 24 小时内的所有事件

【问题讨论】:

    标签: logging nosql audit-trail


    【解决方案1】:

    我见过使用成功的两个是MongoDBCassandra

    【讨论】:

    【解决方案2】:

    我应该使用普通的关系数据库 (DB2) 吗?

    是的,你应该!如果您只想存储内容并对其进行扫描,则不妨写入文件。非常快,没有开销!但是,随着时间的推移(过去 24 小时,或时间 t 和 t+1 之间)您想要汇总数据的那一刻,您就越关心数据而不是文本行,毫无疑问,合适的 RDBMS 是您的朋友。

    【讨论】:

      【解决方案3】:

      我们使用Redis 为 mflow.com 上的所有应用服务器执行所有集中式日志记录。它非常快,基于these benchmarks,它每秒执行大约 110000 次 SET,每秒大约 81000 次获取。它有一个 VM 实现(如果您的数据集超出可用内存),可以将不常用的值换出到磁盘。

      它是一种高级数据结构服务器,可以存储任何二进制安全数据,并原生支持字符串、列表、集合、排序集合和散列。根据邮件列表上的讨论,很多人大量使用它来存储分析数据。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-01-02
        • 1970-01-01
        • 2011-05-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多