Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

This chapter page describes the Avro support that has been added to the for Ultra Format Definition Language (UFDL). This addition functionality enables you to compile Avro definitions, and to encode data into,   and decode it from the Avro format. A schema in Avro is represented in JSON. You can implement non-protocol data issues in an Analysis agent.

Overview

In you manage Avro parsing in UFDL is managed by applying the the avro_block construct.

Code Block
languagetext
themeEclipse
avro_block {
<avro json schema>
 
};

The output of from an Avro encoder represents a single Avro record, not a complete Avro data file. To deserialize de-serialize these records using a third party tool, you must add the correct Avro header to the records based on the description of Avro provided in the link below.

The full description of the Avro language can be found at:   https://avro.apache.org/docs/current/spec.html.

...

Complex TypeNotes
record

Supports the attributes: name, namespace, doc (optional), aliases (optional), fields.

The fields is attribute is an array of listing fields and supports the attributes:   name, doc (optional), type, default, order (optional), aliases (optional).

enumSupports the attributes: name, namespace, doc (optional), aliases (optional), symbols.
arraySupports the attribute: items
mapSupports the attribute: values
union

Implemented as a record with all types set to optional. If two values are set, both are encoded. If no values are set, none are encoded.

To specify a union value, you must use udrCreate.

fixed

Supports the attributes: name, namespace, aliases (optional), size

...

Note
titleNote!

Use the doc attribute to add a comment.

Limitations

The following limitations apply for the Avro support in:

  • Line and Column are not fully implemented.
  • No string values are permitted in APL for for the enum type.
  • Encoding the Avro object container file is not supported.
  • aliases is are not fully supported.
  • default is not fully supported.
  • Cross references to other Ultra definitions are not supported.
  • array of arrays is is not correctly implemented. E g For example, array of array of x is implemented with array of y, where y is a record with one value field. This value field is an array of x.
  • map of x is implemented via an array of y, where y is a record with two fields: key and value, where value is x.

...

Avro Format Example

To encode an Arvo data file, a format definition is included in the Ultra avro_block block in the Ultra format.

...