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