使用 mongo-kafka 作为接收器连接器,如何将字段的值设置为 Date 类型?
Using mongo-kafka as sink connector, how do I set a field's value to be of Date type?
我有一个 mongo 接收器连接器和一个架构注册表。
我将 mongo 接收器连接器配置为访问架构注册表,类似于: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 }
,而不是类似这样的东西 { "myTimestampMillisField": ISODate("2019-10-25T20:28:19.628Z") }
。
我检查了模式注册表以确保逻辑类型存在并且看起来不错。
我不确定我做错了什么,或者是否有更好的方法在 mongo 中设置为日期类型。有什么想法吗?
我想通了。
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"
我有一个 mongo 接收器连接器和一个架构注册表。
我将 mongo 接收器连接器配置为访问架构注册表,类似于: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 }
,而不是类似这样的东西 { "myTimestampMillisField": ISODate("2019-10-25T20:28:19.628Z") }
。
我检查了模式注册表以确保逻辑类型存在并且看起来不错。
我不确定我做错了什么,或者是否有更好的方法在 mongo 中设置为日期类型。有什么想法吗?
我想通了。
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"