mongodb - 使用 mongo-kafka 作为接收器连接器,如何将字段的值设置为 Date 类型?
问题描述
我有一个 mongo sink 连接器以及一个模式注册表。
我将 mongo sink 连接器配置为访问类似于:https ://github.com/mongodb/mongo-kafka/blob/master/docs/sink.md#configuration-example-for-avro 的模式注册表
我按照以下方式创建了一个模式:https ://github.com/mongodb/mongo-kafka/blob/master/docs/sink.md#logical-types 。它看起来像这样:
{
"type": "record",
"name": "MyLogicalTypesRecord",
"namespace": "com.mongodb.kafka.data.kafka.avro",
"fields": [
{
"name": "myTimestampMillisField",
"type": {
"type": "long",
"logicalType": "timestamp-millis"
}
}
]
}
但是,当记录通过时,数据看起来像这样:{ "myTimestampMillisField": 1572035138104 }
,而不是类似于 this 的东西{ "myTimestampMillisField": ISODate("2019-10-25T20:28:19.628Z") }
。
我检查了模式注册表以确保逻辑类型在那里并且看起来不错。
我不确定我做错了什么,或者是否有更好的方法在 mongo 中设置为 Date 类型。有任何想法吗?
解决方案
我想到了。
https://docs.confluent.io/current/connect/transforms/timestampconverter.html
"transforms": "TimestampConverter",
"transforms.TimestampConverter.type": "org.apache.kafka.connect.transforms.TimestampConverter$Value",
"transforms.TimestampConverter.field": "myTimestampMillisField",
"transforms.TimestampConverter.target.type": "Date"
推荐阅读
- python - 在Python中我想替换
母牛跳过了月亮 和the_cow_jumped_over_the_moon - runtime-error - “ngx-datatable-column”不是已知元素-Angular 8 ngx-datatable
- kubernetes - 如何使用舵图中的值文件传递文件?
- javascript - \n 使用 javascript 执行“python -c”时出现问题
- javascript - 如何在数据加载时为选项卡提供微调器
- python - 在 Python 中使用 If 语句调用函数
- html - 有没有办法在android设备的地址栏上放置渐变颜色?
- matplotlib - How to make a gif out of subplot?
- git - 当我们在 cli 中使用分支而不是提交 ID 时,AWS 代码构建错误并显示“不正确的 commid ID”
- html - 滚动时如何编辑缩放位置