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
DynamicAvroUDR
DynamicAvroUDR is an output of Avro Decoder. The type of “data” filed depends on the schema used for encoding/decoding the payload.
All elements in a map can be accessed via key equal to their “name” value in corresponding avro schema
The following fields are included in the DynamicAvroUDR
:
Field | Description |
---|---|
data (any) | Contains content decoded using decoder |
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 binary encoded avro message payload. This should be just a message payload without any metadata. |
readerSchemaID (string) | Avro Reader SchemaID - ID of compatible schema used for reading data |
writerSchemaID (string) | Avro Writer SchemaID - schema used for encoding the message |
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 an UDR/type to be encoded using selected schema |
writerSchemaID (string) | Avro Writer SchemaID - schema used for encoding the message |
AvroEnumUDR
AvroEnumUDR is used 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”) |