Skip to main content

Connexion à EMQX

EMQX est un broker MQTT open source doté d’un moteur de traitement des messages en temps réel hautes performances, qui alimente le streaming d’événements pour les appareils IoT à très grande échelle. En tant que broker MQTT le plus évolutif, EMQX peut vous aider à connecter n’importe quel appareil, quelle que soit l’échelle. Déplacez et traitez vos données IoT où vous voulez. EMQX Cloud est un produit de middleware de messagerie MQTT pour le domaine de l’IoT, hébergé par EMQ. En tant que premier service mondial de messagerie cloud MQTT 5.0 entièrement géré, EMQX Cloud fournit une solution centralisée d’exploitation et de maintenance ainsi qu’un environnement isolé unique pour les services de messagerie MQTT. À l’ère de l’Internet of Everything, EMQX Cloud peut vous aider à créer rapidement des applications métier pour le domaine de l’IoT et à collecter, transmettre, traiter et stocker facilement les données IoT. Grâce à l’infrastructure fournie par les fournisseurs de cloud, EMQX Cloud est déployé dans des dizaines de pays et de régions à travers le monde, et fournit des services cloud économiques, sécurisés et fiables pour les applications 5G et l’Internet of Everything.

Prérequis

  • Vous connaissez le protocole MQTT, conçu comme un protocole de transport de messagerie publication/abonnement extrêmement léger.
  • Vous utilisez EMQX ou EMQX Cloud comme moteur de traitement des messages en temps réel, pour le streaming d’événements d’appareils IoT à très grande échelle.
  • Vous avez préparé une instance ClickHouse Cloud pour stocker les données des appareils.
  • Nous utilisons MQTT X comme outil de test client MQTT pour se connecter au déploiement d’EMQX Cloud et publier des données MQTT. D’autres méthodes de connexion au broker MQTT conviennent également.

Obtenez votre service ClickHouse Cloud

Au cours de cette configuration, nous avons déployé l’instance ClickHouse sur AWS en N. Virginia (us-east -1), tandis qu’une instance EMQX Cloud a également été déployée dans la même région. Pendant le processus de configuration, vous devrez également prêter attention aux paramètres de connexion. Dans ce tutoriel, nous choisissons “Anywhere”, mais si vous optez pour un lieu spécifique, vous devrez ajouter à la liste blanche l’adresse IP de la passerelle NAT obtenue lors de votre déploiement EMQX Cloud. Ensuite, vous devez enregistrer votre nom d’utilisateur et votre mot de passe pour une utilisation ultérieure. Après cela, vous obtiendrez une instance ClickHouse en cours d’exécution. Cliquez sur “Connect” pour obtenir l’adresse de connexion de l’instance ClickHouse Cloud. Cliquez sur “Connect to SQL Console” pour créer la base de données et la table pour l’intégration avec EMQX Cloud. Vous pouvez vous référer à l’instruction SQL suivante, ou la modifier en fonction de votre situation.

Créer un service MQTT sur EMQX Cloud

La création d’un MQTT broker dédié sur EMQX Cloud ne demande que quelques clics.

Créer un compte

EMQX Cloud offre un essai gratuit de 14 jours pour les déploiements standard et professionnels, pour chaque compte. Rendez-vous sur la page d’inscription à EMQX Cloud et cliquez sur « Start Free » pour créer un compte si vous débutez avec EMQX Cloud.

Créer un cluster MQTT

Une fois connecté, cliquez sur « Cloud Console » dans le menu du compte ; le bouton vert permettant de créer un nouveau déploiement s’affichera alors. Dans ce tutoriel, nous utiliserons le déploiement Professional, car seule la version Pro offre la fonctionnalité d’intégration de données, qui permet d’envoyer directement les données MQTT vers ClickHouse sans écrire une seule ligne de code. Sélectionnez la version Pro, choisissez la région N.Virginial, puis cliquez sur Create Now. En quelques minutes, vous disposerez d’un broker MQTT entièrement géré : Cliquez ensuite sur le panneau pour accéder à la vue du cluster. Sur ce tableau de bord, vous verrez un aperçu de votre broker MQTT.

Ajouter des identifiants client

EMQX Cloud n’autorise pas les connexions anonymes par défaut. Vous devez donc ajouter des identifiants client afin de pouvoir utiliser l’outil client MQTT pour envoyer des données à ce broker. Cliquez sur « Authentication & ACL » dans le menu de gauche, puis sur « Authentication » dans le sous-menu. Cliquez sur le bouton « Add » à droite, puis définissez un nom d’utilisateur et un mot de passe pour la connexion MQTT que vous utiliserez ensuite. Ici, nous utiliserons emqx comme nom d’utilisateur et xxxxxx comme mot de passe. Cliquez sur « Confirm » : votre broker MQTT entièrement géré est maintenant prêt.

Activer la passerelle NAT

Avant de pouvoir commencer à configurer l’intégration ClickHouse, nous devons d’abord activer la passerelle NAT. Par défaut, le MQTT broker est déployé dans un VPC privé, qui ne peut pas envoyer de données vers des systèmes tiers via le réseau public. Retournez sur la page Overview et faites défiler jusqu’en bas, où vous verrez le widget NAT gateway. Cliquez sur le bouton Subscribe et suivez les instructions. Notez que NAT Gateway est un service payant, mais qu’il offre également un essai gratuit de 14 jours. Une fois la passerelle créée, vous trouverez son adresse IP publique dans le widget. Veuillez noter que si vous sélectionnez “Se connecter depuis un lieu spécifique” lors de la configuration de ClickHouse Cloud, vous devrez ajouter cette adresse IP à la liste blanche.

Intégration d’EMQX Cloud avec ClickHouse Cloud

