hipotures created NIFI-8075:
-------------------------------

             Summary: ConvertRecord Json to Avro with null values
                 Key: NIFI-8075
                 URL: https://issues.apache.org/jira/browse/NIFI-8075
             Project: Apache NiFi
          Issue Type: Bug
          Components: Core Framework
    Affects Versions: 1.12.1
         Environment: 18.04.1-Ubuntu
            Reporter: hipotures


ConvertRecord processor with settings
  Record Reader: JsonTreeReader (with Infer Schema)
  Record Writer: AvroRecordSetWriter (with Embed Avro Schema)
change non {color:#000000}schema field names{color} avro (e.g. with "-", "@") 
to fields with underscore, but with NULL values.

Example below.

Input JSON:
{noformat}
{
 "id" : "6e07e04d-d644-bf76-f30f-ce648da478e0",
 "type" : "agreement",
 "attributes" : {
 "code" : "16-00-04332-20-01",
 "origin-code" : "07-19-305",
 "service-type" : "07",
 "service-name" : "Leczenie stomatologiczne",
 "amount" : 112500.0,
 "updated-at" : "2019-12-13T08:39:20",
 "provider-code" : "160004332",
 "provider-name" : "ISP STOMATOLOGICZNA JANUSZ KUBRAK",
 "provider-place" : "SZCZECIN",
 "year" : 2020,
 "branch" : "16"
 },
 "links" : {
 "related" : 
"https://api.nfz.gov.pl/app-umw-api/agreements/6e07e04d-d644-bf76-f30f-ce648da478e0?format=json";
 }
}{noformat}

Output Avro data:
{code:java}
[ {
 "id" : "6e07e04d-d644-bf76-f30f-ce648da478e0",
 "type" : "agreement",
 "attributes" : {
 "code" : "16-00-04332-20-01",
 "origin_code" : null,
 "service_type" : null,
 "service_name" : null,
 "amount" : 112500.0,
 "updated_at" : null,
 "provider_code" : null,
 "provider_name" : null,
 "provider_place" : null,
 "year" : 2020,
 "branch" : "16"
 },
 "links" : {
 "related" : 
"https://api.nfz.gov.pl/app-umw-api/agreements/6e07e04d-d644-bf76-f30f-ce648da478e0?format=json";
 }
} ]{code}

Output Avro schema:
{noformat}
{
 "type":"record",
 "name":"nifiRecord",
 "namespace":"org.apache.nifi",
 "fields":[
 {
 "name":"id",
 "type":[
 "null",
 "string"
 ]
 },
 {
 "name":"type",
 "type":[
 "null",
 "string"
 ]
 },
 {
 "name":"attributes",
 "type":[
 "null",
 {
 "type":"record",
 "name":"attributesType",
 "fields":[
 {
 "name":"code",
 "type":[
 "null",
 "string"
 ]
 },
 {
 "name":"origin_code",
 "type":[
 "null",
 "string"
 ],
 "aliases":[
 "origin-code"
 ]
 },
 {
 "name":"service_type",
 "type":[
 "null",
 "string"
 ],
 "aliases":[
 "service-type"
 ]
 },
 {
 "name":"service_name",
 "type":[
 "null",
 "string"
 ],
 "aliases":[
 "service-name"
 ]
 },
 {
 "name":"amount",
 "type":[
 "null",
 "double"
 ]
 },
 {
 "name":"updated_at",
 "type":[
 "null",
 "string"
 ],
 "aliases":[
 "updated-at"
 ]
 },
 {
 "name":"provider_code",
 "type":[
 "null",
 "string"
 ],
 "aliases":[
 "provider-code"
 ]
 },
 {
 "name":"provider_name",
 "type":[
 "null",
 "string"
 ],
 "aliases":[
 "provider-name"
 ]
 },
 {
 "name":"provider_place",
 "type":[
 "null",
 "string"
 ],
 "aliases":[
 "provider-place"
 ]
 },
 {
 "name":"year",
 "type":[
 "null",
 "long"
 ]
 },
 {
 "name":"branch",
 "type":[
 "null",
 "string"
 ]
 }
 ]
 }
 ]
 },
 {
 "name":"links",
 "type":[
 "null",
 {
 "type":"record",
 "name":"linksType",
 "fields":[
 {
 "name":"related",
 "type":[
 "null",
 "string"
 ]
 }
 ]
 }
 ]
 }
 ]
}{noformat}
 

Workaround: for "static" JSONs - ReplaceTextWithMapping processor before 
ConvertRecord.

 

 

 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to