ラビットMQ コネクタ FAQ
ベータ版
この機能はベータ版です。ワークスペース管理者は、 プレビュー ページからこの機能へのアクセスを制御できます。Databricksのプレビューを管理するを参照してください。
このページでは、Databricks Lakeflow Connect のマネージド RabbitMQ インジェスト コネクタに関してよく寄せられる質問に回答します。
一般的なマネージド コネクタの FAQ
LakeFlow Connect のすべてのマネージド コネクタに適用される FAQ については、マネージドコネクタの FAQ を参照してください。以下はRabbitMQコネクターに固有のものです。
コネクタ固有の FAQ
RabbitMQへの接続時に、なぜ接続タイムアウトが発生するのですか?
一般的な原因には、次のものがあります。
- ホストまたはポートが正しくありません : Unity Catalog 接続の RabbitMQ ブローカーのホスト名またはポートが間違っています。RabbitMQ のデフォルトポートは
5672です。 - ネットワーク接続 : サーバレス コンピュートプレーンからお使いのRabbitMQブローカーへのネットワーク接続はブロックされています。VPCピアリング、セキュリティ グループ、またはファイアウォール ルールを確認してください。
単一のパイプラインで複数のRabbitMQキューから読み取ることができますか?
はい。ingestion_definition.objectsでキューごとに1つのテーブルエントリを定義します。各キューは、送信先のストリーミングテーブルに1:1でマップされます。単一のパイプラインは1つのUnity Catalog接続(1つのRabbitMQブローカー)を使用します。複数のブローカーから取り込むには、個別のパイプラインを作成してください。
ストリームがキューからどのくらい遅れているかを監視するにはどうすればよいですか?
ストリーミングメトリクスを表示を参照してください。RabbitMQ の主要なシグナル:
- 入力レートと処理レート :コネクタがキューから消費する速度です。
- ブローカー側のキューの深さ:RabbitMQ管理UIでこれを監視してください。RabbitMQのクラシックキューはキューベースであり、再生可能なオフセットがないため、キューの深さが信頼できる遅延インジケーターとなります。
データが存在すると思われるのに、なぜストリームからレコードが返されないのですか?
一般的な原因には、次のものがあります。
- キュー名が誤っています :正しいキューから消費していることを確認してください。
- 競合する外部コンシューマー : RabbitMQは各メッセージをいずれか1つのコンシューマーに配信します。別の(Spark 以外)のコンシューマーが同じキューから読み取っている場合、パイプラインが予期されるよりも少ないメッセージを受信する可能性があります。
- 認証または認可に関する問題 : 接続は成功した可能性がありますが、ユーザーにキューから利用する権限がない可能性があります。RabbitMQ の権限を確認してください (キューに対する読み取り権限)。
- 既に消費済みで確認済みのメッセージ : Kafkaとは異なり、RabbitMQのクラシックキューは、確認後もメッセージを保持しません。別のコンシューマーがパイプライン開始前にデータを承認した場合、再実行できません。
パイプラインがメッセージを承認する前にクラッシュした場合、メッセージはどうなりますか?
RabbitMQ は少なくとも 1 回の配信を保証します。パイプラインがクラッシュした場合、またはコンシューマーが確認応答(ACK)を送信する前に切断した場合、未確認のメッセージはキューに残され、再接続時に再配信されます。これらのメッセージでは、_redeliveredメタデータ列はtrueです。
コネクタは厳密に1回配信を保証できますか?
いいえ、マネージド RabbitMQ コネクタは最低 1 回セマンティクスを提供しています。RabbitMQのクラシックキューは、ブローカーによって割り当てられた一意のメッセージIDを提供していません。そのため、コネクタレイヤーでの正確な重複排除はできません。厳密な1回限り処理が必要な場合は、アプリケーション固有のキー(例えば、プロデューサーによって設定されたmessage_idや、メッセージ本文内のビジネスキーなど)を使用してダウンストリームで重複排除してください。
コネクタは RabbitMQ ストリームをサポートしていますか?
いいえ。マネージドコネクタはRabbitMQクラシックキューのみをサポートしています。RabbitMQ ストリームは、異なるオフセットベースのモデルを採用しています。