EMQX ブローカーと EMQX Tables の統合
EMQX Tables は、EMQX Cloud に組み込まれたフルマネージドの時系列データベースサービスであり、MQTT データの効率的な取り込み、保存、分析を目的としています。EMQX ブローカーとはルールエンジンを介してネイティブに統合されており、InfluxDB Line Protocol をサポートしているため、デバイスからデータベースへのシームレスなデータフローを実現します。
本ドキュメントでは、EMQX ブローカーと EMQX Tables のアーキテクチャ、統合プロセス、および統合の利点について説明します。
アーキテクチャ概要
EMQX Tables は データ統合 を通じて EMQX ブローカーと連携しており、MQTT メッセージを最小限の設定で直接 EMQX Tables に書き込むことが可能です。これにより、サードパーティのデータベースやパイプライン、ミドルウェアは不要となります。
- 外部データベースは不要
- 追加のコネクターやサービスも不要
- すべて EMQX コンソール内で管理可能
一般的なワークフロー
- デバイスが MQTT データを EMQX ブローカーに送信:温度、電力、GPS などのテレメトリーデータ。
- ルールがメッセージを処理:受信メッセージにマッチするルールがペイロードの変換、フィールド抽出、データ整形を行うことも可能。
- データが EMQX Tables に取り込まれる:ルールアクションで Line Protocol を使用。
- SQL クエリ:ダッシュボード、アラート、分析のためにデータを取得。
統合の利点
| 機能 | 説明 |
|---|---|
| ネイティブ統合 | EMQX Cloud コンソール内でワンクリック設定。サードパーティのデータベースやコネクターは不要。 |
| スキーマ設定不要 | テーブルが構造を自動推論。スキーマ定義やマイグレーションは不要。 |
| 高スループット+圧縮 | 高負荷取り込みに最適化。ストレージは圧縮されコスト削減。 |
| 強力なルールエンジン | 保存前にデータのフィルター、変換、強化、ルーティングが可能。 |
| SQL サポート | 標準的なクエリ言語でデータの取得・分析が可能。 |
| 安全なプライベートネットワーク | 同一クラウドプラットフォームかつ同一リージョン内で、同じネットワークを共有する Broker と Tables は、追加インフラ不要の低レイテンシなプライベート接続で通信。 |
| Line Protocol 互換 | 既存の InfluxDB ワークフローを再利用可能。慣れ親しんだ Line Protocol 形式でデータを書き込み。 |
| フルマネージド | インフラ管理不要。スケーリング、バックアップ、監視、アップグレードはすべて代行。 |
統合フロー
| ステップ | 説明 |
|---|---|
| 1. 同時デプロイ | Broker と Tables を同じクラウドプラットフォームかつ同一リージョンに作成し、デプロイ作成時に同じネットワークに関連付けます。これによりプライベート接続が可能になります。異なるリージョンやネットワークの場合は、パブリックインターネットアクセス用に NAT ゲートウェイが必要です。 |
| 2. ユーザー作成 | SqlInsert 権限を持ち、対象データベースにアクセス可能な EMQX Tables ユーザーを作成します。 |
| 3. コネクター作成 | EMQX ブローカーにコネクターを追加し、データ書き込みに使用するユーザー名を選択します。 |
| 4. ルール定義 | SQL を使って MQTT トピックからデータを抽出します。 |
| 5. アクション設定 | Line Protocol 形式でデータを整形し、Tables に転送します。 |
| 6. クエリ+可視化 | 組み込みの SQL エディターや Grafana などのツールでデータを分析します。 |
ステップごとの統合セットアップ手順は、こちらをご参照ください:EMQX Tables へのデータ取り込み。