Influxdata спонсировала этот пост.
Данные временных рядов — это информация, собранная через определенные временные интервалы: показания датчиков, производительность сервера или цены на акции. Понимание того, как все меняется со временем, важно для принятия решений на основе этих тенденций. Сбор данных временных рядов помогает командам отслеживать, прогнозировать и быстро реагировать на события. Но эти действия наиболее ценны, когда они действуют в режиме реального времени.
Данные в реальном времени питают системы, от которых мы зависим: от промышленных датчиков до платформ SaaS. Но чем больше данных мы собираем, тем труднее становится организовать, анализировать и действовать на них достаточно быстро, чтобы иметь значительное значение.
Представьте себе, что логистическая компания отслеживает температуру на тысячах охлажденных грузовиков. Датчики генерируют постоянные данные, но предупреждают только после переработки партии — на несколько часов слишком поздно. Следуют испорченные инвентаризации, нормативные риски и пропущенные поставки.
Данные есть, но устаревшие системы недостаточно быстрые или гибкие, чтобы не отставать.
Наследие разрыв
Инструменты временных рядов, такие как Kapacitor и Flux, сыграли ключевую роль в закрытии ранних пробелов в обработке. Kapacitor поддерживает оповещение в реальном времени и обработку потока, в то время как задачи потока обеспечивают мощные, настраиваемые преобразования. По мере того, как наборы данных росли по размеру и объему, а системы стали более сложными, эти инструменты нуждались в обновлении. Командам нужен был способ упростить обработку, сократить задержку и не отставать от растущих требований, не добавляя больше движущихся частей.
Двигатель обработки Python
В ответ на огромный объем данных временных рядов, InfluxData представила встроенный механизм обработки в ядра InfluxDB 3 и предприятия, который запускает код Python непосредственно внутри базы данных. Этот двигатель позволяет разработчикам обрабатывать, анализировать и действовать в отношении данных временных рядов, не полагаясь на внешние инструменты или услуги.
Вместо того, чтобы отправлять данные в другую систему для обработки, разработчики могут оставаться в базе данных для обнаружения аномалий, обогащения записей с внешним контекстом или генерировать регулярные отчеты. Раннее использование включает в себя:
- Команда логистики добавляет данные о погоде к сигналам GPS от грузовиков доставки, повышая безопасность и точность.
- Аналитик устанавливает еженедельный отчет о моделях трафика клиентов, который автоматически разделен через Slack.
- Инженер DevOps наблюдает за внезапными изменениями в системных показателях и посылает оповещения при пересечении порогов.
Эти виды задач когда -то требовали несколько инструментов и сложных рабочих процессов. Теперь они могут быть обработаны в базе данных, используя знакомые библиотеки Python, такие как Pandas и Plotly.
Почему Python?
Python прост в изучении и широко используется для анализа данных и автоматизации. Большинство команд уже знают это, и это хорошо работает с целым рядом инструментов, включая облачные сервисы и модели искусственного интеллекта.
Поддержка Python внутри базы данных дает разработчикам знакомый способ создания более умных рабочих процессов. А поскольку код работает там, где живут данные, предприятия получают более быстрые результаты с меньшими усилиями.
Еще лучше, крупные языковые модели (LLMS) облегчают написание и настройку этого кода. С помощью нескольких подсказок пользователи могут сценарии каркасов, которые работают в базе данных, не создавая все с нуля.
Результат? Более быстрая разработка, меньше движущихся частей и больше времени, потраченного на решение проблем, а не сшивать системы вместе.
Под капотом: плагины и триггеры
Двигатель обработки InfluxDB работает на плагинах и триггерах.
- Плагины: Пользовательские сценарии Python могут получить доступ к всему диапазону библиотек Python для чтения, преобразования и записи данных временных рядов. Каждый плагин определяет, что вы хотите делать со своими данными.
- Триггеры: Это предопределенные события, которые сообщают системе, когда запустить сценарий Python. Есть три типа:
- Wal Flush: Проходит каждый раз, когда журнал с надписью промывается, как правило, один раз в секунду. Лучше всего для преобразований в реальном времени, когда входят данные.
- Запланированные задачи: Запускается по определенному графику с помощью синтаксиса Cron. Идеально подходит для ежедневных отчетов, очистки данных или агрегаций на основе времени.
- По запросу: Выполняется, когда запрос GET или POST выполняется в пользовательскую конечную точку в Under/API/V3/Engine. Это отлично подходит для единовременных заданий или действий, инициированных пользователем.
Эта архитектура обеспечивает чистую, масштабируемую автоматизацию, которая подключается к существующим рабочим процессам — никаких дополнительных услуг или внешних систем не требуется.
Быстрая настройка, гибкое выполнение
Начало работы с двигателем обработки просты, и полное руководство доступно в документации. Вы можете бесплатно скачать PlupuxDB 3 Core или Enterprise здесь.
Чтобы начать, при запуске вашего экземпляра укажите каталог плагинов, используя флаг-pplugin-dir. Это говорит системе, где найти ваши сценарии на питоне.
Вы можете использовать примеры сценариев, представленных в репозитории GitHub, или написать свои собственные с нуля. По мере развития большего количества плагинов это станет растущей экосистемой многократных инструментов обработки.
После запуска плагины могут быть настроены с помощью динамических аргументов-пороговых значений, фильтров, учетных данных и многого другого-так что вы можете настраивать поведение без редактирования или повторного развертывания кода.
Все сценарии Python взаимодействуют с общим API, который упрощает, как вы запрашиваете, преобразуете и пишете данные временных рядов. Все выполняется внутри базы данных, сводя к минимуму отставание и сложность.
Хотите обогатить входящие данные? Засыпание исторических записей? Запустить пользовательские оповещения? Все возможно с несколькими линиями питона.
Написание и запрос данных
Скажем, вы компания по возобновляемой энергии, отслеживая скорость ветра от датчиков на удаленных турбинах. Вы не можете ждать, чтобы отреагировать. Вам необходимо очистить, маркировать и записать эти данные обратно для анализа и оповещений. LineBuilder делает работу за вас. Он берет очищенные данные, завершает их в протокол линии и отправляет их прямо в базу данных — быстрый и чистый, без дополнительных шагов.
line = linebuilder («погода») .tag («location», «us-midwest») .float64_field («wind_speed», 22,5) .time_ns (16276800000000000) plupuxdb3_local.write (line) 12345 line = linebuilder («Weather»). .float64_field («wind_speed», 22.5) .time_ns (16276800000000000) plupuxdb3_local.write (line)
Этот фрагмент создает новое измерение, называемое погодой, помечает его местоположением и регистрирует значение wind_speed в определенное время. Функция записи передает эти данные в базу данных.
Иногда. Вам нужны данные из прошлого. Вы можете использовать функцию запроса для извлечения исторических данных непосредственно из вашего плагина. Поскольку эти запросы часто являются аналитическими, столбчатый двигатель хранения в InfluxDB помогает им эффективно работать, быстро сканируя и фильтруя большие диапазоны времени. Это обеспечивает быстрое обработку двигателя, даже с тяжелыми нагрузками данных.
Результаты = plupuxdb3_local.query («SELECT WIND_SPEED из погоды, где время> now () — интервал ’10 минут ‘») # Войдите в систему результаты «Информация» для ряда в результатах: plupuxdb3_local.info (f ». Минут ‘»)# Войдите результаты« Информация »для строки в результатах: plupuxdb3_local.info (f».
Это получает все показания скорости ветра за последние 10 минут и регистрирует их для дальнейшей обработки. Вы можете отфильтровать аномалии, рассчитать средние значения или флаг необычных тенденций.
Данные журнала
Двигатель обработки включает в себя встроенные функции ведения журнала (Info, Warn и ошибка) для отслеживания того, что происходит при запуске вашего кода.
Influxdb3_local.info («Скорость ветра normal») upluxdb3_local.warn («Потенциальная проблема, обнаруженная в данных о погоде») plupuxdb3_local.Error («Критическая неудача: неизвестная проблема датчика») 123 plupuxdb3_local.info («Скорость ветра нормальная»). Данные «) upluxdb3_local.error (» Критическое сбой: неизвестная проблема датчика «)
Эти журналы сохраняются в системных таблицах и журналах серверов, что дает командам долгосрочную видимость в поведении системы и производительности сценариев.
Преобразование данных
А поскольку каждый сценарий принимает аргументы, вы можете сохранить динамичную ситуацию. Хотите обновить порог без переписывания кода? Просто настройте конфигурацию:
def process_writes (plupuxdb3_local, table_batches, args = none): threshold = float (args[«wind_threshold»]) для Table_Batch в Table_Batches: для строки в Table_Batch[«rows»]: wind_speed = row.get («wind_speed»), если wind_speed> threshold: plupuxdb3_local.warn (f «обнаружена высокая скорость ветра: {wind_speed} миль в час в {строке[‘time’]} «) 1234567 def process_writes (plupuxdb3_local, table_batches, args = none): threshold = float (args[«wind_threshold»]) для Table_Batch в Table_Batches: для строки в Table_Batch[«rows»]: wind_speed = row.get («wind_speed»), если wind_speed> threshold: plupuxdb3_local.warn (f «обнаружена высокая скорость ветра: {wind_speed} миль в час в {строке[‘time’]} «)
Хотите изменить порог на 50 миль в час для входящего шторма? Просто обновите Wind_Threshold в вашей конфигурации. Нет необходимости изменять или передать сценарий. Этот уровень контроля помогает командам оставаться гибкими, независимо от того, реагируют на погоду, скачок трафика или критические деловые мероприятия.
Почему это важно
InfluxDB 3 Core и Enterprise обеспечивают быструю обработку и гибкий контроль со своим встроенным двигателем обработки Python.
Внедрение Python непосредственно в высокопроизводительную столбчатую базу данных Удаляет необходимость во внешних трубопроводах или добавленной инфраструктуре. Вы можете запустить пользовательскую логику, создавать оповещения, генерировать отчеты и автоматизировать решения — все, где данные уже живут.
Это означает, что предприятия могут быстрее отправлять понимание, упростить свой стек и реагировать на события в режиме реального времени. Независимо от того, генерирует ли он еженедельный отчет или обнаружение отключения перед уведомлением клиентов, команды могут перейти от данных к действию без задержек.
Начните
Двигатель обработки в настоящее время обычно доступен в PlupuxDB 3 Core и Enterprise. Вы можете установить его изначально или запустить через Docker. Загрузите Influxdb Core или Enterprise бесплатно сейчас. Начните строить, используя образец плагина или создайте пользовательскую логику, чтобы соответствовать вашим потребностям.
Узнайте больше с документацией InfluxData. Связаться с другими разработчиками в Discord Influxdata.
InfluxData является создателем PlupuxDB, ведущей платформы временных рядов, используемой для сбора, хранения и анализа данных всех временных рядов в любом масштабе. Разработчики могут запрашивать и анализировать свои данные, отмеченные временем в режиме реального времени, чтобы открыть, интерпретировать и обмениваться новыми идеями, чтобы получить конкурентное преимущество. Узнайте больше новейших из InfluxData Trending Stories YouTube.com/ThenewStack Tech движется быстро, не пропустите эпизод. Подпишитесь на наш канал YouTube, чтобы транслировать все наши подкасты, интервью, демонстрации и многое другое. Группа подпишитесь с эскизом. Allyson Boate является техническим писателем в InfluxData, где она создает четкий, привлеченный контент, который помогает пользователям открывать, понимать и получать больше ценности из базы данных временных рядов InfluxDB. С опытом работы в области маркетинга B2B, письма UX и дизайна продукта, она … Подробнее от Allyson Boate