Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Docs 菜单
Docs 主页
/
Kafka Connector
/

Data Formats

在本指南中,您可以了解在使用 MongoDB Kafka Connector 和管道时所使用的数据格式。

本指南使用以下样本文档来显示不同格式的行为:

{company:"MongoDB"}

JSON 是一种基于 JavaScript 对象表示法的数据交换格式。 您可以按如下方式用 JSON 表示示例文档

{"company":"MongoDB"}

在使用连接器时,您可能会遇到以下与 JSON 有关的数据格式:

  • Raw JSON

  • BSON

  • JSON schema

For more information on JSON, see the official JSON website.

原始 JSON 是一种由写入为字符串的 JSON 对象组成的数据格式。 您可以按如下方式用原始 JSON 表示样本文档

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

JSONstring在源连接器或接收器Connector器上指定 转换器时,可以使用原始 。要查看指定string转换器的Connector配置,请参阅 转换器指南。

BSON 是类似 JSON 对象的二进制序列化编码。BSON 对示例文档进行如下编码:

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

连接器使用 BSON 格式从 MongoDB 部署发送和接收文档。

For more information on BSON, see the BSON specification.

JSON 模式是一种用于为 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 模式转换器应用到连接器时,您可以使用 JSON 模式。要查看指定 JSON 模式转换器的连接器配置,请参阅转换器指南。

有关更多信息,请参阅官方 JSON 模式网站。

Apache Avro 是一个开源框架,用于序列化和传输模式描述的数据。Avro 定义两种与连接器相关的数据格式:

For more information on Apache Avro, see the Apache Avro Documentation.

Avro 模式是一种基于 JSON 的模式定义语法。Avro 模式支持以下数据类型的规范:

警告

不支持的 Avro 类型

该连接器不支持以下 Avro 类型:

  • enum 类型。改用 string

  • fixed 类型。改用 bytes

  • null 作为原始类型。但是,支持将 null 作为 union 中的元素。

  • union 类型,包含 2 个以上元素。

  • union 类型,包含多个 null 元素。

重要

Sink 连接器和逻辑类型

MongoDB Kafka Sink 连接器支持所有 Avro 模式基元类型和复杂类型,但是 Sink 连接器仅支持以下逻辑类型:

  • 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 模式。

For a list of all Avro schema types, see the Apache Avro specification.

Avro 为 Avro 模式定义的 JSON 对象指定二进制序列化编码。

如果使用前面的 Avro 模式,您就可以用 Avro 二进制编码表示示例文档,如下所示:

\x0eMongoDB

当您在源连接器或接收器连接器上指定 Avro 转换器时,您可以使用 Avro 二进制编码。要查看指定 Avro 转换器的连接器配置,请参阅转换器指南。

To learn more about Avro binary encoding, see this section of the Avro specification.

字节数组是非结构化字节的连续序列。

您可以使用上述任何编码将样本文档表示为字节数组。

当转换器向 Apache Kafka 发送数据或接收来自 Apache Kafka 的数据时,可以使用字节数组。有关转换器的更多信息,请参阅转换器指南。

后退

连接至 MongoDB

在此页面上