Skip to main content

Conectando ao EMQX

EMQX é um broker MQTT de código aberto com um mecanismo de processamento de mensagens em tempo real de alto desempenho, que viabiliza o streaming de eventos para dispositivos IoT em escala massiva. Como o broker MQTT mais escalável, o EMQX pode ajudar você a conectar qualquer dispositivo, em qualquer escala. Leve e processe seus dados de IoT em qualquer lugar. EMQX Cloud é um produto de middleware de mensageria MQTT para o setor de IoT, hospedado pela EMQ. Como o primeiro serviço de mensageria MQTT 5.0 em nuvem totalmente gerenciado do mundo, o EMQX Cloud oferece uma solução completa de operação e manutenção (O&M) e um ambiente isolado exclusivo para serviços de mensageria MQTT. Na era da Internet de Tudo, o EMQX Cloud pode ajudar você a criar rapidamente aplicações para o setor de IoT e a coletar, transmitir, processar e persistir dados de IoT com facilidade. Com a infraestrutura fornecida por provedores de nuvem, o EMQX Cloud atende dezenas de países e regiões em todo o mundo, oferecendo serviços em nuvem de baixo custo, seguros e confiáveis para aplicações de 5G e Internet de Tudo.

Pressupostos

  • Você está familiarizado com o protocolo MQTT, que foi projetado como um protocolo de transporte de mensagens publish/subscribe extremamente leve.
  • Você está usando o EMQX ou o EMQX Cloud como mecanismo de processamento de mensagens em tempo real, que viabiliza o streaming de eventos para dispositivos IoT em grande escala.
  • Você preparou uma instância do ClickHouse Cloud para persistir os dados dos dispositivos.
  • Usamos o MQTT X como ferramenta de teste de cliente MQTT para nos conectar à implantação do EMQX Cloud e publicar dados MQTT. Outros métodos de conexão ao broker MQTT também funcionam.

Obtenha seu serviço do ClickHouse Cloud

Durante essa configuração, implantamos a instância do ClickHouse na AWS em N. Virginia (us-east-1), enquanto uma instância do EMQX Cloud também foi implantada na mesma região. Durante o processo de configuração, você também precisará prestar atenção às configurações de conexão. Neste tutorial, escolhemos “Anywhere”, mas, se você optar por um local específico, precisará adicionar à lista de permissões o endereço IP do gateway NAT obtido na implantação do EMQX Cloud. Em seguida, você precisa salvar seu nome de usuário e sua senha para uso futuro. Depois disso, você terá uma instância do ClickHouse em execução. Clique em “Connect” para obter o endereço de conexão da instância do ClickHouse Cloud. Clique em “Connect to SQL Console” para criar o banco de dados e a tabela para a integração com o EMQX Cloud. Você pode usar a instrução SQL a seguir ou modificar o SQL de acordo com a situação real.

Crie um serviço MQTT no EMQX Cloud

Criar um broker MQTT dedicado no EMQX Cloud é muito simples e leva apenas alguns cliques.

Crie uma conta

O EMQX Cloud oferece uma avaliação gratuita de 14 dias para cada conta, tanto na implantação padrão quanto na implantação profissional. Acesse a página de cadastro do EMQX Cloud e clique em start free para criar uma conta, caso você ainda não use o EMQX Cloud.

Crie um cluster MQTT

Depois de fazer login, clique em “Cloud Console” no menu da conta e você verá o botão verde para criar uma nova implantação. Neste tutorial, usaremos a implantação Professional, porque apenas a versão Pro oferece a funcionalidade de integração de dados, que pode enviar dados MQTT diretamente para o ClickHouse sem escrever uma única linha de código. Selecione a versão Pro, escolha a região N.Virginial e clique em Create Now. Em poucos minutos, você terá um broker MQTT totalmente gerenciado: Agora, clique no painel para abrir a visualização do cluster. Nesse painel, você verá a visão geral do seu broker MQTT.

Adicionar uma credencial de cliente

O EMQX Cloud não permite conexões anônimas por padrão, então é necessário adicionar uma credencial de cliente para usar a ferramenta de cliente MQTT e enviar dados para esse broker. Clique em ‘Authentication & ACL’ no menu à esquerda e, no submenu, clique em ‘Authentication’. Clique no botão ‘Add’ à direita e defina um nome de usuário e uma senha para usar depois na conexão MQTT. Aqui, usaremos emqx e xxxxxx como nome de usuário e senha. Clique em ‘Confirm’ e o broker MQTT totalmente gerenciado estará pronto.

Habilite o gateway NAT

Antes de começar a configurar a integração do ClickHouse, primeiro é necessário habilitar o gateway NAT. Por padrão, o broker MQTT é implantado em uma VPC privada, que não consegue enviar dados para sistemas de terceiros pela rede pública. Volte para a página Overview e role até o fim, onde você verá o widget do gateway NAT. Clique no botão Subscribe e siga as instruções. Observe que o NAT Gateway é um serviço adicional, mas também oferece um teste gratuito de 14 dias. Depois que ele for criado, você encontrará o endereço IP público no widget. Observe que, se você selecionar “Connect from a specific location” durante a configuração do ClickHouse Cloud, precisará adicionar esse endereço IP à lista de permissões.

Integração do EMQX Cloud com ClickHouse Cloud

