# EMQX ブローカーと EMQX Tables の統合

EMQX Tables は、EMQX Cloud に組み込まれたフルマネージドの時系列データベースサービスであり、MQTT データの効率的な取り込み、保存、分析を目的としています。EMQX ブローカーとはルールエンジンを介してネイティブに統合されており、[InfluxDB Line Protocol](https://docs.influxdata.com/influxdb/v2.5/reference/syntax/line-protocol/) をサポートしているため、デバイスからデータベースへのシームレスなデータフローを実現します。

本ドキュメントでは、EMQX ブローカーと EMQX Tables のアーキテクチャ、統合プロセス、および利用メリットについて説明します。

## アーキテクチャ概要

EMQX Tables は [データ統合](../../data_integration/introduction.md) を通じて EMQX ブローカーと連携しており、MQTT メッセージを最小限の設定で直接 EMQX Tables に書き込むことが可能です。これにより、サードパーティのデータベースやパイプライン、ミドルウェアは不要となります。

- 外部データベースは不要
- 追加のコネクターやサービスも不要
- すべて EMQX コンソール内で管理可能

### 典型的なワークフロー

1. **デバイスが MQTT データを EMQX ブローカーに送信**：温度、電力、GPS などのテレメトリーデータ。
2. **ルールがメッセージを処理**：ルールが受信メッセージにマッチし、ペイロードの変換、フィールド抽出、データ整形を行うことも可能。
3. **データを EMQX Tables に取り込み**：ルールアクションを使って Line Protocol 形式で書き込み。
4. **SQL クエリで取得**：ダッシュボード、アラート、分析に利用。

## 統合のメリット

| 機能                             | 説明                                                         |
| -------------------------------- | ------------------------------------------------------------ |
| **ネイティブ統合**               | EMQX Cloud コンソール内でワンクリック設定。サードパーティのデータベースやコネクターは不要。 |
| **スキーマ設定不要**             | テーブルが自動的に構造を推論。スキーマ定義やマイグレーションは不要。 |
| **高スループット＋圧縮**         | 高負荷の取り込みに最適化。ストレージは圧縮されコスト削減に貢献。 |
| **強力なルールエンジン**         | 保存前にデータのフィルタリング、変換、拡張、ルーティングが可能。 |
| **SQL サポート**                 | 標準的なクエリ言語でデータの取得と分析が可能。                 |
| **安全なプライベートネットワーク** | ブローカーと Tables が同じクラウドプラットフォーム・リージョンかつ同一ネットワークにある場合、低レイテンシのプライベート接続で通信可能。追加インフラは不要。 |
| **Line Protocol 互換**           | 既存の InfluxDB ワークフローを再利用可能。慣れ親しんだ Line Protocol 形式でデータを書き込み。 |
| **フルマネージド**               | インフラ管理不要。スケーリング、バックアップ、監視、アップグレードはすべて自動で対応。 |

## 統合フロー

| ステップ                     | 説明                                                         |
| ---------------------------- | ------------------------------------------------------------ |
| 1. **同時デプロイ**           | 同一クラウドプラットフォーム・リージョンにブローカーと Tables を作成し、デプロイ作成時に同じネットワークに紐付けます。これによりプライベート接続が可能となります。異なるリージョンやネットワークの場合は、パブリックインターネットアクセス用に NAT ゲートウェイが必要です。 |
| 2. **コネクター作成**         | 自動生成された認証情報を使い、EMQX Tables へのコネクターを追加します。 |
| 3. **ルール定義**             | SQL を用いて MQTT トピックからデータを抽出します。           |
| 4. **アクション設定**          | Line Protocol 形式でデータを整形し、Tables に転送します。     |
| 5. **クエリと可視化**          | 組み込みの SQL エディターや Grafana などのツールでデータを分析します。 |

ステップごとの統合設定手順については、[EMQX Tables へのデータ取り込み](../../data_integration/emqx_tables.md) をご参照ください。
