文档菜单
文档首页
/
MongoDB Kafka 连接器
/

数据格式

本页内容

  • 概述
  • JSON
  • 原始 JSON
  • BSON
  • JSON 模式
  • Avro
  • Avro 模式
  • Avro 二进制编码
  • 字节数组

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

本指南使用以下示例文档来展示不同格式的行为

{company:"MongoDB"}

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

{"company":"MongoDB"}

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

  • 原始 JSON

  • BSON

  • JSON 模式

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

原始JSON是一种由字符串组成的JSON对象数据格式。您可以用以下方式表示原始JSON中的示例文档

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

当在源或目标连接器上指定字符串转换器时,您会使用原始JSON。要查看指定了字符串转换器的连接器配置,请参阅转换器指南。

BSON 是一种类似于 JSON 的对象的二进制序列化编码。BSON 以这种方式编码 示例文档

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

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

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

JSON Schema 是一种用于指定 JSON 对象 模式 的语法。模式是与 Apache Kafka 主题相关联的定义,它定义了该主题的有效值。

您可以使用 JSON Schema 以这种方式为 示例文档 指定模式

{
"$schema":"https://json-schema.fullstack.org.cn/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定义了两个与连接器相关的数据格式

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

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

注意

不支持的Avro类型

连接器不支持以下Avro类型

  • 枚举类型。请使用字符串代替。

  • fixed类型。请使用bytes代替。

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

  • 具有超过2个元素的union类型。

  • 具有多个null元素的union类型。

重要

接收连接器和逻辑类型

MongoDB Kafka接收连接器支持所有Avro模式原始和复杂类型,但是接收连接器仅支持以下逻辑类型

  • 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