Pull to refresh

Comments 6

UI выглядит навороченно, мой намётанный глаз узнал FlatLaF. Вашу Dimension DB вечером гляну. А зачем Berkley DB java edition?

Да, FlatLaF - но для многих компонентов модификации (background color etc), чтобы визуально было удобно различать элементы. Ориентировались на темную тему Darcula из IDEA.

Berkley DB java edition - backend для Dimension DB.

Правильно ли я понимаю: факторный анализ и анализ главных компонент так же есть в этой программе? Есть ли возможность работать с пространственными данными? Чем ваше ПО лучше и удобнее например Statistica или Past, кроме анализа в реальном времени (это очень круто). Какие методы кластеризации есть в программе и можно ли их настраивать? Есть ли возможность составления прогнозов? Встроенно ли быстрое разложение Фурье?

Хороший вопрос на самом деле. Ответ потянет на полноценную статью :)

Факторный анализ, анализ главных компонент и быстрое разложение Фурье не используется. И для работы с пространственными данными тоже нет функционала, и кластеризации тоже.

Есть другие реализации методов для решения задач анализа временных рядов (поиск аномалий, Motif discovery и прогнозирования): Matrix profile и ARIMA. Особое внимание уделяется визуализации данных, интерактивной работе с измерениями, поиску корреляций в данных, которые в общем-то закрывают значительную часть потребности в анализе данных временных рядов. Прогнозирование временных рядов - это только одна из задач time series analysis.

Фокус на простоте - в свое время, еще до начала проекта у меня почему-то было ощущение (не знание), что должен быть простой метод работы с данными временных рядов, например задача поиска аномалий. И когда я познакомился с Matrix profile - я внутренне возликовал - есть, он есть! Статистика цитирований и The Matrix Profile is now an official primitive in the Matlab Language говорят о многом. Значит можно решать такие задачи просто и понятно: Все значимые всплески в верхней части графика – это аномалии в данных, тоже самое но в нижней части – повторяющиеся значения. И всего один параметр.

Если по простому смотреть на это приложение - это способ работы со сложностью в анализе данных временных рядов. Мы берем и разбиваем сложную многомерную модель какой-либо предметной области на некоторое множество простых сущностей - измерений и смотрим на каждое в отдельности и в их взаимосвязи с другими. Почему так? Мы не можем воспринимать более чем два измерения (3D - это наше восприятие двумерности). И все попытки (они были) делать визуализацию более чем в 2 измерениях, в общем не имели успеха. Ибо это сложно для человека воспринимать множество измерений одноверменно, это когнитивная нагрузка.

Чем лучше Statistica или Past? Это немного другой взгляд на проблему работы с данными временных рядов. Основные принципы были во введении. Ну и решать будет практика - можно ли с помощью приложения получать результат или нет, насколько удобно работать в программе - для этого можно для начала посмотреть визуализации, скринкасты. И даже в текущем виде не все сделано оптимально - особенно развернуто про это написано в разделе Рефакторинг. И вполне возможно может не подойти под ваши задачи - такое тоже бывает.

Интересный проект. Поддерживается ли написание плагина под свой источник данных? И не помешал бы туториал, как настроить ее для извлечения данных, можно на примере еще существующего пресета, как сделать его с нуля и сохранить для повторного использования. А также общее описание, откуда вообще утилита может брать данные и что с ними делать. Быть может где-то это в глубине все и написано, но беглое ознакомление с документацией не дало особого понимания

Благодарю, до плагинов еще не добрались. Можно посмотреть в документации, есть соответствующий раздел в README на английском и русском.

Сбор данных в основном JDBC источников и по HTTP (поддерживаются любые системы которые отдают метрики в формате Prometheus). На данный момент поддерживаемые СУБД: Postgres, Oracle, Microsoft SQL Server и ClickHouse. Можно напрямую ходить в СУБД через подключения и смотреть данные временных рядов по таблицам или представлениям (интерфейс Ad-Hoc).

В настройках по запросу выбираем один из вариантов:

BY_CLIENT_JDBC
BY_SERVER_JDBC
BY_CLIENT_HTTP

  • BY_CLIENT_JDBC, когда мы загружаем данные напрямую из удаленной системы в локальную БД;

  • BY_SERVER_JDBC, когда данные заполняются отдельным процессом на сервере и мы только подгружаем их локально. Метка времени указывается в настройках запроса и отслеживаются последние изменения;

  • BY_CLIENT_HTTP, когда мы загружаем метрики Prometheus напрямую из удаленной системы в локальную БД;

На постгресе можно по такому запросу тестовые данные пособирать и посмотреть как все работает. Указываем режим BY_CLIENT_JDBC.

SELECT current_timestamp as dt
        ,MIN(CASE WHEN rn = 7 THEN floor(random()*(10-1+1))+1 END) as value_histogram
        ,MIN(CASE WHEN rn = 7 THEN floor(random()*(10-1+1))+1 END) as value_enum
        ,MIN(CASE WHEN rn = 7 THEN floor(random()*(10-1+1))+1 END) as value_raw 
  FROM generate_series(1,50) id     -- number of rows
  ,LATERAL( SELECT nr, ROW_NUMBER() OVER (ORDER BY id * random())
             FROM generate_series(1,900) nr
          ) sub(nr, rn)
   GROUP BY id


Можно также загрузить сохраненные запросы для просмотра истории активных сессий по поддерживаемым БД, они есть в Templates, создать профиль и смотреть активность.

На постгрес можно включить синтетическую нагрузку через pgbench:
pgbench -c 10 -j 2 -t 10000000 postgres

Sign up to leave a comment.

Articles