Исторические данные

Started by EugeneSG, June 22, 2020, 05:42:45 PM

Previous topic - Next topic

EugeneSG

Доброго времени суток!
Появилась у меня необходимость анализировать данные по производительности мониторируемых объектов за несколько лет.
Как реализовать? Просто поднять DefaultDCIRetentionTime до 1095?
NetXMS не загнется? Или есть другие варианты?

EugeneSG

Не проходите мимо!
Задача горящая :)

Filipp Sudanov

Если загнется, то не сам NetXMS, а база данных :)

Один из вариантов - делать парные DCI - один с небольших сроком хранения - несколько месяцев и более частым временем сбора. А второй - с редким временем сбора (он может, например, скриптом брать значения из первого DCI усреднять или еще как-то) и уже этот DCI хранить много лет.

Evgeniy Skoropadskiy

Вот это да!
Т.е. данная система не рассчитана на хранение данных за несколько лет?
А как же тогда Вы предлагаете анализировать рост нагрузки и т.д. за года?
Или это система только для "оповещений"?
Может есть какие-то механизмы-идеи о создании "архивной базы" (идея с двумя DCI прямо скажем не о чем)?
Как пример: "выгружать" данные в тот же Elastic Search?

Victor Kirhenshtein

У нас есть возможность создавать fan-out драйвера для параллельной выгрузки данных в другую базу. Сейчас есть драйвер для InfluxDB, но можно сделать и для других баз. Если требуется хранить и анализировать данные за несколько лет то я бы предложил переход на TimescaleDB. Он позволит нормально работать с оперативными данными, и в нем есть встроенные механизмы архивации и анализа исторических данных. У нас есть несколько клиентов на поддержке на TimescaleDB и результаты в целом очень хорошие.

EugeneSG

Отлично!!!
Главное, что есть варианты!!!
Простой (на первый взляд) вариант это перейти на TimescaleDB и просто изменить параметр DefaultDCIRetentionTime? Я парвильно понял?
Сложный - это разработать драйвер для другого сервера БД, или этого же но уже архивная БД и еще придется разрабатывать инструмент анализа так же? Например в случае того же Elasticsearch это будет Kibana?

Victor Kirhenshtein

Quote from: EugeneSG on June 29, 2020, 11:45:21 AM
Простой (на первый взляд) вариант это перейти на TimescaleDB и просто изменить параметр DefaultDCIRetentionTime? Я парвильно понял?

да

Quote from: EugeneSG on June 29, 2020, 11:45:21 AM
Сложный - это разработать драйвер для другого сервера БД, или этого же но уже архивная БД и еще придется разрабатывать инструмент анализа так же? Например в случае того же Elasticsearch это будет Kibana?

Это отдельная архивная БД. Оперативные данные останутся как есть, просто будут писаться параллельно в архивную базу. Инструменты для анализа тоже зависят от архивной базы. С точки зрения NetXMS сервера это записал данные и забыл, прочитать через сервер их уже нельзя.

EugeneSG

Понял! Огромное СПАСИБО за ответы!!!