測定値とコンテキストをまとめて保存
センサーの測定値を、デバイスの属性やメタデータと一緒に保存します。MongoDB の柔軟なドキュメントモデルにより、デバイス群の変化に合わせて異なるデバイス構造にも対応できます。
EMQX MongoDB 統合
EMQX でセンサーの測定値、デバイスの状態、資産の位置情報を収集し、MongoDB に保存して、アプリケーションのクエリやダッシュボードに活用できます。
概要
EMQX がデバイスを接続してメッセージを整え、MongoDB が生成されたドキュメントを保存して、アプリケーションからクエリできるようにします。
センサーの測定値を、デバイスの属性やメタデータと一緒に保存します。MongoDB の柔軟なドキュメントモデルにより、デバイス群の変化に合わせて異なるデバイス構造にも対応できます。
EMQX が MQTT 接続とメッセージ処理を担い、MongoDB がアプリケーションからのクエリを処理します。トラフィックとデータアクセスの要件に合わせて、各レイヤーの規模を個別に設計できます。
EMQX で送信待ちのリクエストをバッファリングし、回復可能なエラーは再試行します。ワークロードに合わせてバッファ容量とリクエストの有効期限を設定し、失敗・破棄されたリクエストを監視できます。
アーキテクチャ
デバイスは MQTT メッセージを EMQX にパブリッシュします。SQL ルールでデータを選択・変換し、MongoDB Sink がその結果をコレクションに挿入して、アプリケーションからクエリできるようにします。
EMQX Enterprise
MQTT Broker
機能
保存するメッセージ、フィールドのマッピング方法、配信の監視方法を制御できます。
Sink のペイロードテンプレートを使用して、ルールの処理結果を MongoDB ドキュメントにマッピングします。ネストされたオブジェクトや配列も含めてフィールド名と型を統一しておくと、デバイスをまたいだクエリが容易になります。
ドキュメントマッピングガイドMongoDB に書き込む前に、MQTT トピックのマッチング、ペイロードフィールドの選択、不要なメッセージのフィルタリング、値の変換を行います。
ルール SQL リファレンススタンドアロンインスタンス、レプリカセット、シャードクラスターに接続できます。MongoDB のデプロイ構成に合わせてコネクターのモードを選択し、TLS を有効にしてデータベース接続を暗号化します。
MongoDB コネクタガイドMongoDB のクエリと集計パイプラインを使用して、測定値やイベントを調査できます。アプリケーションのアクセスパターンに合わせて、MongoDB にインデックスを作成してください。
集約ガイド資産や車両の位置を GeoJSON 形式で保存し、MongoDB の地理空間インデックスを使って近接検索やエリア検索を行えます。
地理空間クエリガイドEMQX Dashboard で、成功・失敗・破棄されたリクエストを追跡できます。これらのメトリクスを使って配信の問題を調査し、パイプラインを調整します。
データ配信の監視ガイド仕組み
開始するには、EMQX Enterprise、MongoDB へのネットワークアクセス、対象のデータベースとコレクションへの書き込み権限を持つ認証情報が必要です。
始める前に
EMQX Dashboard で MongoDB コネクターを作成します。デプロイモードを選択し、接続情報と認証情報を入力して、接続をテストします。
MQTT トピックをマッチングしてフィールドを整える SQL ルールを作成します。MongoDB Sink を追加し、コレクションとペイロードテンプレートを設定します。
MQTT クライアントを接続し、テストメッセージをパブリッシュします。本番トラフィックを送る前に MongoDB をクエリして、ドキュメントのフィールドと型を確認してください。
リソース
FAQ
MongoDB はテレメトリデータを BSON ドキュメントとして保存し、ネストされたオブジェクト、配列、デバイスごとに異なるメタデータを扱えます。EMQX が MQTT データの取り込みと前処理を担い、MongoDB Sink がそのデータをコレクションに挿入します。ここで示すデータフローは、EMQX から MongoDB への一方向です。
EMQX の SQL ルールでフィールドを整えたうえで、Sink のペイロードテンプレートで結果をマッピングします。バイナリ形式やカスタム形式のペイロードは、事前に適切なデコーダーで解析する必要があります。テンプレートでは、型を保持するために文字列は引用符で囲み、数値は引用符で囲まないでください。代表的なデバイスメッセージでテストすることをお勧めします。
はい。ワークロードに見合った規模でデプロイすればスケールできます。処理能力は、メッセージのサイズとレート、ドキュメント構造、インデックス、データベースのリソースによって決まります。MongoDB のレプリカセットは冗長性とフェイルオーバーを提供し、シャーディングはデータを複数のシャードに分散します。代表的なトラフィックとクエリを用いて、パイプライン全体のベンチマークを実施してください。
EMQX は送信待ちのリクエストをバッファリングし、回復可能なエラーを再試行できます。配信を遅らせられる時間は、バッファ容量とリクエストの有効期限によって制限されます。失敗したリクエストと破棄されたリクエストを監視し、中断や再起動後の復旧をテストしたうえで、耐久性の要件に合わせて MongoDB の書き込み確認を設定してください。
MongoDB 統合に対応した EMQX、データベースへのネットワークアクセス、書き込み権限のある認証情報が必要です。MongoDB のデプロイ構成に合わせてコネクターを設定し、SQL ルールと、コレクションおよびペイロードテンプレートを指定した Sink を作成します。TLS を有効にして接続を暗号化し、テストドキュメントで書き込みを確認してください。
MQTT のデータフロー、ドキュメント構造、MongoDB のデプロイ構成について、EMQX のエキスパートと一緒に検討しましょう。