Docs Menu
Docs Home
/
MongoDB Kafka Connector
/

Data Formats

項目一覧

  • Overview
  • JSON
  • Raw JSON
  • BSON
  • JSON Schema
  • Avro
  • Avro Schema
  • 平均バイナリ エンコーディング
  • バイト配列

このガイドでは、MongoDB Kafka Connector とパイプラインを操作するときに使用するデータ形式について学習できます。

このガイドでは、次のサンプルドキュメントを使用して、さまざまな形式の動作を示します。

{company:"MongoDB"}

JSON は、JavaScript オブジェクト表記に基づくデータ交換形式です。 次のように、 サンプル ドキュメントを JSON で表します。

{"company":"MongoDB"}

connector を使用する際には、JSON に関連する次のデータ形式が表示されることがあります。

  • Raw JSON

  • BSON

  • JSON Schema

JSON の詳細については、 JSON の公式ウェブサイトを参照してください。

Raw JSON は、string として記述された JSON オブジェクトで構成されるデータ形式です。 次のように、サンプル ドキュメントを Raw JSON で表します。

"{\"company\":\"MongoDB\"}"

ソース コネクタまたは Sink コネクタで 変換を指定する場合は、Raw を使用します。JSONstringstring変換を指定するコネクタ構成を表示するには、変換ガイドを参照してください。

BSON は、JSON のようなオブジェクト用のバイナリ直列化エンコーディングです。 BSON はサンプル ドキュメントを次のようにエンコードします。

\x1a\x00\x00\x00\x02company\x00\x08\x00\x00\x00MongoDB\x00\x00

connectorは BSON 形式を使用して MongoDB 配置でドキュメントを送受信します。

BSON の詳細について は、 BSON 仕様 を参照してください。

JSON schema は、JSON オブジェクトのスキーマを指定するための構文です。 スキーマは、そのトピックの有効な値を定義する Apache Kafka トピック に添付された定義です。

次のように、JSON schema を含むサンプルドキュメントのスキーマを指定できます。

{
"$schema":"http://json-schema.org/draft-07/schema",
"$id":"unique id",
"type":"object",
"title":"Example Schema",
"description":"JSON Schema for the sample document.",
"required":[
"company"
],
"properties":{
"company":{
"$id":"another unique id",
"type":"string",
"title":"Company",
"description":"A field to hold the name of a company"
}
},
"additionalProperties":false
}

コネクタに JSON schema 変換 を適用するときに、JSON schema を使用します。 JSON schema 変換を指定するコネクター構成を表示するには、「変換」ガイドを参照してください。

詳細については、 JSON schema の公式ウェブサイトを参照してください。

Apache Avro は、スキーマによって記述されたデータをシリアル化およびトランスポートするためのオープンソース フレームワークです。 Avro は、コネクタに関連する 2 つのデータ形式を定義します。

Apache Avro の詳細については、 Apache Avro ドキュメント を参照してください。

Avro schema は、JSON ベースのスキーマ定義構文です。 Atlas スキーマは、次のグループのデータ型の仕様をサポートしています。

警告

サポートされていない Avro タイプ

コネクタは、次の Avro タイプをサポートしていません。

  • enum 型。 代わりにstringを使用してください。

  • fixed 型。 代わりにbytesを使用してください。

  • null プリミティブ タイプとして。 ただし、union の要素としてのnull サポートされています。

  • union 2 つ以上の要素を持つ型。

  • union 複数のnull要素を持つタイプ。

重要

Sink Connector と論理型

MongoDB Kafka Sink Connector は、すべてのAvro schemaのプリミティブおよび複雑なタイプをサポートしていますが、Sink Connector は次の論理型のみをサポートします。

  • decimal

  • date

  • time-millis

  • time-micros

  • timestamp-millis

  • timestamp-micros

次のように、サンプル ドキュメント用の Avro スキーマを構築できます。

{
 "type": "record",
 "name": "example",
 "doc": "example documents have a company field",
 "fields": [
   {
     "name": "company",
     "type": "string"
   }
 ]
}

MongoDB Kafka ソース コネクタのスキーマを定義するときは、Avro スキーマを使用します。

すべての Avro スキーマ タイプのリストについては、 Apache Avro 仕様 を参照してください。

Atlas は、 Avro スキーマによって定義された JSON オブジェクトのバイナリ直列化エンコーディングを指定します。

上記のAvro スキーマを使用すると、次のように Atlas バイナリ エンコーディングでサンプル ドキュメントを表すことができます。

\x0eMongoDB

ソース コネクタまたは シンク コネクタで Atlas 変換を指定する場合は、Avro バイナリ エンコーディングを使用します。 Atlas 変換を指定するコネクター構成を表示するには、「変換」ガイドを参照してください。

Atlas バイナリ エンコーディングの詳細について は、 Atlas 仕様のこのセクションを参照してください。

バイト配列は、非構造化バイトの連続するシーケンスです。

上記のいずれかのエンコーディングを使用して、サンプル ドキュメントをバイト配列として表現できます。

コネクタが Apache Kafka にデータを送受信する場合は、バイト配列を使用します。 変換の詳細については、変換のガイドを参照してください。

戻る

MongoDB に接続する