【问题标题】:Database for tracking the statuses of documents inside a documents management system用于跟踪文档管理系统中文档状态的数据库
【发布时间】: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


【解决方案1】:

Mongodb 是一个正确的选择,因为它支持您所有预期的开箱即用功能

  • 文档/嵌入文档
  • json 兼容
  • 支持查询(当然连接除外)
  • 超级快
  • 10gen 支持的java驱动

查看mongodb use cases 了解更多信息

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-03
    • 2018-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多