EMQX への接続
前提条件
- 非常に軽量な publish/subscribe 型メッセージ転送プロトコルとして設計された MQTT プロトコルに精通していること。
- 大規模な IoT デバイスのイベントストリーミングを支えるリアルタイムメッセージ処理エンジンとして、EMQX または EMQX Cloud を使用していること。
- デバイスデータを永続化するための ClickHouse Cloud インスタンスを準備していること。
- MQTT データをパブリッシュするために、EMQX Cloud のデプロイメントへ接続する MQTT クライアントのテストツールとして MQTT X を使用します。なお、MQTT ブローカーに接続できる他の方法でも問題ありません。
ClickHouse Cloud サービスを取得する
EMQX Cloud 上で MQTT サービスを作成する
アカウントを作成する
MQTTクラスターを作成する
N.Virginial リージョンを選んで Create Now をクリックします。数分で、完全マネージド型の MQTT ブローカーが利用可能になります。
次に、パネルをクリックしてクラスター画面に移動します。このダッシュボードでは、MQTT ブローカーの概要を確認できます。
クライアント認証情報を追加する
emqx と xxxxxx を使用します。
‘Confirm’ をクリックすると、完全マネージド型の MQTT ブローカーを使用する準備は完了です。
NAT ゲートウェイを有効にする
Subscribe ボタンをクリックし、案内に従ってください。NAT ゲートウェイ は付加価値サービスですが、14 日間の無料トライアルも利用できます。
作成が完了すると、ウィジェット内にパブリック IP アドレスが表示されます。ClickHouse Cloud の設定時に Connect from a specific location を選択した場合は、この IP アドレスをホワイトリストに追加する必要がある点に注意してください。
EMQX Cloud と ClickHouse Cloud のインテグレーション
ClickHouse リソースを作成する
- Note: このリソース用のメモを追加します。
- Server address: ClickHouse Cloud サービスのアドレスです。ポート番号も忘れずに含めてください。
- Database name: 上の手順で作成した
emqxです。 - User: ClickHouse Cloud サービスへの接続に使用するユーザー名です。
- Key: 接続用のパスワードです。
新しいルールを作成する
temp_hum/emqx トピックからメッセージを読み取り、client_id、topic、timestamp の情報を追加して JSONオブジェクトを拡充します。
したがって、トピックに送信する生の JSON は次のとおりです。
レスポンスアクションを追加する
ルールの詳細を表示する
temp_hum/emqx トピックに送信されたすべての MQTT メッセージは、ClickHouse Cloud のデータベースに永続化されます。
データを ClickHouse に保存する
EMQX Cloud に MQTT メッセージをパブリッシュする
- Name: 接続名。任意の名前を指定します。
- Host: MQTT ブローカーの接続先アドレス。EMQX Cloud の概要ページで確認できます。
- Port: MQTT ブローカーの接続ポート。EMQX Cloud の概要ページで確認できます。
- Username/Password: 上で作成した認証情報を使用します。このチュートリアルでは
emqxとxxxxxxです。
- ペイロードのフォーマットを “JSON” に設定します。
- トピックを
temp_hum/emqxに設定します (先ほどルールで設定したトピックです) - JSON 本文: