Создание потокового приложения с низкой задержкой с помощью Timeplus и Redpanda


Введение

Аналитика в реальном времени и инфраструктура потоковых данных меняют ландшафт цифрового бизнеса. Но эти «суперспособности реального времени» были слишком дорогими и сложными для разработки для большинства предприятий.(1)(2)

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

Что такое Timeplus?

Timeplus — это специально разработанная платформа потоковой аналитики, которая удовлетворяет потребность предприятий в простой в реализации аналитике в реальном времени. Timeplus предоставляет динамическую схему для аналитики в реальном времени, обеспечивая гибкость запросов и обработки данных. Это позволяет предприятиям извлекать значительную ценность из данных до того, как они устареют. Timeplus позволяет пользователям выполнять аналитику в реальном времени:

  • Быстро: Timeplus может достичь 4 миллисекундной сквозной задержки и 10 миллионов + EPS бенчмарк даже на одной товарной машине.
  • Мощно: Пользователи могут быстро анализировать потоковые данные в реальном времени, одновременно подключаясь к историческим данным, и все это с помощью одного SQL-запроса.
  • Интуитивно понятный: Пользователи получают скорость, простоту в использовании и расширенные функции аналитики, как в облаке, так и на границе, и могут быстро действовать с данными одновременно по мере их поступления.

Потоковая аналитика с Redpanda и Timeplus

Redpanda — это удобная для разработчиков платформа потоковых данных, которая сочетает в себе простоту, скорость и надежность в рамках единого доступа к данным в реальном времени и историческим данным. Благодаря совместимости с API Apache Kafka®, Redpanda легко работает с Timeplus, предоставляя платформу для быстрого превращения потоковых данных в реальные полезные сведения. В частности,

Redpanda может выступать в качестве источника восходящего потока для Timeplus, отвечающего за центральный узел потоковых данных для управления всеми потоковыми данными
Redpanda может выступать в качестве нисходящего источника, отвечающего за другой центр данных для управления всеми потоковыми аналитическими результатами.
Timeplus также может напрямую запрашивать темы в Redpanda как хранилище потоковых данных.
Сопряжение Redpanda с Timeplus очень просто! Timeplus может быть настроен на использование Redpanda с помощью одной команды.

CREATE EXTERNAL STREAM car_demo (src String)
SETTINGS type='Redpanda', brokers='redpanda:9099', topic='car_live_data'
Войти в полноэкранный режим Выход из полноэкранного режима

Достижение низкой задержки потоковой аналитики

Apache Kafka — популярная платформа потоковой передачи данных, и использование Apache Kafka в качестве платформы для получения данных из восходящего потока или доставки данных из нисходящего потока кажется простым решением. Чтобы помочь нам лучше определить более производительный выбор для разработчиков, команда Timeplus провела тест для измерения задержки и пропускной способности сквозной аналитики на базе Apache Kafka и Redpanda.

Развертывание теста

Timeplus dataloader — это инструмент тестирования производительности, который мы использовали для проведения такого теста.

На схеме выше показано развертывание теста:

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

CREATE STREAM device_utils
(
    `device` String,
    `region` String,
    `city` String,
    `version` String,
    `lon` Float,
    `lat` Float,
    `battery` Float,
    `humidity` Int,
    `temperature` Int,
    `hydraulic_pressure` Float,
    `atmospheric_pressure` Float,
    `timestamp` DateTime,
)
Вход в полноэкранный режим Выход из полноэкранного режима

Потоковые данные отправляются в Apache Kafka или Redpanda, что имитирует реальный случай, когда пользователю нужен концентратор событий для хранения потоковых данных в реальном времени. Timeplus подписывается на потоковые данные из Apache Kafka или Redpanda и выполняет запросы. Redpanda/ Apache Kafka и Timeplus развернуты на одной выделенной машине для упрощения развертывания.

Одна выделенная машина используется для запуска клиента запросов.

Измерения

Ключевой целью тестирования является измерение сквозной задержки события запроса, которая определяется как t1-t0 (см. схему развертывания), где t0 — время, когда потоковое событие поступает в Redpanda или Kafka, а t1 — время, когда Timeplus выдает результат запроса. Timeplus имеет внутренний метрический сервис, который сохраняет все t0/t1 во время теста и выдает окончательный статистический результат. Латентность — важная метрика для оценки системы реального времени, она показывает, как быстро новые данные обрабатываются механизмом запроса, а не как быстро выполняется сам запрос. Это означает, что когда пользователь получает результат анализа, этот анализ основан на самых последних данных.

Оператор запроса представляет собой запрос на живое событие с условием фильтрации, как показано ниже:

SELECT * from device_utils WHERE temperature > 30
Войти в полноэкранный режим Выйти из полноэкранного режима

Конфигурация

Вот аппаратная конфигурация этих тестовых машин:

Версии программного обеспечения в этом тесте следующие:

  • Redpanda: v21.11.9
  • Apache Kafka: 3.1.0-8
  • Timeplus Cloud: prestage-2022-03-10T13-00-52Z

Сравнение производительности Redpanda и Apache Kafka®

На следующем графике показаны результаты наших тестов на задержку запросов.

Результат тестирования показывает, что Redpanda + Timeplus достигает 6 мс латентности сквозного запроса (P90) с 2,4 миллионами EPS, что в 8 раз быстрее, чем комбинация Apache Kafka + Timeplus.

Мы также отмечаем, что Redpanda работает еще лучше при обработке больших пакетов данных. При увеличении партии данных в тесте, более 3 миллионов EPS, Apache Kafka испытывает все большее обратное давление, наблюдаемая задержка быстро растет, что означает, что потребление недостаточно быстро по сравнению с генерацией данных, в то время как Redpanda продолжает хорошо работать в тех же условиях. (Мы считаем, что в этой ситуации все развертывание Apache Kafka было нестабильным, поэтому мы не зафиксировали результат задержки). Ниже приведены 6 сценариев тестирования пропускной способности и результаты тестирования.

Создание приложений с Timeplus и Redpanda

Ниже представлено короткое видео, демонстрирующее, как легко и мощно Redpanda и Timeplus могут быть объединены для анализа потоковых данных в реальном времени:

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

В этом демо тема car_live_data в Redpanda представляет собой JSON поток, который содержит живой статус каждого автомобиля, включая идентификатор автомобиля, скорость, долготу, широту и т.д.

Вот пример необработанного события потока:

{
   "cid": "c00009",
   "gas_percent": 70.08985916343958,
   "in_use": true,
   "latitude": -19.121572876441853,
   "locked": false,
   "longitude": -0.956986111935774,
   "speed_kmh": 79,
   "time": "2022-03-17 05:09:36.905",
   "total_km": 96.77250639410936
}
Вход в полноэкранный режим Выход из полноэкранного режима

Есть две части этого демо, в первой части Timeplus получает данные от Redpanda, проводит анализ данных и затем передает результаты анализа в Redpanda. Во второй части Timeplus напрямую анализирует необработанные потоковые данные в темах Redpanda, не сохраняя их.

Часть 1: Персистирование данных в Timeplus

Timeplus получает потоковые данные из Redpanda как источник восходящего потока, делает мощный потоковый запрос и отправляет результаты в Redpanda как источник нисходящего потока:

  1. Создание источника восходящего потока и мгновенный сбор потоковых данных из Redpanda в Timeplus
  2. Использование мощного потокового SQL-запроса в Timeplus для упрощения анализа в реальном времени
  3. Создание нисходящего источника и отправка потокового аналитического результата в Redpanda

В этом сценарии базовый запрос на основе окна перелива используется для анализа среднего процента газа и средней скорости для каждого автомобиля в 10-секундном окне.

SELECT window_start,cid,
   avg(gas_percent) AS avg_gas_percent,
   avg(speed_kmh) AS avg_speed
FROM tumble(car_live_data, 10s)
GROUP BY window_start,cid
Вход в полноэкранный режим Выход из полноэкранного режима

Часть 2 : Не сохранять данные в Timeplus

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

В этом сценарии мы сначала используем следующий запрос для создания внешнего потока:

CREATE EXTERNAL STREAM car_demo (src String)
SETTINGS type='Redpanda', brokers='redpanda:9099', topic='car_live_data'
Войти в полноэкранный режим Выйти из полноэкранного режима

А затем, создаем представление для извлечения id автомобиля и скорости из необработанной json полезной нагрузки в теме Redpanda.

CREATE VIEW car_demo_view AS
SELECT json_extract_string(src, 'cid') AS cid ,
   json_extract_float (src, 'speed_kmh') AS speed
FROM car_demo
Войти в полноэкранный режим Выход из полноэкранного режима

Заключение

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

Чтобы начать работу, ознакомьтесь с Redpanda и Timeplus. Эра платформ реального времени наступила!

Ссылки

  • Концепции потоков в Timeplus
  • Документация Redpanda
  • Объяснение сценария использования Timeplus
  • Инструмент тестирования потоков Timeplus

Это сообщение было написано Ганг Тао из Timeplus, и первоначально было опубликовано в блоге Redpanda.

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