Перейти к основному содержимому
Перейти к основному содержимому

Интеграция EMQX с ClickHouse

Подключение EMQX

EMQX — это open source MQTT брокер с высокопроизводительным движком обработки сообщений в реальном времени, который обеспечивает потоковое событие для IoT устройств в огромных масштабах. Как самый масштабируемый MQTT брокер, EMQX может помочь вам подключить любое устройство, в любом масштабе. Перемещайте и обрабатывайте свои IoT данные везде.

EMQX Cloud — это промежуточное ПО для MQTT сообщений для области IoT, размещенное EMQ. Будучи первым в мире полностью управляемым облачным сервисом сообщений MQTT 5.0, EMQX Cloud предоставляет единый центр O&M совместного размещения и уникальную изолированную среду для служб сообщений MQTT. В эпоху Интернета Всего, EMQX Cloud может помочь вам быстро создать отраслевые приложения для области IoT и легко собирать, передавать, вычислять и сохранять данные IoT.

С инфраструктурой, предоставленной облачными провайдерами, EMQX Cloud обслуживает десятки стран и регионов по всему миру, предлагая недорогие, безопасные и надежные облачные услуги для приложений 5G и Интернета Всего.

Архитектура EMQX Cloud

Предпосылки

  • Вы знакомы с MQTT протоколом, который разработан как исключительно легкий протокол транспортировки сообщений publish/subscribe.
  • Вы используете EMQX или EMQX Cloud для обработки сообщений в реальном времени, которая обеспечивает потоковое событие для IoT устройств в огромных масштабах.
  • Вы подготовили экземпляр Clickhouse Cloud для хранения данных устройства.
  • Мы используем MQTT X в качестве инструмента тестирования клиента MQTT для подключения к развертыванию EMQX Cloud для публикации данных MQTT. Или другие методы подключения к MQTT брокеру также подойдут.

Получите службу ClickHouse Cloud

Во время этой настройки мы развернули экземпляр ClickHouse на AWS в N. Virginia (us-east -1), в то время как экземпляр EMQX Cloud также был развернут в том же регионе.

Развертывание службы ClickHouse Cloud

Во время процесса настройки вам также нужно будет обратить внимание на настройки подключения. В этом руководстве мы выбираем "Везде", но если вы подаете заявку на конкретное местоположение, вам нужно будет добавить IP-адрес NAT-шлюза, который вы получили от развертывания EMQX Cloud в белый список.

Настройки подключения ClickHouse Cloud

Затем вам нужно сохранить ваше имя пользователя и пароль для будущего использования.

Учетные данные ClickHouse Cloud

После этого вы получите работающий экземпляр Click house. Нажмите "Подключиться", чтобы получить адрес подключения экземпляра Clickhouse Cloud.

Запускае�мый экземпляр ClickHouse Cloud

Нажмите "Подключиться к SQL Консоли", чтобы создать базу данных и таблицу для интеграции с EMQX Cloud.

SQL Консоль ClickHouse Cloud

Вы можете обратиться к следующему SQL запросу или изменить SQL в зависимости от актуальной ситуации.

Создание базы данных и таблицы ClickHouse Cloud

Создание MQTT службы на EMQX Cloud

Создать специальный MQTT брокер на EMQX Cloud так же просто, как сделать несколько щелчков мышью.

Получите учетную запись

EMQX Cloud предоставляет 14-дневную бесплатную пробную версию как для стандартного развертывания, так и для профессионального развертывания для каждой учетной записи.

Начните с страницы регистрации EMQX Cloud и нажмите "Начать бесплатно", чтобы зарегистрировать учетную запись, если вы новичок в EMQX Cloud.

Страница регистрации EMQX Cloud

Создание MQTT кластера

После входа в систему нажмите на "Облачная консоль" в меню учетной записи, и вы сможете увидеть зеленую кнопку для создания нового развертывания.

Создание развертывания EMQX Cloud Шаг 1

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

