Какая база данных подойдет для следующих? Меня особенно интересует ваш опыт работы с нереляционными системами NoSQL .
Насколько они хороши для такого использования, какую систему вы использовали и порекомендуете, или я должен использовать обычную реляционную базу данных (DB2)?
Мне нужно собрать информацию журнала аудита / типа журналирования из группы источников в
централизованный сервер, на котором я мог бы эффективно генерировать отчеты и проверять, что происходит в системе.
Обычно событие аудита / регистрации всегда состоит из некоторых обязательных полей, например
- глобально уникальный идентификатор (как-то сгенерированный программой, которая генерировала это событие)
- 1012 * Отметка времени *
- тип события (т. Е. Пользователь вошел в систему, произошла ошибка и т. Д.)
- некоторая информация об источнике (server1, server2)
Кроме того, событие может содержать 0-N пар ключ-значение, где значение может составлять до нескольких килобайт текста.
- Он должен работать на сервере Linux
- Должно работать с большим количеством данных (например, 100 ГБ)
- он должен поддерживать какой-то эффективный полнотекстовый поиск
- Это должно позволять одновременное чтение и запись
- Он должен быть гибким, чтобы добавлять новые типы событий и добавлять / удалять пары ключ-значение для новых событий. Гибкость = никаких изменений в схеме базы данных не требуется, приложение, генерирующее события, может просто добавлять новые типы событий / новые поля по мере необходимости.
- должно быть эффективно делать запросы к базе данных. Для сообщения и изучения того, что случилось. Например:
- Сколько событий с типом = X произошло за определенный период времени.
- Получить все события, где поле A имеет значение Y.
- Получить все события с типом X, а поле A имеет значение 1, а поле B не равно 2 и событие произошло за последние 24 часа