InfluxDB — объяснение, преимущества и первые шаги

Датчики, собирающие данные научных или промышленных измерений, генерируют большие объемы данных за короткий промежуток времени. Эти данные необходимо обрабатывать вместе с временной меткой измерения. Для таких данных временных рядов требуются специальные базы данных. Эта статья посвящена InfluxDB, системе управления базами данных (СУБД), специально разработанной для этой задачи.

Что такое InfluxDB?

InfluxDB — это система управления базами данных, разработанная компанией InfluxData, Inc. InfluxDB имеет открытый исходный код и может использоваться бесплатно. Версия InfluxDB Enterprise предлагает соглашения о техническом обслуживании и особый контроль доступа для бизнес-клиентов и устанавливается на сервер в корпоративной сети. Кроме того, новая версия InfluxDB 2.0 работает как настраиваемый облачный сервис с веб-интерфейсом для ввода и визуализации данных.

Система управления базами данных InfluxDB написана на языке программирования Go, также известном как Golang. Первая версия InfluxDB использовала InfluxQL, язык запросов, разработанный InfluxData, для внешних запросов к базе данных.

InfluxDB 2.0 написана на новом языке под названием Flux, который InfluxData публикует на GitHub как проект с открытым исходным кодом. Проект обновляется на GitHub разработчиками, работающими с данными временных рядов. Flux — это отдельный язык для баз данных временных рядов (TSDB). Он может использоваться с InfluxDB версии 1.7 и выше, как самостоятельно, так и со сторонними базами данных.

Flux оптимизирован для процессов ETL (извлечение, преобразование, загрузка) в базах данных и не совместим с ранее используемым языком запросов InfluxQL. Однако InfluxData планирует для существующих клиентов путь миграции для перевода кода InfluxQL на Flux.

Синтаксис Flux основан на популярном языке JavaScript. Он прост в изучении и может быть расширен. Ключевой особенностью Flux является то, что он может интегрировать различные источники данных, например, с помощью сторонних API. В результате Flux совместим с такими аналитическими инструментами, как Jupyter. Интерфейс обмена данными Apache Arrow обеспечивает связь с другими системами и интеграцию в среды больших данных.

Когда используется InfluxDB?

InfluxDB идеально подходит для баз данных временных рядов (TSDB), в которых хранятся временные ряды. Такие базы данных используются, в частности, для хранения и анализа данных датчиков или протоколов с временными метками за определенный период времени. Например, устройства Интернета вещей или научные измерительные приборы поставляют миллионы входящих наборов данных в постоянном потоке данных.

Эти данные необходимо быстро обрабатывать, как только они попадают в базу данных. По этой причине InfluxDB включает встроенную службу времени, которая использует сетевой протокол времени (NTP) для обеспечения синхронизации времени между всеми системами.

В InfluxDB база данных может быть очень компактной и должна содержать всего два или три столбца. В этом примере в базе данных хранятся источник данных, фактическое значение и соответствующая отметка времени.

Датчик Значение Время
Датчик 1 140.50 04/23/2020 @ 10:00
Датчик 2 110.02 04/23/2020 @ 10:00
Датчик 1 142.32 04/23/2020 @ 10:05
Датчик 2 110.50 04/23/2020 @ 10:05 УТРА

InfluxDB различает колонки тегов и полей. Если тег — это просто метаданные, которые включаются в индекс, то поля содержат значения, которые можно анализировать. В нашем примере первый столбец — это тег, а второй — поле. Такое разделение облегчает управление базой данных и анализ данных измерений.

Каковы преимущества InfluxDB?

По сравнению с обычными реляционными базами данных, TSDB, такие как InfluxDB, имеют явные преимущества в скорости, когда речь идет о хранении и обработке данных измерений с временными метками. Традиционная СУБД замедляется при организации сложных индексов, которые в данной области применения вообще не используются. InfluxDB может поддерживать высокую скорость записи в течение длительного периода времени, поскольку использует очень простой индекс.

В отличие от версии 1.x, новая InfluxDB Cloud 2.0 от InfluxData — это облачное решение, которое может работать на Amazon Web Services (AWS), Google Cloud Platform (GCP) или Microsoft Azure. При использовании бессерверных вычислений вам не нужна собственная серверная инфраструктура. В облачной версии вам больше не нужно резервировать отдельные серверы. Вместо этого система автоматически подстраивается под нагрузку, что важно для промышленных IoT-приложений и машинного обучения, где объем данных может меняться мгновенно.

