JsonToAvroBinaryPostExecuter

Group

Postexecution

Function

This postexecuter can encode data in the AVRO format.

Configuration file

None. Configuration is done directly with a string in field Config file.

Description


This postexecuter can encode data in the AVRO format using a schema file and is primarily used for this purpose in conjunction with the Response Route Kafka (see there), but can also be used with others.

The path to the schema file is specified in field Config file.

Example


Schema
{
"name": "complexOuterRecord",
"type": "record",
"fields":
[
{
"name": "primitiveNull",
"type": "null"
},
{
"name": "primitiveBoolean",
"type": "boolean"
},
{
"name": "primitiveInt",
"type": "int"
},
{
"name": "primitiveLong",
"type": "long"
},
{
"name": "primitiveFloat",
"type": "float"
},
{
"name": "primitiveDouble",
"type": "double"
},
{
"name": "primitiveBytes",
"type": "bytes"
},
{
"name": "primitiveString",
"type": "string"
},
{
"name": "complexNestedRecord",
"type":
[
"null",
{
"name": "complexInnerRecord",
"type": "record",
"fields":
[
{
"name": "innerRecordPrimitiveInt",
"type":
[
"null",
"int"
]
},
{
"name": "innerRecordPrimitiveString",
"type":
[
"null",
"string"
]
}
]
}
]
},
{
"name": "complexEnumValue",
"type":
{
"name": "complexEnumType",
"type": "enum",
"symbols":
[
"LEAVES",
"ACORNS",
"BELLS",
"HEARTS"
]
}
},
{
"name": "complexArrayValue",
"type":
{
"name": "complexArrayType",
"type": "array",
"items": "int",
"default": []
}
},
{
"name": "complexMapValue",
"type":
{
"name": "complexMapType",
"type": "map",
"values": "string",
"default": {}
}
},
{
"name": "complexFixedValue",
"type":
{
"name": "complexFixedType",
"type": "fixed",
"size": 1
}
},
{
"name": "complexUnionValue",
"type":
[
"null",
"string"
]
},
{
"name": "logicalDecimal",
"type":
{
"type": "bytes",
"logicalType": "decimal",
"precision": 3,
"scale": 1
}
},
{
"name": "logicalUUID",
"type":
{
"type": "string",
"logicalType": "uuid"
}
},
{
"name": "logicalDate",
"type":
{
"type": "int",
"logicalType": "date"
}
},
{
"name": "logicalDurationValue",
"type":
{
"name": "logicalDurationType",
"type": "fixed",
"logicalType": "duration",
"size": 12
}
},
{
"name": "logicalTimeMillis",
"type":
{
"type": "int",
"logicalType": "time-millis"
}
},
{
"name": "logicalTimeMicros",
"type":
{
"type": "long",
"logicalType": "time-micros"
}
},
{
"name": "logicalTimestampMillis",
"type":
{
"type": "long",
"logicalType": "timestamp-millis"
}
},
{
"name": "logicalTimestampMicros",
"type":
{
"type": "long",
"logicalType": "timestamp-micros"
}
},
{
"name": "logicalLocalTimestampMillis",
"type":
{
"type": "long",
"logicalType": "local-timestamp-millis"
}
},
{
"name": "logicalLocalTimestampMicros",
"type":
{
"type": "long",
"logicalType": "local-timestamp-micros"
}
}
]
}


Data
{
"primitiveNull": null,
"primitiveBoolean": true,
"primitiveInt": 2134567890,
"primitiveLong": 9123456789012345678,
"primitiveFloat": 1.39e-45,
"primitiveDouble": 1.79301e308,
"primitiveBytes": "randomTextAsBytes",
"primitiveString": "iamjustatest",
"complexNestedRecord":
{
"complexInnerRecord":
{
"innerRecordPrimitiveInt":
{
"int": 4
},
"innerRecordPrimitiveString":
{
"string": "innerRecordStringValue"
}
}
},
"complexEnumValue": "LEAVES",
"complexArrayValue":
[
1,
2,
3
],
"complexMapValue":
{
"firstEntry": "first",
"secondEntry": "second"
},
"complexFixedValue": "\u00aa",
"complexUnionValue":
{
"string": "union"
},
"logicalDecimal": "\u00FF",
"logicalUUID": "ad0677ab-bd1c-4383-9d45-e46c56bcc5c9",
"logicalDate": 1643886644,
"logicalDurationValue": "\u0000\u1111\u2222\u3333\u4444\u5555\u6666\u7777\u8888\u9999\uaaaa\ubbbb",
"logicalTimeMillis": 7739955,
"logicalTimeMicros": 11223344,
"logicalTimestampMillis": 998877,
"logicalTimestampMicros": 66554433,
"logicalLocalTimestampMillis": 11223344,
"logicalLocalTimestampMicros": 5566778899
}