“transforms”:“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 mongoFlume连接器。
1条答案
按热度按时间dxpyg8gm1#
我猜你在用
org.apache.kafka.connect.json.JsonConverter.java
这是一个无模式转换器。在这种情况下,只能检索级别1字段。为什么?在smt阶段,每条记录被剥离成一个普通的Map<string,object>,其中
String
是字段名和Object
是它的价值所在。timestampconverter所做的只是用您作为config()传递的字段名对该Map执行get操作map.get("DateAtlevel2")
)却找不到。要获得对level2+字段的访问权限,您需要一些支持模式的其他类型的输入数据(avro、jsonschema或protobuff)。