【发布时间】:2011-09-15 20:41:10
【问题描述】:
我开始为我们在系统上管理的文档建立一个记录保存数据库。每个文档都会经过一系列特定的处理任务,我将在此处称之为规范化、转换和提取。
文档处理可能在这些步骤中的任何一个失败,因此,我正在寻找一种解决方案,我可以快速存储此信息以进行归档,但我也应该能够查询信息(并可能对其进行总结)。如果我在 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驱动。
【问题讨论】:
-
您标记此“nosql”是否有特殊原因?这似乎是一项可以在 SQL 中使用大约三个表来完成的任务。
-
关系数据库在写入密集型解决方案中通常不好,但我也可以尝试使用真正的 SQL 数据库,因为 NoSQL 解决方案是可用的。
-
每天有几千次写入,每次写入有 43 秒。是否还有其他活动让您称其为“重写”?
标签: java database logging nosql