InfluxDB

InfluxDB — база данных временных рядов (TSDB), разрабатываемая компанией InfluxData. Используется для хранения и извлечения данных временных рядов в таких областях, как мониторинг производственных процессов, метрики приложений, данные датчиков интернета вещей и анализ данных в реальном времени. Также поддерживается обработка данных из Graphite[2].

Актуальная версия InfluxDB серии 3.x написана на языке программирования Rust. Версии 1.x и 2.x были реализованы на Go.

Общие сведения
InfluxDB
Тип база данных временных рядов
Разработчик InfluxData
Написана на Rust
Операционная система кроссплатформенное ПО
Первый выпуск 24 сентября 2013
Последняя версия
Репозиторий github.com/influxdata/in…
Лицензия MIT, проприетарная
Сайт influxdata.com

История

Компания Errplane, поддерживаемая Y Combinator, начала разработку InfluxDB как проекта с открытым исходным кодом в конце 2013 года для задач мониторинга производительности и оповещений[3]. В ноябре 2014 года Errplane получила финансирование серии A в размере 8,1 млн долларов, возглавляемое фондами Mayfield Fund и Trinity Ventures[4]. В конце 2015 года компания сменила название на InfluxData Inc. В сентябре 2016 года InfluxData привлекла финансирование серии B в размере 16 миллионов долларов[5]. В феврале 2018 года InfluxData получила 35 миллионов долларов инвестиций на серии C под руководством Sapphire Ventures[6]. Ещё один раунд на 60 миллионов долларов был объявлен в 2019 году[7]. В феврале 2023 года был закрыт очередной раунд серии E на сумму 81 миллион долларов[8].

Технические особенности

InfluxDB предоставляет язык запросов, похожий на SQL, с встроенными функциями работы с временными данными, позволяя обращаться к структурам данных, включающим измерения, серии и точки. Каждая точка состоит из набора ключ-значение (называемого fieldset) и временной метки. Когда такие точки группируются по заданному набору ключ-значение (tagset), формируется серия. Серии, в свою очередь, объединяются в измерение по строковому идентификатору.

Значения могут быть 64-битными целыми числами, 64-битными числами с плавающей запятой, строками и булевыми значениями. Индексация точек производится по времени и tagset. Для измерений настраиваются политики хранения, определяющие правила агрегирования и удаления данных. Непрерывные запросы выполняются периодически и сохраняют результаты в целевом измерении.

События

Компания InfluxData регулярно организует мероприятия, связанные с InfluxDB, под названием InfluxDays. Это технические конференции, посвящённые развитию InfluxDB в технических и бизнес-аспектах. Обычно они проводятся раз в год в трёх городах: Нью-Йорк, Сан-Франциско и Лондон. На InfluxDays представлены различные темы — от докладов по программной инженерии и разработке до практических и бизнес-ориентированных семинаров. Компании демонстрируют способы применения InfluxDB.

Протокол передачи данных

InfluxDB принимает данные по HTTP, TCP и UDP. Определён строковый протокол передачи данных, совместимый с Graphite, в следующей форме:

measurement(,tag_key=tag_val)* field_key=field_val(,field_key_n=field_value_n)* (nanoseconds-timestamp)?

Лицензирование

Вкладчики InfluxDB обязаны предоставлять компании InfluxData Inc. права лицензирования своих вкладов и остального ПО любым образом, в том числе под закрытой лицензией. Соглашение о лицензировании вкладчика (CLA) заявляет, что не является уступкой авторских прав[9].

Закрытые компоненты для кластеризации

В мае 2016 года компания InfluxData объявила, что компоненты кластеризации InfluxDB будут распространяться только в виде закрытого программного обеспечения для обеспечения устойчивого финансирования развития проекта[10]. Реакция сообщества была неоднозначной, некоторые посчитали это примером политики «bait and switch»(с англ. «приманка и подмена»)[11].

Изменения в открытой части с выходом InfluxDB 3

InfluxDB 3 Core — новое открытое решение от InfluxData, изначально предназначенное как «edge data collector», а не прямой функциональный преемник InfluxDB OSS v1 и v2. InfluxDB 3 Core ограничен пятью базами данных и не включает механизм компакции данных для ускорения исторических запросов. Для замещения функциональности OSS v1 и v2 в коммерческом использовании требуется приобретение лицензии на InfluxDB 3 Enterprise, однако бесплатная версия InfluxDB 3 Enterprise доступна для энтузиастов и домашнего применения.

Примечания