Используя NiFi 1.7.1 (который использует Java Avro 1.8.1) и в AvroSchemaRegistry, я пытаюсь определить схему, которая имеет поля name
и app.name
на верхнем уровне. В соответствии с документацией Avro [1] я бы предположил, что я мог бы просто определить полное имя как "name": "app.name"
, но я столкнулся с ошибкой Illegal character in: app.name
. Это правда, что часть имени полного имени не допускает точек, но в соответствии с документацией: «Если указанное имя содержит точку, то предполагается, что это полное имя ...»
Затем я попытался использовать поле пространства имен. Используя следующую схему:
{
"type": "record",
"name": "nameRecord",
"fields": [
{
"type": [
"string",
"null"
],
"name": "name"
},
{
"type": [
"string",
"null"
],
"namespace": "app",
"name": "name"
}
]
}
Я нажал эту ошибку: Duplicate field name in record nameRecord: name type:UNION pos:1 and name type:UNION pos:0
В конечном счете, я хотел бы иметь возможность определить схему для записи следующим образом (в JSON):
{
"name": "Joe",
"app.name": "NiFi"
}
[1] https://avro.apache.org/docs/1.8.1/spec.html#names