База данных для отслеживания статусов документов внутри системы управления документами - PullRequest
0 голосов
/ 16 сентября 2011

Я начинаю создавать базу данных для документов, которыми мы управляем в нашей системе. Каждый документ проходит через ряд специфических задач обработки, которые я буду называть здесь нормализация , преобразование и извлечение .

Обработка документов может произойти сбой на любом из этих этапов, поэтому я ищу решение, где я могу быстро сохранить эту информацию для архивирования, но я также должен иметь возможность запрашивать информацию (и, возможно, суммировать ее). Если бы я определил свою структуру данных в 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, поэтому в БД должен быть драйвер Java.

1 Ответ

1 голос
/ 19 сентября 2011

Mongodb - правильный выбор для этого, поскольку он поддерживает все ожидаемые функции из коробки

  • документы / встроенные документы
  • JSON-совместимый
  • поддержка запросов (конечно, кроме объединений)
  • супер быстрый
  • Java-драйвер поддерживается 10gen

проверить варианты использования mongodb для получения дополнительной информации

...