Kafka Mongo 接收器连接器,如何将 SMT 时间戳转换器用于 JSON 数组中的日期归档

Kafka Mongo Sink connector , how to use SMT timestampconverter for the date filed inside a JSON array

"转换": "TimestampConverter",

"transforms.TimestampConverter.type": "org.apache.kafka.connect.transforms.TimestampConverter$Value",
"transforms.TimestampConverter.format": "yyyy-MM-dd",
"transforms.TimestampConverter.target.type": "string",
"transforms.TimestampConverter.field" : "DateAtlevel2"

当此日期归档在 JSON 的父级别时,SMT 工作正常,当日期归档在 JSOn 数组中时它不起作用。

如何应用 SMT 将 JSON 数组中的字段转换为日期?

我正在使用 Kafka Mongo 接收器连接器。

我假设您使用的是 org.apache.kafka.connect.json.JsonConverter.java,它是一个无模式转换器。在这种情况下,您将只能检索 1 级字段。

为什么?在 SMT 阶段,每条记录都被剥离成一个普通的 Map,其中 String 是字段名称,Object 是它的值。 TimestampConverter 所做的只是简单地使用您作为配置 ( map.get("DateAtlevel2") ) 传递的字段名称对该地图进行获取,但找不到它。

要访问 2+ 级字段,您需要一些其他类型的支持模式(AVRO、JSONSchema 或 Protobuff)的输入数据。