Если первая версия требовала наличия стека TICK (Telegraf, InfluxDB, Chronograf и Kapacitor), то в InfluxDB 2.0 уже есть все необходимое. И локальная, и облачная версии содержат всю систему управления базой данных в одном программном файле, доступном в настоящее время для 64-битного Linux, Linux для процессоров ARM, macOS, а также в виде контейнера docker. Для сбора данных для InfluxDB 2.0 по-прежнему можно использовать Telegraf и т.д.

Первые шаги в InfluxDB

InfluxDB предлагает бесплатный доступ к InfluxDB Cloud 2.0 для всех, кто начинает работать с этим решением. Этот план позволяет опробовать базу данных и всю размещенную многопользовательскую платформу данных для работы с временными рядами. InfluxDB Cloud 2.0 также содержит модули для сбора, оценки и визуализации хранимых данных.

Бесплатная версия предлагает ограниченные скорости чтения и записи данных, до 10 000 наборов данных и максимальный срок хранения 30 дней. Этих ограничений обычно достаточно для хобби-проектов, в этом случае бесплатной версии будет вполне достаточно. Бесплатный план впоследствии можно перейти на платный, основанный на использовании, без потери данных.

Чтобы начать работу, создайте бесплатную учетную запись пользователя на странице регистрации InfluxDB Cloud 2.0. Затем нажмите на ссылку проверки в электронном письме.

После проверки учетной записи пользователя войдите в систему и выберите поставщика облачных услуг. В Европе InfluxDB Cloud 2.0 в настоящее время доступен только через Amazon Web Services (AWS). Однако это не является проблемой, если вы используете бесплатную версию. Если вы уже используете Amazon Web Services или Google Cloud Platform (GCP), вы можете подписаться на облачные продукты InfluxDB через торговые площадки этих облачных провайдеров.

После входа в систему InfluxDB отображает вашу персональную приборную панель, где собираются и визуализируются ваши данные. Данные можно собирать с помощью плагинов Telegraf, API InfluxDB v2, интерфейса командной строки Influx (CLI) или непосредственно через пользовательский интерфейс InfluxDB. Также доступны клиентские библиотеки для различных популярных языков программирования.

Вы можете создавать конфигурации Telegraf в интерактивном режиме или копировать существующие конфигурации для отправки данных в экземпляр InfluxDB Cloud 2.0. После настройки облака InfluxDB для сбора данных можно создавать персональные информационные панели для запросов и отображения данных.

В проводнике данных InfluxDB можно исследовать и визуализировать собранные данные. Вы можете настроить временные интервалы и диапазоны обновления данных на приборной панели в соответствии с потребностями вашего проекта. Пользовательский интерфейс InfluxDB предоставляет множество привлекательных вариантов визуализации. Веб-интерфейс позволяет плавно перемещаться между Flux Builder и ручным редактированием запросов к базе данных.

На странице «Использование» вы можете в любой момент просмотреть текущее использование базы данных, чтобы определить, стоит ли переходить на платный тарифный план.

Наиболее важные новые возможности InfluxDB Cloud 2.0 с первого взгляда

Бесплатный план (с ограничениями): Не требуется загрузка, установка и собственная серверная инфраструктура; самое быстрое знакомство с технологией InfluxDB 2.0; бесплатный план предназначен для начала работы с InfluxDB и для небольших хобби-проектов.

Поддержка Flux: Flux — это отдельный язык сценариев и запросов для баз данных временных рядов, который повышает производительность за счет простого повторного использования кода. Flux был разработан и оптимизирован для работы с данными в InfluxDB 2.0, но его можно использовать и с другими источниками данных.

Унифицированный API: Унифицированный API InfluxDB v2 предоставляет доступ ко всем компонентам InfluxDB, таким как ввод данных, запросы, хранение и визуализация. Это обеспечивает беспрепятственное перемещение между установленной версией с открытым исходным кодом и версией InfluxDB Cloud 2.0.

Визуализация и информационные панели: Основанный на инновационном проекте Chronograf из первой версии InfluxDB, новый пользовательский интерфейс предлагает значительно более быстрые результаты при визуализации и запросах данных в режиме реального времени.

Ценовые планы на основе использования: Биллинг на основе использования обеспечивает большую гибкость по сравнению с самостоятельным размещением системы баз данных и гарантирует, что вы платите только за то, что действительно используете.

Оцените статью
cdelat.ru
Добавить комментарий