Выберите Pro версию и выберите регион N.Virginia, затем нажмите Создать сейчас. Всего через несколько минут вы получите полностью управляемый MQTT брокер:

Создание развертывания EMQX Cloud Шаг 2

Теперь нажмите на панель, чтобы перейти к представлению кластера. На этой панели вы увидите обзор вашего MQTT брокера.

Обзорная панель EMQX Cloud

Добавить клиентские учетные данные

EMQX Cloud по умолчанию не позволяет анонимные соединения, поэтому вам нужно добавить клиентские учетные данные, чтобы вы могли использовать инструмент клиента MQTT для отправки данных в этот брокер.

Нажмите 'Аутентификация и ACL' в левом меню и нажмите 'Аутентификация' в подменю. Нажмите кнопку 'Добавить' справа и укажите имя пользователя и пароль для подключения MQTT позже. Здесь мы будем использовать emqx и xxxxxx в качестве имени пользователя и пароля.

Настройка аутентификации EMQX Cloud

Нажмите 'Подтвердить', и теперь у нас есть полностью управляемый MQTT брокер, готовый к работе.

Включить NAT шлюз

Прежде чем мы сможем начать настраивать интеграцию ClickHouse, необходимо сначала включить NAT шлюз. По умолчанию MQTT брокер развернут в частной VPC, которая не может отправлять данные в сторонние системы через общую сеть.

Вернитесь на страницу обзора и прокрутите вниз до самого низа страницы, где вы увидите виджет NAT шлюза. Нажмите кнопку Подписаться и следуйте инструкциям. Обратите внимание, что NAT Gateway является дополнительной службой, но также предлагает 14-дневную бесплатную пробную версию.

Настройка NAT шлюза EMQX Cloud

После того, как он будет создан, вы найдете публичный IP-адрес в виджете. Пожалуйста, обратите внимание, что если вы выбрали "Подключаться из конкретного местоположения" во время настройки ClickHouse Cloud, вам нужно будет добавить этот IP-адрес в белый список.

Интеграция EMQX Cloud с ClickHouse Cloud

Интеграции данных EMQX Cloud используются для настройки правил обработки и реагирования на потоки сообщений EMQX и события устройств. Интеграции данных не только предоставляют четкое и гибкое решение "конфигурируемой" архитектуры, но также упрощают процесс разработки, улучшают удобство использования и уменьшают степень связывания между бизнес-системой и EMQX Cloud. Она также предоставляет превосходную инфраструктуру для настройки собственных возможностей EMQX Cloud.

Опции интеграции данных EMQX Cloud

EMQX Cloud предлагает более 30 нативных интеграций с популярными системами данных. ClickHouse является одной из них.

Интеграция данных EMQX Cloud ClickHouse

Создать ресурс ClickHouse

Нажмите "Интеграции данных" в левом меню и нажмите "Посмотреть все ресурсы". Вы найдете ClickHouse в разделе Устойчивость данных или можете поискать ClickHouse.

Нажмите на карточку ClickHouse, чтобы создать новый ресурс.

  • Примечание: добавьте примечание для этого ресурса.
  • Адрес сервера: это адрес вашей службы ClickHouse Cloud, не забудьте порт.
  • Имя базы данных: emqx, которую мы создали на предыдущих шагах.
  • Пользователь: имя пользователя для подключения к вашей службе ClickHouse Cloud.
  • Ключ: пароль для подключения.
Настройка ресурса ClickHouse EMQX Cloud

Создать новое правило

Во время создания ресурса вы увидите всплывающее окно, и нажатие 'Новое' приведет вас на страницу создания правила.

EMQX предоставляет мощный движок правил, который может преобразовывать и обогащать необработанное MQTT сообщение перед отправкой его в сторонние системы.

Вот правило, используемое в этом руководстве:

Это правило будет читать сообщения из темы temp_hum/emqx и обогащать JSON объект, добавляя информацию о client_id, topic и timestamp.

Таким образом, необработанный JSON, который вы отправляете в тему:

Создание правила интеграции данных EMQX Cloud Шаг 1

