JsonToAvroBinaryPostExecuter

Configuration file

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

Class name

com.ebd.hub.datawizard.postexec.JsonToAvroBinaryPostExecuter

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 "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
}