Docs 菜单
Docs 主页
/
MongoDB Kafka Connector
/

Data Formats

在此页面上

  • Overview
  • JSON
  • Raw JSON
  • BSON
  • JSON schema
  • Avro
  • Avro Schema
  • Avro 二进制编码
  • 字节数组

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

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

{company:"MongoDB"}

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

{"company":"MongoDB"}

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

  • Raw JSON

  • BSON

  • JSON schema

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

原始 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 部署发送和接收文档。

有关BSON的更多信息,请参阅 BSON规范。

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 schema 网站。

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

有关 Apache Avro 的更多信息,请参阅 Apache Avro 文档。

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

有关所有 Avro 模式类型的列表,请参阅 Apache Avro 规范。

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

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

\x0eMongoDB

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

要学习;了解有关 Avro 二进制编码的更多信息,请参阅 Avro 规范的此部分。

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

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

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

后退

连接至 MongoDB