Какова была бы подходящая база данных для следующего? Мне особенно интересно о Вашем опыте с нереляционными системами NoSQL. Хорошо работают они для этого вида использования, какую систему Вы использовали и рекомендовали бы, или я должен пойти с нормальной реляционной базой данных (DB2)?
Я должен собрать журнал аудита / регистрирующий информацию о типе от набора источников к централизованному серверу, где я мог генерировать отчеты эффективно и исследовать то, что происходит в системе.
Обычно событие аудита/входа всегда состояло бы из некоторых обязательных полей, например
- глобально уникальный идентификатор (некоторые, как сгенерированный программой, которая генерировала это событие),
- метка времени
- тип события (т.е. пользователь вошел в систему, ошибка, произошел и т.д.),
- некоторая информация об источнике (server1, server2)
Дополнительно событие могло содержать 0-N пары "ключ-значение", где значение могло бы быть немногими килобайтами текста.
- Это должно работать на сервере Linux
- Это должно работать с большим объемом данных (100 ГБ, например)
- это должно поддерживать некоторый эффективный полнотекстовый поиск
- Это должно позволить параллельное чтение и запись
- Это должно быть гибко, чтобы добавить новые типы событий и добавить/удалить пары "ключ-значение" к новым событиям. Изменения Flexible=no должны потребоваться, чтобы схема базы данных, приложение, генерирующее события, может просто добавить новое событие поля types/new по мере необходимости.
- должно быть эффективно сделать запросы против базы данных. Для создания отчетов и исследования, что произошло. Например:
- Сколько события с type=X имели место в некоторый период времени.
- Получите все события, где поле A имеет значение Y.
- Получите все события с типом X, и поле A имеет значение 1, и поле B не 2, и событие имело место в 24-м последнем
задан Juha Syrjälä 18 November 2012 в 12:06
поделиться