JsonToAvroBinaryPostExecuter
Group |
|
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
}