Data Formats
Overview
このガイドでは、MongoDB Kafka Connector とパイプラインを操作するときに使用するデータ形式について学習できます。
このガイドでは、次のサンプルドキュメントを使用して、さまざまな形式の動作を示します。
{company:"MongoDB"}
JSON
JSON は、JavaScript オブジェクト表記に基づくデータ交換形式です。 次のように、 サンプル ドキュメントを JSON で表します。
{"company":"MongoDB"}
connector を使用する際には、JSON に関連する次のデータ形式が表示されることがあります。
JSON の詳細については、 JSON の公式ウェブサイトを参照してください。
Raw JSON
Raw JSON は、string として記述された JSON オブジェクトで構成されるデータ形式です。 次のように、サンプル ドキュメントを Raw JSON で表します。
"{\"company\":\"MongoDB\"}"
ソース コネクタまたは Sink コネクタで 変換を指定する場合は、Raw を使用します。JSONstringstring変換を指定するコネクタ構成を表示するには、変換ガイドを参照してください。
BSON
BSON は、JSON のようなオブジェクト用のバイナリ直列化エンコーディングです。 BSON はサンプル ドキュメントを次のようにエンコードします。
\x1a\x00\x00\x00\x02company\x00\x08\x00\x00\x00MongoDB\x00\x00
connectorは BSON 形式を使用して MongoDB 配置でドキュメントを送受信します。
BSON の詳細について は、 BSON 仕様 を参照してください。
JSON Schema
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 の公式ウェブサイトを参照してください。
Avro
Apache Avro は、スキーマによって記述されたデータをシリアル化およびトランスポートするためのオープンソース フレームワークです。 Avro は、コネクタに関連する 2 つのデータ形式を定義します。
Apache Avro の詳細については、 Apache Avro ドキュメント を参照してください。
Avro Schema
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 にデータを送受信する場合は、バイト配列を使用します。 変換の詳細については、変換のガイドを参照してください。