我正在尝试使用“kafka-avro-console-producer”将 json 转换为 avro 并将其发布到 kafka 主题。
我可以做那个扁平的 json/schema,但是对于下面给定的 schema 和 json,我得到“org.apache.avro.AvroTypeException:Unknown union branch EventId”错误。
任何帮助,将不胜感激。
架构:
{
"type": "record",
"name": "Envelope",
"namespace": "CoreOLTPEvents.dbo.Event",
"fields": [{
"name": "before",
"type": ["null", {
"type": "record",
"name": "Value",
"fields": [{
"name": "EventId",
"type": "long"
}, {
"name": "CameraId",
"type": ["null", "long"],
"default": null
}, {
"name": "SiteId",
"type": ["null", "long"],
"default": null
}],
"connect.name": "CoreOLTPEvents.dbo.Event.Value"
}],
"default": null
}, {
"name": "after",
"type": ["null", "Value"],
"default": null
}, {
"name": "op",
"type": "string"
}, {
"name": "ts_ms",
"type": ["null", "long"],
"default": null
}],
"connect.name": "CoreOLTPEvents.dbo.Event.Envelope"
}
Json 输入如下:
{
"before": null,
"after": {
"EventId": 12,
"CameraId": 10,
"SiteId": 11974
},
"op": "C",
"ts_ms": null
}
在我的情况下,我不能改变模式,我只能改变 json 这样它的工作方式