Состоялся (https://www.influxdata.com/influxdb-1-1-released-with-up-to-.../) второй
выпуск СУБД InfluxDB (https://influxdata.com/time-series-platform/influxdb/), развиваемой для хранения, анализа, визуализации и манипулирования данными в формате временного ряда (https://ru.wikipedia.org/wiki/%D0%92%D1%...) (срезы значений параметров через заданные промежутки времени). СУБД может применяться в таких областях, как анализ данных в режиме реального времени, визуализация трендов и истории событий, выявление аномалий, контроль качестве работы сервиса и т.п. Код InfluxDB написан на языке Go и распространяется (https://github.com/influxdata/influxdb) под лицензией MIT.
Новая версия примечательна внесением существенных оптимизаций производителельности. Значительно сокращено число операций распределения памяти, что привело к снижению нагрузки на сборщик мусора и повысило пропускную способность СУБД. Особенно заметно ускорение операций записи, формирования выборок и упаковки данных. Например, производительность выполнения запросов с операциями first() и last() без применения выражения "GROUP BY" увеличилась в среднем на 60%. Заметно возросла пропускная способность при выполнении операций записи, например, в тестовом окружении на базе AWS при стресс-тестировании удалось добиться производительности в 900 тысяч записанных значений в секунду. Полностью переписаны части планировщика запроса, применяемые при использовании регулярных выражений - подобные запросы теперь по возможности выполняются напрямую над индексом, что позволяет заметно ускорить работу запросов, генерируемых такими системами как Grafana.
Переработана работа с наборами данных с разряжёнными элементами - запрос к разряжённому множеству высокой мощности (https://ru.wikipedia.org/wiki/%D0%9C%D0%...), в котором находится большое число эфемерных элементов, теперь не приводит к исчерпанию всей доступной памяти. В новой версии также представлен параметр max-values-per-tag (по умолчанию установлен в 100000), позволяющий ограничить максимальное число значений, привязываемых к одному тегу.
В язык запросов добавлены функции fill(linear) для линейной интерполяции недостающих значений и cumulative_sum() для вычисления последовательности из частичных сумм. Во всех командах SHOW обеспечена поддержка выражения "ON ...". В полях со списком выводимых ключей внутри блока SELECT реализована поддержка регулярных выражений (например, "SELECT /cpu_\d/ FROM cpu" выведет все ключи соответствующие заданной маске).
Встроенный управляющий web-интерфейс переведён в разряд устаревших возможностей и отключен по умолчанию (в данной версии интерфейс может быть возвращён через изменение настроек, но будет удалён в одном из следующих выпусков). В качестве замены рекомендовано использовать Chrongraf (https://www.influxdata.com/time-series-platform/chronograf/) или Grafana (http://grafana.org/).
Особенности InfluxDB:
- Поддержка SQL-подобного языка запросов с богатыми возможностями агрегирования данных;
- Поддержка непрерывно выполняемых запросов (Continuous Query (https://docs.influxdata.com/influxdb/v1.0/query_language/con.../)), автоматически повторно выполняемых через определённые промежутки времени;
- Высокая производительность (сотни тысяч операций записи в секунду) и возможность обработки запросов в режиме реального времени - поступающие данные индексируются и сразу становятся доступны для запросов, время выполнения которых не превышает 100 мс.
- Встроенный HTTP API, позволяющий обращаться к СУБД из web-приложений без дополнительных серверных прослоек;
- Ответ возвращается в формате JSON;
- Для описания структуры хранимых данных не требуется создание специальных схем, новые поля могут создаваться в любое время;
- К сохраняемым данным могут привязываться теги, что позволяет производить гибкие выборки;
- Возможность отправки нескольких запросов в рамках одного обращения к СУБД;
- Поддержка (https://docs.influxdata.com/influxdb/v1.0/query_language/dat...) задания политики устаревания данных, позволяющей определить как долго данные должны храниться;
- Поддержка создания отказоустойчивых и распределённых кластерных конфигураций (дополнение: кластеризация оставлена только в коммерческой редакции InfluxDB Enterprise);
- Простота установки и отсутствие внешних зависимостей.
URL: https://www.influxdata.com/influxdb-1-1-released-with-up-to-.../
Новость: http://www.opennet.dev/opennews/art.shtml?num=45615