哪个NoSQL数据库最适合追加审计日志用例?

我的用例是审计日志记录资源。 讨论考虑一个非常简单的模式:资源名称,访问时间戳和访问用户名。 有了所有的NoSQL选项,我想知道哪种解决方案最适合我的用例?

资源名称被保存在图形数据库(Neo4j)中,尽管我们可以将顶点和边添加到与资源顶点连接的审计顶点,但审计信息可能很大,我担心会污染相对简单的图。

我目前正在倾向于一个文档数据库,例如MongoDB或Couchbase,其中每个资源都有它自己的文档,审计日志是这个文档中的一个简单数组,它被附加到后面。 我担心随着审计日志变长,整个文档必须在应用程序服务器和数据库之间交换,I / O可能会成为问题。 我认为最大限度地减少这种情况的一个灵魂就是使每个审计条目都是自己的文档,并将其ID附加到父资源文档数组中。

搜索审核日志目前不是必需的,但对于文档数据库,我觉得有一个很好的途径可以在以后集成Elastic Search。

看起来Redis可能对我的用例来说更加优化,但数据持久性并没有像其他解决方案那样严格。

从概念上讲,我想我正在寻找任何支持“附加”API方法调用而不需要交换太多信息的NoSQL解决方案。 具有讽刺意味的是,这基本上是一个SQL INSERT语句,但是我担心传统的RDBMS不能满足我的规模要求。 审计表会变得非常快,我宁愿利用最新和最好的NoSQL方法来进行分区/分片。

对日志附加用例的任何见解都会感激!

这些似乎是类似的SO问题:

用于审计日志的数据库设计

NoSQL或RDBMS用于审计数据

谢谢,Jared


Apache Kafka是面向日志的,高度可扩展的,并允许以多种不同的方式订阅消息。

链接地址: http://www.djcxy.com/p/66413.html

上一篇: Which NoSQL database best for append only audit logging use case?

下一篇: Aggregate functions, Lack of Types, Entropy in Query problems on NoSQL DBs