JSON 格式化程序
Overview
在本指南中,您可以了解如何指定要在JSON MongoDBKafka源 中使用的内置connector 格式化程序类。
JSON 格式化程序
JSON 格式化程序指定 JSON 数据的显示方式。 它们说明connector在输出数据时如何表示不同类型。
内置格式化程序
下表描述了源connector中可用的格式化程序类:
类 | 说明 |
---|---|
com.mongodb.kafka.connect.source.json.formatter.DefaultJson | 传统的严格 JSON 格式化程序。 |
com.mongodb.kafka.connect.source.json.formatter.ExtendedJson | 完全类型安全的扩展 JSON 格式化程序。 此格式化程序强调类型保留,并用 BSON 类型表示大多数值。 |
com.mongodb.kafka.connect.source.json.formatter.SimplifiedJson | 简化的 JSON 格式化程序。 此格式化程序将 ObjectId 、 Decimal 、 Date 和Binary 值表示为字符串。 |
示例
下表描述了本指南中的示例用于演示每种输出格式的示例文档的字段。 这些列描述了每个字段或嵌套字段的字段名称、值和类型。
名称 | 值 | 类型 | |
---|---|---|---|
_id |
| ObjectID ($oid ) | |
w |
| Array of: - Decimal128 ($numberDecimal )- Double ($numberDouble ) | |
x |
| Binary ($binary ) | |
y |
| Date ($date ) | |
z |
| Document with fields: - a : Boolean - b : Int32 ($numberInt )- c : String |
默认 JSON 格式化程序
在源connector的配置属性中,设置以下属性以指定默认的JSON格式化程序:
"output.json.formatter": "com.mongodb.kafka.connect.source.json.formatter.DefaultJson"
当您从 Kafka 主题输出样本文档内容时,输出会显示以下类型表示:
ObjectId
值及其 BSON 类型Decimal
值及其 BSON 类型Binary
值及其缓冲区string和二进制类型Date
自 UNIX 纪元以来的毫秒值
{ "_id": {"$oid": "5f15aab12435743f9bd126a4"}, "w": [{"$numberDecimal": "12345.6789"}, 23.53], "x": {"$binary": "SSBsb3ZlIGZvcm1hdHRpbmch", "$type": "00"}, "y": {"$date": 1683793627000}, "z": {"a": false, "b": 87, "c": "hello world"} }
扩展 JSON 格式化程序
在源connector的配置属性中,设置以下属性以指定扩展JSON格式化程序:
"output.json.formatter": "com.mongodb.kafka.connect.source.json.formatter.ExtendedJson"
当您从 Kafka 主题输出样本文档内容时,输出会显示以下类型表示:
ObjectId
值及其 BSON 类型Decimal
值及其 BSON 类型Double
值及其 BSON 类型Binary
值及其缓冲区string和二进制类型Date
自 UNIX 纪元以来的毫秒值Int32
值及其 BSON 类型
{ "_id": {"$oid": "5f15aab12435743f9bd126a4"}, "w": [{"$numberDecimal": "12345.6789"}, {"$numberDouble": "23.53"}], "x": {"$binary": "SSBsb3ZlIGZvcm1hdHRpbmch", "$type": "00"}, "y": {"$date": 1683793627000}, "z": {"a": false, "b": {"$numberInt": "87"}, "c": "hello world"} }
简化的 JSON 格式化程序
在源connector的配置属性中,设置以下属性以指定简化的JSON格式化程序:
"output.json.formatter": "com.mongodb.kafka.connect.source.json.formatter.SimplifiedJson"
当您从 Kafka 主题输出样本文档内容时,输出会显示以下类型表示:
ObjectId
十六进制string形式的值Decimal
string形式的值Binary
值作为其缓冲区stringDate
string形式的值
{ "_id": "5f15aab12435743f9bd126a4", "w": ["12345.6789", 23.53], "x": "SSBsb3ZlIGZvcm1hdHRpbmch", "y": "2023-05-11T08:27:07Z", "z": {"a": false, "b": 87, "c": "hello world"} }