Вы можете использовать SQL тест для проверки и просмотра результатов.

Создание правила интеграции данных EMQX Cloud Шаг 2

Теперь нажмите кнопку "ДАЛЕЕ". Этот шаг предназначен для того, чтобы сообщить EMQX Cloud, как вставлять очищенные данные в вашу базу данных ClickHouse.

Добавить действие отклика

Если у вас только один ресурс, вам не нужно модифицировать 'Ресурс' и 'Тип действия'. Вам нужно только задать SQL шаблон. Вот пример, используемый в этом руководстве:

Настройка действия интеграции данных EMQX Cloud

Это шаблон для вставки данных в Clickhouse, вы можете видеть, что здесь используются переменные.

Просмотреть детали правил

Нажмите "Подтвердить" и "Просмотреть детали". Теперь все должно быть установлено правильно. Вы можете увидеть работу интеграции данных на странице деталей правила.

Детали правила интеграции данных EMQX Cloud

Все MQTT сообщения, отправленные в тему temp_hum/emqx, будут сохранены в вашу базу данных ClickHouse Cloud.

Сохранение данных в ClickHouse

Мы будем имитировать данные о температуре и влажности и сообщать эти данные EMQX Cloud через MQTT X, а затем использовать интеграции данных EMQX Cloud, чтобы сохранить данные в ClickHouse Cloud.

Рабочий процесс EMQX Cloud к ClickHouse

Публикация сообщений MQTT в EMQX Cloud

Вы можете использовать любой MQTT клиент или SDK для публикации сообщения. В этом руководстве мы будем использовать MQTT X, приложение клиента MQTT, предоставляемое EMQ.

Обзор MQTTX

Нажмите "Новое соединение" на MQTTX и заполните форму подключения:

  • Имя: название соединения. Вы можете использовать любое имя, которое захотите.
  • Хост: адрес подключения к MQTT брокеру. Вы можете получить его на странице обзора EMQX Cloud.
  • Порт: порт подключения к MQTT брокеру. Вы можете получить его на странице обзора EMQX Cloud.
  • Имя пользователя/Пароль: используйте учетные данные, созданные ранее, которые должны быть emqx и xxxxxx в этом руководстве.
Настройка нового соединения MQTTX

Нажмите кнопку "Подключиться" в правом верхнем углу, и соединение должно быть установлено.

Теперь вы можете отправлять сообщения в MQTT брокер, используя этот инструмент. Входные данные:

  1. Установите формат полезной нагрузки на "JSON".
  2. Установите тему: temp_hum/emqx (тема, которую мы только что задали в правиле)
  3. JSON тело:

Нажмите кнопку отправки справа. Вы можете изменить значение температуры и отправить больше данных в MQTT брокер.

Данные, отправленные в EMQX Cloud, должны обрабатываться движком правил и автоматически вставляться в ClickHouse Cloud.

Публикация сообщений MQTTX

Просмотр мониторинга правил

Проверьте мониторинг правил и добавьте к количеству успехов.

Мониторинг правил EMQX Cloud

Проверьте сохраненные данные

Теперь самое время взглянуть на данные в ClickHouse Cloud. В идеале данные, которые вы отправляете с помощью MQTTX, должны попасть в EMQX Cloud и сохраниться в базе данных ClickHouse Cloud с помощью нативной интеграции данных.

Вы можете подключиться к SQL консоли на панели ClickHouse Cloud или использовать любой клиентский инструмент, чтобы извлечь данные из вашего ClickHouse. В этом руководстве мы использовали SQL консоль. Выполнив SQL:

Результаты запроса ClickHouse

Резюме

Вы не написали ни единой строки кода и теперь смогли переместить данные MQTT из EMQX Cloud в ClickHouse Cloud. С EMQX Cloud и ClickHouse Cloud вам не нужно управлять инфраструктурой, и вы можете сосредоточиться на написании ваших IoT приложений с данными, надежно хранящимися в ClickHouse Cloud.