Avro Types and UDRs(4.2)
Types mapping
Types described in the Avro specification have to be mapped to types present in the platform.
You can find the mapping in the table below:
Avro type | Corresponding type in platform |
---|---|
null | null |
boolean | boolean |
int | int* |
long | long* |
float | float* |
double | double* |
string | string |
record | AvroRecordUDR |
enum | AvroEnumUDR |
fixed | AvroFixedUDR |
*Numeric types need casting while preparing data for encoding. See Avro Decoder/Encoder Example(4.2) example to see the usage.
UDRs
The following UDRs should be used while working with Avro Decoder/Encoder
AvroDecoderUDR
AvroDecoderUDR is used as an input for Avro Decoder.
The following fields are included in the AvroDecoderUDR
:
Field | Description |
---|---|
data (bytearray) | This field contains a binary encoded avro message payload. This should be just a message payload without any metadata. |
readerSchemaID (string) | Avro Reader SchemaID - ID of the compatible schema used for reading data |
writerSchemaID (string) | Avro Writer SchemaID - schema used for encoding the message |
DynamicAvroUDR
DynamicAvroUDR is an output of Avro Decoder.
It consists of only one field called data
. The type of data
field depends on a schema used for decoding operation. It can be both primitive or complex type. See Avro Types and UDRs(4.2) | Types mapping for mapping Avro types to MediationZone type.
Example
If type of the top element in a schema is record
then the field type of data
will be AvroRecordUDR
and if type is string then the field type of data
will be string.
See Avro Decoder/Encoder Example(4.2) to see an example usage of this UDR.
The following fields are included in the DynamicAvroUDR
:
Field | Description |
---|---|
data (any) | Contains content decoded using a decoder |
AvroEncoderUDR
AvroEncoderUDR is used as an input for Avro Encoder.
The following fields are included in the AvroEncoderUDR
:
Field | Description |
---|---|
data (any) | This field contains a UDR/type to be encoded using a selected schema |
writerSchemaID (string) | Avro Writer SchemaID - schema used for encoding the message |
AvroEnumUDR
AvroEnumUDR is used to represent Enum avro type.
The following fields are included in the AvroEnumUDR
:
Field | Description |
---|---|
fullname (string) | Name of the enum field |
symbol (string) | Selected value of the specific enum type |
AvroFixedUDR
AvroFixedUDR is used to representive Fixed avro type.
The following fields are included in the AvroFixedUDR
:
Field | Description |
---|---|
bytes (bytearray) | Byte value of the field |
fullname (string) | Name of the fixed field |
AvroRecordUDR
AvroRecordUDR is used to represent Avro Record structure.
The following fields are included in the AvroRecordUDR
:
Field | Description |
---|---|
fields (map<string,any>) | Map containing fields of the record. |
fullname (string) | Name of the record including the namespace (example “example.avro.User3”) |