Far*_*hat 5 database logging couchdb cassandra nosql
我正在编写一个带有nodeJS的Web应用程序,其他应用程序可以使用它来存储日志,稍后可以在Web界面中访问,也可以由提供API的应用程序本身访问.与Graylog2类似,但架构免费.
我已经尝试过couchDB,其中每个文档都是一个日志文档,但由于我没有真正使用修订版,在我看来我并没有使用它的所有功能.除此之外,我认为如果日志超出限制,那么在couchDB中管理将非常困难.
我真正想要的是一大堆日志,可以对其进行排序,过滤,搜索和封顶.然后访问它的最后一个事件.它应该是无架构的,写入它应该是非阻塞的.
我正在考虑使用Cassandra(我真的不熟悉它),因为这里说的要点.MongoDB在这里似乎也很好,因为Graylog2在mongoDB中使用,在这里它有一些关于它的好点.
我已经看过这个问题,但对答案不满意.
编辑:由于某些原因我不能在生产中使用Cassandra,现在我正在尝试使用MongoDB.
使用mongoDB的另一个原因:http://www.slideshare.net/WombatNation/logging-app-behavior-to-mongo-db
更多编辑:
它类似于graylog2,但我想要的不同之处在于,而不是有一个消息字段,有客户端定义的文件,这就是为什么我希望它没有架构,因此,我可能需要查询用户定义的字段.我们可以在SQL上构建它,但查询用户定义的字段将重新发明轮子.文件也一样.
从技术上讲,我正在寻找的是最终获得丰富的统计数据,或者简单的调试以及我们无法从日志中获取的许多其他内容.
你还有很多工作要做。无论您使用哪种数据库,您都拥有许多必须在数据库基础之上构建的功能。您对所有选择都做了充分的研究。听起来你怀疑所有的方法都有优点和缺点,但都不完美。你的怀疑是正确的。此时可能是开始编写代码的时候了。
您可以任意选择一个并开始构建您的应用程序。如果您的猜测是正确的,即利弊平衡并且一切都差不多,那么为什么不立即开始构建呢?当您在数据库上遇到困难 X 时,请记住它给您带来了便利 Y 和 Z,这就是生活。
您还可以建立应用程序的基本核心并在每个数据库上实现各种原型。这可能会给您真正的洞察力,帮助您区分特定应用程序的数据库。比如除了接口、索引、查询问题之外,部署呢?备份怎么样?维护和安全怎么样?也许“浪费”时间在每个平台上构建相同的原型会让你的答案变得非常清晰。
如果你这么说的话,我认为 CouchDB 就是“NoSQL”。其他“非 SQL”的事物包括香蕉、诗歌和板球。这不是一个很有意义的词。我们有通用语言和特定领域语言;类似地,CouchDB 是一个特定于领域的数据库。如果您需要以下功能,它可以节省您的时间: