我开始为我们在系统上管理的文档建立一个记录保存数据库。每个文档都要经历一系列特定的处理任务,我将在这里称之为规范化、转换和提取。
文档处理可能在任何这些步骤中失败,所以,我正在寻找一个解决方案,我可以快速存储这些信息存档,但我也应该能够查询信息(并可能总结它)。如果我在json中定义我的数据结构它可能是这样的:
{ 10123 : [
{ queue : 'converter',
startedAt : 'date-here',
finishedAt: 'date-here',
error : { message : 'error message', stackTrace : 'stack trace here' },
machine : '192.168.0.1'
} ,
{ queue : 'extractor',
startedAt : 'date-here',
finishedAt: 'date-here',
error : { message : 'error message', stackTrace : 'stack trace here' },
machine : '192.168.0.1'
},
{ queue : 'extractor',
startedAt : 'date-here',
finishedAt: 'date-here',
error : { message : 'error message', stackTrace : 'stack trace here' },
machine : '192.168.0.1'
},
] }
在理想情况下,我将拥有来自特定文档的完整处理寿命信息,并且还应该能够检测哪些处理失败以及每个处理花费的平均时间。
有什么理想的数据库解决方案来处理这个问题吗?这可能会导致每天数千次的写入。
主要解决方案是用Java编写的,所以DB应该有一个Java驱动程序。
Mongodb是一个正确的选择,因为它支持所有您期望的功能开箱即用
- 文档/嵌入式文档 json兼容
- 支持查询(当然除了join)
- 超快
- java驱动支持10gen
查看mongodb用例获取更多信息