Что такое хороший NoSQL и решения нереляционной базы данных для базы данных аудита/входа

Какова была бы подходящая база данных для следующего? Мне особенно интересно о Вашем опыте с нереляционными системами NoSQL. Хорошо работают они для этого вида использования, какую систему Вы использовали и рекомендовали бы, или я должен пойти с нормальной реляционной базой данных (DB2)?

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

Обычно событие аудита/входа всегда состояло бы из некоторых обязательных полей, например

  • глобально уникальный идентификатор (некоторые, как сгенерированный программой, которая генерировала это событие),
  • метка времени
  • тип события (т.е. пользователь вошел в систему, ошибка, произошел и т.д.),
  • некоторая информация об источнике (server1, server2)

Дополнительно событие могло содержать 0-N пары "ключ-значение", где значение могло бы быть немногими килобайтами текста.

  • Это должно работать на сервере Linux
  • Это должно работать с большим объемом данных (100 ГБ, например)
  • это должно поддерживать некоторый эффективный полнотекстовый поиск
  • Это должно позволить параллельное чтение и запись
  • Это должно быть гибко, чтобы добавить новые типы событий и добавить/удалить пары "ключ-значение" к новым событиям. Изменения Flexible=no должны потребоваться, чтобы схема базы данных, приложение, генерирующее события, может просто добавить новое событие поля types/new по мере необходимости.
  • должно быть эффективно сделать запросы против базы данных. Для создания отчетов и исследования, что произошло. Например:
    • Сколько события с type=X имели место в некоторый период времени.
    • Получите все события, где поле A имеет значение Y.
    • Получите все события с типом X, и поле A имеет значение 1, и поле B не 2, и событие имело место в 24-м последнем

14
задан Juha Syrjälä 18 November 2012 в 12:06
поделиться