O EMQX Cloud Data Integrations é usado para configurar as regras de processamento e resposta aos fluxos de mensagens e eventos de dispositivos no EMQX. O Data Integrations não só fornece uma solução de arquitetura “configurável” clara e flexível, como também simplifica o processo de desenvolvimento, melhora a usabilidade e reduz o grau de acoplamento entre o sistema de negócios e o EMQX Cloud. Ele também oferece uma infraestrutura superior para personalizar os recursos proprietários do EMQX Cloud. O EMQX Cloud oferece mais de 30 integrações nativas com sistemas de dados populares. ClickHouse é uma delas.

Criar recurso do ClickHouse

Clique em “Data Integrations” no menu à esquerda e, em seguida, em “View All Resources”. Você encontrará o ClickHouse na seção Data Persistence ou poderá pesquisá-lo. Clique no card do ClickHouse para criar um novo recurso.
  • Observação: adicione uma observação a este recurso.
  • Endereço do servidor: este é o endereço do seu serviço ClickHouse Cloud; lembre-se de incluir a porta.
  • Nome do banco de dados: emqx, que criamos nas etapas acima.
  • Usuário: o nome de usuário para se conectar ao seu serviço ClickHouse Cloud.
  • Key: a senha da conexão.

Crie uma nova regra

Durante a criação do recurso, você verá um pop-up, e, ao clicar em ‘New’, será levado à página de criação da regra. O EMQX oferece um poderoso mecanismo de regras que pode transformar e enriquecer a mensagem MQTT bruta antes de enviá-la a sistemas de terceiros. Aqui está a regra usada neste tutorial:
Ele lerá as mensagens do tópico temp_hum/emqx e enriquecerá o objeto JSON, adicionando informações de client_id, tópico e timestamp. Assim, o JSON bruto que você envia para o tópico:
Você pode usar o teste de SQL para verificar os resultados. Agora clique no botão “NEXT”. Esta etapa serve para informar ao EMQX Cloud como inserir os dados refinados no seu banco de dados ClickHouse.

Adicione uma ação de resposta

Se você tiver apenas um recurso, não precisará alterar ‘Resource’ e ‘Action Type’. Você só precisa definir o template SQL. Aqui está o exemplo usado neste tutorial:
Este é um modelo para inserir dados no ClickHouse; aqui você pode ver as variáveis em uso.

Ver detalhes da regra

Clique em “Confirm” e em “View Details”. Agora, tudo deve estar corretamente configurado. Você pode ver que a integração de dados está funcionando na página de detalhes da regra. Todas as mensagens MQTT enviadas para o tópico temp_hum/emqx serão armazenadas no seu banco de dados do ClickHouse Cloud.

Salvando dados no ClickHouse

Vamos simular dados de temperatura e umidade, enviar esses dados ao EMQX Cloud via MQTT X e, em seguida, usar as Data Integrations do EMQX Cloud para salvá-los no ClickHouse Cloud.

Publicar mensagens MQTT no EMQX Cloud

Você pode usar qualquer cliente MQTT ou SDK para publicar a mensagem. Neste tutorial, usaremos o MQTT X, um cliente MQTT fácil de usar fornecido pela EMQ. Clique em “New Connection” no MQTTX e preencha o formulário de conexão:
  • Name: nome da conexão. Use o nome que quiser.
  • Host: endereço de conexão do broker MQTT. Você pode obtê-lo na página de visão geral do EMQX Cloud.
  • Port: porta de conexão do broker MQTT. Você pode obtê-la na página de visão geral do EMQX Cloud.
  • Username/Password: use a credencial criada acima, que neste tutorial deve ser emqx e xxxxxx.
Clique no botão “Connect” no canto superior direito, e a conexão deverá ser estabelecida. Agora você pode enviar mensagens para o broker MQTT usando essa ferramenta. Preencha:
  1. Defina o formato do payload como “JSON”.
  2. Defina o tópico como temp_hum/emqx (o tópico que acabamos de configurar na regra)
  3. Corpo JSON:
Clique no botão de envio à direita. Você pode alterar o valor da temperatura e enviar mais dados para o broker MQTT. Os dados enviados para o EMQX Cloud devem ser processados pelo mecanismo de regras e inseridos automaticamente no ClickHouse Cloud.

Ver o monitoramento das regras

Verifique o monitoramento das regras e confirme que o número de sucessos aumentou em um.

Verifique os dados persistidos

Agora é hora de dar uma olhada nos dados no ClickHouse Cloud. Idealmente, os dados que você envia usando o MQTTX irão para o EMQX Cloud e serão persistidos no banco de dados do ClickHouse Cloud com o auxílio da integração nativa de dados. Você pode se conectar ao console SQL no painel do ClickHouse Cloud ou usar qualquer ferramenta cliente para consultar os dados no seu ClickHouse. Neste tutorial, usamos o console SQL. Ao executar o SQL:

Resumo

Você não precisou escrever nenhuma linha de código e agora os dados MQTT são transferidos do EMQX Cloud para o ClickHouse Cloud. Com EMQX Cloud e ClickHouse Cloud, você não precisa gerenciar a infraestrutura e pode se concentrar apenas em desenvolver seus aplicativos de IoT, com os dados armazenados com segurança no ClickHouse Cloud.
Última modificação em 23 de julho de 2026