EMQXエージェントをEMQX Tablesに接続する
EMQX Tablesコネクターを使用すると、エージェントがSQLを通じて時系列データをクエリおよび書き込みできます。このコネクターを利用して、テレメトリ履歴の分析、保存データによるエージェントの意思決定の強化、計算結果のEMQX Tablesへの書き戻しが可能です。
よくあるユースケース
- アラート送信の判断前に最新のテレメトリをクエリする。
- 最新の測定値を過去の基準値と比較する。
- 異常スコアやメンテナンス結果をテーブルに書き込む。
- EMQX Tablesに保存されたデバイスデータからレポートを作成する。
チャットプロンプトの例:
text
factory-tablesコネクターを使って、MQTTイベント内のデバイスIDに対する直近20件の温度測定値をクエリしてください。平均値を計算し、最終応答に含めてください。前提条件
コネクターを追加する前に、以下を準備してください。
- EMQX Tablesサービスのアドレス
- 認証が有効な場合はユーザー名とパスワード
- データベース名
- ワークフローで必要なテーブル名とスキーマ
- 最小限のSQL権限を持つデータベースアカウント
EMQX Tablesコネクターの追加
- 左側のナビゲーションメニューで Connectors をクリックします。
- Available タブで EMQX Tables を見つけて Add をクリックします。
- コネクターの各項目を設定します。
- Confirm をクリックします。
- Added タブでコネクターがリストに表示されていることを確認します。
| 項目 | 必須 | 説明 |
|---|---|---|
| Type | はい | 選択されたコネクタータイプ、EMQX Tables。 |
| Name | はい | 表示名。例:factory-tables。 |
| Address | はい | host:port形式のTablesサービスアドレス。エージェントとTablesが同一ネットワークの場合はTablesのプライベートアドレスとポート4000を使用。異なるネットワークの場合はTablesのパブリックアドレスとポート443を使用。両方のアドレスはTablesデプロイメントのOverviewページのConnection Infoセクションで確認可能。 |
| Username | いいえ | EMQX Tables認証用のユーザー名。 |
| Password | いいえ | EMQX Tables認証用のパスワード。 |
| Database Name | いいえ | 接続するデータベース名。デフォルトはpublic。 |
| Enable TLS/SSL | はい | 接続にTLSを有効化。パブリックアドレスとポート443使用時は必須。プライベートアドレスとポート4000使用時は無効のままにする必要あり。 |
EMQX Tablesコネクターの編集
- Added タブでEMQX Tablesコネクターの編集アイコンをクリックします。
- コネクターがデプロイ済みエージェントに使用されていない場合、Edit Connectorパネルで以下の項目を更新できます。
- Name
- Address
- Username
- Password
- Database Name
- Enable TLS/SSL
- コネクターがデプロイ済みエージェントに使用されている場合は、Nameのみ更新可能です。
- Confirm をクリックします。
Type項目は読み取り専用で変更できません。
重要なお知らせ
デプロイ済みエージェントが使用しているコネクターのデータベース名やその他接続設定は、たとえ項目が有効でも変更しないでください。
対応ツール
このコネクターは tables.sql ツールを提供します。このツールはSQL文を受け付け、パラメーター、結果の上限、タイムアウトを指定できます。
チャット内でスキーマ確認、サンプル行の検査、SQLの検証に使用し、エージェントをデプロイする前に動作を確認できます。生成されたエージェントは実行時に同じコネクターを使用します。
重要なお知らせ
SQL文は接続アカウントに書き込み権限がある場合、データの変更や削除を行う可能性があります。読み取り専用ワークフローには読み取り専用のデータベースアカウントを使用し、書き込み操作を含むSQLはデプロイ前に必ず確認してください。
権限とセキュリティ
- データベースアカウントには必要なデータベース、スキーマ、テーブルへのアクセス権のみを付与してください。
- エージェントがデータのクエリのみを行う場合は読み取り専用アカウントを使用してください。
- チャットプロンプトやエージェント指示にユーザー名やパスワードを含めないでください。
- 信頼できないネットワーク経由でEMQX Tablesにアクセスする場合はTLSを使用してください。
制限事項
- 無効なSQL、存在しないテーブル、権限不足によりツール呼び出しが失敗します。
- 大量の結果セットはエージェントの処理限界を超える可能性があります。必要なカラムと行のみをクエリしてください。
- コネクターは設定されたEMQX Tablesアカウントの権限を使用します。
トラブルシューティング
| 症状 | 対処方法 |
|---|---|
| コネクターがEMQX Tablesに接続できない。 | アドレス、ポート、TLS設定、ネットワークアクセスを確認してください。 |
| 認証に失敗する。 | ユーザー名、パスワード、データベースアカウントの状態を確認してください。 |
| クエリが失敗する。 | SQL構文、データベース名、テーブル名、アカウント権限を確認してください。 |
| 結果が切り捨てられるか、サイズが大きすぎる。 | フィルターを追加するか、選択するカラムを減らすか、クエリの上限を下げてください。 |