Les Data Integrations d’EMQX Cloud servent à configurer les règles de traitement et de réponse aux flux de messages EMQX et aux événements des appareils. Les Data Integrations offrent non seulement une architecture configurable claire et flexible, mais elles simplifient également le processus de développement, améliorent la convivialité et réduisent le niveau de couplage entre le système métier et EMQX Cloud. Elles fournissent aussi une excellente infrastructure pour personnaliser les fonctionnalités propriétaires d’EMQX Cloud. EMQX Cloud propose plus de 30 intégrations natives avec des systèmes de données populaires. ClickHouse en fait partie.

Créer une ressource ClickHouse

Cliquez sur « Data Integrations » dans le menu de gauche, puis sur « View All Resources ». Vous trouverez ClickHouse dans la section « Data Persistence », ou vous pouvez le rechercher. Cliquez sur la carte ClickHouse pour créer une nouvelle ressource.
  • Remarque : ajoutez une note pour cette ressource.
  • Adresse du serveur : il s’agit de l’adresse de votre service ClickHouse Cloud ; n’oubliez pas le port.
  • Nom de la base de données : emqx, que nous avons créée aux étapes ci-dessus.
  • Utilisateur : le nom d’utilisateur pour vous connecter à votre service ClickHouse Cloud.
  • Clé : le mot de passe de connexion.

Créer une nouvelle règle

Lors de la création de la ressource, une fenêtre contextuelle s’affiche, et en cliquant sur ‘New’, vous accédez à la page de création de règle. EMQX fournit un puissant moteur de règles capable de transformer et d’enrichir le message MQTT brut avant de l’envoyer à des systèmes tiers. Voici la règle utilisée dans ce tutoriel :
Il lira les messages du topic temp_hum/emqx et enrichira l’objet JSON en y ajoutant les informations de client_id, du topic et de l’horodatage. Ainsi, le JSON brut que vous envoyez au topic :
Vous pouvez utiliser le test SQL pour vérifier le résultat. Cliquez maintenant sur le bouton “NEXT”. Cette étape consiste à indiquer à EMQX Cloud comment insérer les données transformées dans votre base de données ClickHouse.

Ajouter une action de réponse

Si vous n’avez qu’une seule ressource, vous n’avez pas besoin de modifier ‘Resource’ ni ‘Action Type’. Il vous suffit de définir le modèle SQL. Voici l’exemple utilisé dans ce tutoriel :
Il s’agit d’un modèle permettant d’insérer des données dans ClickHouse ; vous pouvez voir ici comment les variables sont utilisées.

Voir les détails de la règle

Cliquez sur “Confirm”, puis sur “View Details”. À présent, tout devrait être correctement configuré. Vous pouvez vérifier que l’intégration de données fonctionne depuis la page des détails de la règle. Tous les messages MQTT envoyés au topic temp_hum/emqx seront conservés dans votre base de données ClickHouse Cloud.

Enregistrement des données dans ClickHouse

Nous allons simuler des données de température et d’humidité, puis les transmettre à EMQX Cloud via MQTT X, avant d’utiliser les Data Integrations d’EMQX Cloud pour les enregistrer dans ClickHouse Cloud.

Publier des messages MQTT sur EMQX Cloud

Vous pouvez utiliser n’importe quel client MQTT ou SDK pour publier le message. Dans ce tutoriel, nous utiliserons MQTT X, une application client MQTT facile à utiliser fournie par EMQ. Cliquez sur “New Connection” dans MQTTX et remplissez le formulaire de connexion :
  • Name: nom de la connexion. Utilisez le nom de votre choix.
  • Host: l’adresse de connexion du broker MQTT. Vous pouvez l’obtenir depuis la page Overview d’EMQX Cloud.
  • Port: le port de connexion du broker MQTT. Vous pouvez l’obtenir depuis la page Overview d’EMQX Cloud.
  • Username/Password: utilisez les identifiants créés ci-dessus, qui doivent être emqx et xxxxxx dans ce tutoriel.
Cliquez sur le bouton “Connect” en haut à droite et la connexion devrait s’établir. Vous pouvez maintenant envoyer des messages au broker MQTT à l’aide de cet outil. Entrées :
  1. Définissez le format de payload sur “JSON”.
  2. Définissez le topic sur : temp_hum/emqx (le topic que nous venons de définir dans la règle)
  3. Corps JSON :
Cliquez sur le bouton d’envoi à droite. Vous pouvez modifier la valeur de la température et envoyer davantage de données au broker MQTT. Les données envoyées à EMQX Cloud devraient être traitées par le moteur de règles et insérées automatiquement dans ClickHouse Cloud.

Consulter la surveillance des règles

Vérifiez la surveillance des règles et assurez-vous que le nombre de réussites a augmenté de un.

Vérifier les données enregistrées

Il est maintenant temps d’examiner les données dans ClickHouse Cloud. Idéalement, les données que vous envoyez avec MQTTX seront transmises à EMQX Cloud et enregistrées dans la base de données de ClickHouse Cloud à l’aide de l’intégration de données native. Vous pouvez vous connecter à la console SQL depuis le panneau ClickHouse Cloud ou utiliser n’importe quel outil client pour récupérer des données depuis votre instance ClickHouse. Dans ce tutoriel, nous avons utilisé la console SQL. En exécutant le SQL :

Résumé

Vous n’avez écrit aucune ligne de code, et les données MQTT transitent désormais d’EMQX Cloud vers ClickHouse Cloud. Avec EMQX Cloud et ClickHouse Cloud, vous n’avez pas à gérer l’infrastructure et pouvez simplement vous concentrer sur le développement de vos applications IoT, tandis que vos données sont stockées en toute sécurité dans ClickHouse Cloud.
Dernière modification le 3 juillet 2026