问题描述
我的使用情况是对资源的审计记录。为了讨论考虑一个非常简单的模式:资源名称,访问时间标记,以及访问用户名。与所有的NoSQL的选择了,我不知道该解决方案是最适合我的使用案例?
My use case is audit logging for resources. For discussion consider a very simple schema: a resource name, access time stamp, and accessing user name. With all the NoSQL options out there, I'm wondering which solution is best for my use case?
的资源名称以图形数据库(Neo4j的)被保持,虽然我们可以添加的顶点和边,以连接到所述资源顶点审计顶点,审计信息可以是大我担心污染相对简单的曲线图。
The resource names are being held in a graph database (Neo4j) and while we could add vertices and edges to an audit vertex connected to the resource vertex, the audit info could be large and I fear pollute a relatively simple graph.
我目前倾向于文档数据库,如MongoDB的或Couchbase,其中每个资源都有它自己的文件和审计日志本文档中被附加到内的一个简单的数组。我担心,I / O可能会成为一个问题,因为审计日志长期做下去,整个文档必须应用服务器和数据库之间进行交换。一soultion我看到减少这种,就是使每个审核条目自己的文件,其ID追加到父资源文件数组。
I'm currently leaning towards a document database such as MongoDB or Couchbase in which each resource has it's own document, and the audit log is a simple array within this document that gets appended to. I fear that I/O could become a problem as audit logs get long and the entire document must be exchanged between app server and database. One soultion I see to minimize this is to make each audit entry its own document and append its ID to the parent resource document array.
搜索审计日志是不是在这个时间要求,但有一个数据库文件,我觉得有是在以后的时间整合弹性搜索一个很好的路径。
Search audit logs is not a requirement at this time, but with a document database I feel there is a nice path to integrate Elastic Search at a later time.
这似乎Redis的可能是更优一点我的使用情况,但数据持久性不会出现其他的解决方案,严谨。
It seems Redis may be a bit more optimal to my use case, but the data persistence does not appear as rigorous as other solutions.
在概念上,我想我寻找一个支持追加API方法调用,而无需交换多少信息的NoSQL的任何解决方案。讽刺的是这基本上是一个SQL INSERT语句,但我担心传统RDBMS将不能满足我的需求规模。审计表将获得巨大的快,我宁愿利用最新和最伟大的NoSQL接近分区/分片。
Conceptually, I guess I am looking for any NoSQL solutions that support an "append" API method call without needing to exchange much information. Ironically this is basically a SQL INSERT statement, but I fear a traditional RDBMS will not meet my scale requirements. The audit table would get huge fast and I would rather leverage the latest and greatest NoSQL approaches to partitioning / sharding.
任何见解日志追加用例AP preciated!
Any insights into log append use cases are appreciated!
这似乎是相似的,所以问题:
These seem to be similar SO questions:
谢谢,
贾里德
Thanks,Jared
推荐答案
是登录为导向,高度可扩展和可订阅以多种不同方式的消息。
Apache Kafka is log-oriented, highly scalable and allows for subscribing to messages in multiple different ways.
这篇关于它的NoSQL数据库最好只追加审计日志记录的用例?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!