Docs Menu
Docs Home
/
MongoDB Kafka Connector
/ /

トピックの名前付け

このページの例は、MongoDB Kafka ソース コネクタを構成して、レコードを公開するトピックの名前をカスタマイズする方法を示しています。

デフォルトでは、MongoDB Kafka ソース コネクタは、変更イベントが発生した MongoDB名前空間と同じ名前の Kafka トピックに変更イベント データを公開します。 名前空間は、データベース名とコレクション名をドット()で連結したstringです。 文字の。

次の例は、コネクタが変更イベント データを公開する Kafka トピックをカスタマイズするさまざまな方法を示しています。

  • トピック プレフィックス

  • トピックサフィックス

  • トピック名前空間マップ

  • ワイルドカードを使用したトピック名前空間マップ

変更イベント データの名前空間の先頭に string を付加し、その Kafka トピックにレコードを公開するようにソース コネクタを構成できます。 この設定により、プレフィックスと名前空間が「.」と自動的に連結されます。 文字の。

トピック プレフィックスを指定するには、次の例に示すように、 topic.prefix構成設定を使用します。

topic.prefix=myPrefix
database=test
collection=data

設定が完了すると、コネクタはtestデータベース内のdataコレクションに対するすべての変更を、 myPrefix.test.dataという名前の Kafka トピックに公開します。

変更イベント データの名前空間に string を追加し、その Kafka トピックにレコードを公開するようにソース コネクタを構成できます。 この設定により、名前空間とサフィックスが「」と自動的に連結されます。 文字の。

トピック サフィックスを指定するには、次の例に示すようにtopic.suffix構成設定を使用します。

topic.suffix=mySuffix
database=test
collection=data

設定が完了すると、コネクタはtestデータベース内のdataコレクションに対するすべての変更を、 test.data.mySuffixという名前の Kafka トピックに公開します。

ソース コネクタを構成して、名前空間値を受信変更イベント データの Kafka トピック名にマッピングできます。

変更イベントのデータベース名または名前空間がマップ内のフィールドのいずれかと一致する場合、コネクタはそのマッピングに対応する値にレコードを公開します。

変更イベントのデータベース名または名前空間がどのマッピングとも一致しない場合、別のトピック命名設定で特に指定されていない限り、connector はデフォルトのトピック命名スキームを使用してレコードを公開します。

データベースとコレクションの両方を含むマッピングは、ソース データベース名のみを指定するマッピングよりも優先されます。

重要

名前空間マップの一致は、コネクタが他のトピック命名設定を適用する前に発生します。 定義されている場合、コネクタはマッピング後にドキュメント名にtopic.prefixtopic.suffix設定を適用します。

次の例は、 topic.namespace.map設定を指定して、 carDbデータベースからautomobilesトピックへ、およびcarDb.ev名前空間からelectricVehiclesトピックへのトピック名前空間マッピングを定義する方法を示しています。

topic.namespace.map={"carDb": "automobiles", "carDb.ev": "electricVehicles"}

carDb.ev名前空間マッピングはcarDbマッピングよりも優先されるため、コネクタは次のアクションを実行します。

  • 変更イベントがデータベースcarDbとコレクションevから送信された場合、コネクタは宛先をelectricVehiclesトピックに設定します。

  • 変更イベントがデータベースcarDbev以外のコレクションから送信された場合、コネクタは宛先をautomobiles.<collectionName>トピックに設定します。

  • 変更ドキュメントがcarDb以外のデータベースから取得された場合、コネクタは宛先トピックをデフォルトの名前空間命名スキームに設定します。

  • 定義されている場合、コネクタは名前空間マッピングを実行した後に宛先トピック名にtopic.prefixtopic.suffix設定を適用します。

トピック名前空間マップの例に示されているように、トピック名前空間マップでデータベース名と名前空間を指定するだけでなく、ワイルドカード*を使用して、マッピングなしですべてのデータベースと名前空間の変更イベントを照合できます。

topic.namespace.map={"carDb": "automobiles", "carDb.ev": "electricVehicles", "*": "otherVehicles"}

前述のワイルドカードの例では、コネクタはcarDb以外のすべてのデータベースに発生した変更ドキュメントをotherVehiclesトピックに公開します。

戻る

複数のソース