Docs Menu
Docs Home
/
MongoDB Kafka Connector
/ /

スキーマの適用

項目一覧

  • Overview
  • Default Schemas
  • キー スキーマ
  • 値スキーマ
  • 変換されたドキュメントのスキーマ
  • スキーマを指定する
  • スキーマの推論

このガイドでは、MongoDB Kafka ソース コネクタで受信ドキュメントにスキーマを適用する方法を学習できます。

Kafka Connect には、キー スキーマ値スキーマの 2 つのタイプのスキーマがあります。 Kafka Connect は、値とキーの両方を含むメッセージを Apache Kafka に送信します。 キー スキーマは、Apache Kafka に送信されるメッセージ内のキーの構造を強制します。 値スキーマは、Apache Kafka に送信されるメッセージの値の構造を強制します。

重要

用語に関する注釈

このガイドでは、BSON の定義とは若干異なる「key」という単語の Apache Kafka の定義を使用します。 BSONでは、「キー」は、ドキュメント内のフィールドの一意のstring識別子です。

Apache Kafka では、「キー」は、メッセージを書き込むトピックのパーティションを決定するために使用されるメッセージで送信されるバイト配列です。 Kafka キーは、他のキーまたは nullの重複を指定できます。

connector でのスキーマの指定は任意であり、次のいずれかのスキーマの組み合わせを指定できます。

  • 値スキーマのみ

  • キー スキーマのみ

  • 値とキー スキーマの両方

  • No schemas

Tip

スキーマの利点

Kafka Connect でスキーマを使用する利点について詳しくは 、 Confluent のこちらの記事 を参照してください。

Apache Avro や JSON schema などの特定のデータ形式で Apache Kafka を介してデータを送信する場合は、 変換ガイド をご覧ください。

Apache Kafka のキーと値の詳細については、 公式 Apache Kafka の紹介 を参照してください。

connectorは 2 つのデフォルトのスキーマを提供します。

変更イベントの詳細については、 変更ストリーム に関するガイドをご覧ください。

デフォルト スキーマの詳細について は、 MongoDB Kafka Connector ソース コードの こちら のデフォルト スキーマを参照してください。

コネクタは、 変更イベント ドキュメントの_idフィールドのデフォルトのキー スキーマを提供します。 このガイドで説明されている変換のいずれかを使用して、変更イベント ドキュメントから_idフィールドを削除しない限り、デフォルトのキー スキーマを使用する必要があります。

これらの変換のいずれかを指定し、受信ドキュメントにキー スキーマを使用する場合は、このガイドの「 スキーマの指定 」セクションで説明されているように、キー スキーマを指定する必要があります。

次のオプションを使用して、デフォルトのキー スキーマを有効にできます。

output.format.key=schema

connectorは、変更イベント ドキュメントのデフォルト値スキーマを提供します。 このガイドで説明されているように、変更イベント ドキュメントを変換しない限り、デフォルト値スキーマを使用する必要があります。

これらの変換のいずれかを指定し、受信ドキュメントに 値スキーマを使用する場合は、このガイドの「 変換されたドキュメントのスキーマ 」セクションで説明されているメカニズムの 1 つを使用する必要があります。

次のオプションを使用して、デフォルト値スキーマを有効にできます。

output.format.value=schema

ソース コネクタで変更イベント ドキュメントを変換するには、次の 2 つの方法があります。

  • publish.full.document.only=trueオプション

  • 変更イベント ドキュメントの構造を変更する集計パイプライン

MongoDB 変更イベント ドキュメントを変換する場合、スキーマを適用するには次の操作を行う必要があります。

上記の構成オプションの詳細については、「 Change Stream プロパティ」ページを参照してください。

Avro スキーマ構文を使用して、受信ドキュメントのスキーマを指定できます。 ドキュメント値とキーのスキーマを指定する方法を確認するには、次のタブをクリックします。

output.format.key=schema
output.schema.key=<your avro schema>
output.format.value=schema
output.schema.value=<your avro schema>

スキーマを指定する方法を示す例については、「 スキーマの指定」の使用例を参照してください。

Avro schema の詳細については、「データ形式」のガイドを参照してください。

重要

変換子

Atlas のバイナリ エンコーディングで Apache Kafka を介してデータを送信する場合は、Avro 変換を使用する必要があります。 詳細については、変換に関するガイド を参照してください。

ソース コネクタで受信ドキュメントのスキーマを推論することができます。 このオプションは、開発や構造を頻繁に変更しないデータソースに適していますが、ほとんどの本番環境の配置ではスキーマを指定することをお勧めします。

次のオプションを指定して、コネクターにスキーマを推論させることができます。

output.format.value=schema
output.schema.infer.value=true

ソース コネクタは、配列に保存されているネストされたドキュメントを含む受信ドキュメントのスキーマを推測できます。 connector バージョン 1.9 以降では、ネストされたドキュメント間に次のケースで説明される違いがある場合、 string型の割り当てにデフォルト設定される代わりに、スキーマ推論によりフィールドの適切なデータ型が収集されます。

  • フィールドが、あるドキュメントには存在するが、別のドキュメントには欠落している。

  • フィールドがあるドキュメントには フィールドが存在しますが、別のドキュメントにはnullが存在します。

  • フィールドは、あるドキュメントには任意の型の要素を含む配列ですが、別のドキュメントには追加の要素または他のデータ型の要素があります。

  • フィールドは、あるドキュメントでは任意の型の要素を含む配列ですが、別のドキュメントでは空の配列です。

ネストされたドキュメント間でフィールド型が競合する場合、コネクターは競合をフィールドのスキーマにプッシュダウンし、デフォルトでstring型の割り当てになります。

注意

キー スキーマを推論できません

connector はキー スキーマ推論をサポートしていません。 キー スキーマを使用して MongoDB 変更イベント ドキュメントを変換する場合は、このガイドの「 スキーマの指定 」セクションで説明されているように、キー スキーマを指定する必要があります。

戻る

変更ストリーム