Types mapping
Types described in the Avro specification have to be mapped to types present in the MediationZone platform.
You can find the mapping in the table below:
Avro type | Corresponding MZ type |
---|---|
null | null |
boolean | boolean |
int | int* |
long | long* |
float | float* |
double | double* |
string | string |
record | AvroRecordUDR |
enum | AvroEnumUDR |
fixed | AvroFixedUDR |
*Numeric types needs casting while preparing data for encoding. See Avro Decoder Example 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 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 https://infozone.atlassian.net/wiki/spaces/MD92/pages/182648833/Avro+Types+and+UDRs#Types-mapping for mapping Avro types to MediationZone type).
For example - if type of top element in schema is record - then “data” field’s type will AvroRecordUDR. If type of the top element is string - then “data” field’s type will be string.
Please check Avro Decoder Example 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”) |