Журнал регистрации в MongoDB


Хранение «журнала регистрации» в nosql базе.
1) Java-api
2) MongoDB
3) доработать конфу в нужных местах

Кто скажет, что можно или нужно хранить ЖР в SQL базе, я первый в него кину камень.

  1. нужно заинсталить JVM 1.8 
  2. поставить mongoDB, запустить как сервис.
  3. поставить Robomongo (gui оболочка для бд)
  4. запустить java-api как сервис или процесс (мне все равно)
  5. отправлять туда необходимую информацию через 1С адаптер.

Java api это простой микросервис, который работает на localhost:8080 , принимает JSONы и отправялет их в монгу.

имеет следущие поля для записи;
 private Date date;
private String db;
private String user;
private String computer;
private String application;
...

Используя SpringBootApplication и аннотацию RepositoryRestResource, мы можем написать всего лишь 8 строчек кода, для требуемого функционала. В итоге мы имеем невероятно быстрый ЖР, писать туда можно со всех ваших баз.  Поиск по журналу делаете через функционал Robomongo  например.

https://github.com/mikesockor/1cJrInMongodb для желающих клонировать и изменить/добавить функционал.

Третья обработку можно запускать в фоновом задании (например). Она выгружает вчерашний ЖР в монгу и очищает его в 1С. Также доступна форма с выбором любого периода (для инициализации например)

В планах сделать таблицы пользователей, компьютеров, серверов в монге как отдельных коллекций. Для построение удобной модели запросов.

Stay tuned. 

4 Comments

  1. artbear

    Подписался.

    Reply
  2. Silenser

    Вопрос можно-нужно не всегда лежит в плоскости правильного выбора технологии. Конечно, идеологически, key-value структура больше подойдет для ЖР, но с точки зрения стоимости поддержки MS SQL может оказаться банально дешевле, т.к. он куплен под другие задачи и под него есть готовый спец.

    Интересно: а с точки зрения поиска по значениям внутри коллекции (например, нужно отобрать все события по одной базе), насколько быстро работает поиск в Mongo, по сравнению с поиском по колонке в таблице MS SQL?

    Reply
  3. sockor

    сейчас у нас десятки миллионов записей

    как правило в коллекциях настроены индексы

    поисковые запросы подразумевают выборку от 1 до 100 записей по ключу.

    все работает достаточно быстро

    Reply
  4. Silenser

    (3)Понятно, спасибо за ответ. А почему не взяли один из 2х готовых REST API? Они вроде полноценно CRUD поддерживают, в отличие от базовой функциональности самой СУБД.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *