Additionally, it provides an InputFormat for reading Avro OCF files when using , see Avro OCF for details on how to ingest OCF files.

    Make sure to in the extensions load list.

    Druid supports most Avro types natively, there are however some exceptions which are detailed here.

    Unions

    The default mode will treat unions as a single value regardless of the type it is populated with.

    If you wish to operate on each different member of a union however you can set extractUnionsByType on the Avro parser in which case unions will be expanded into nested objects according to the following rules:

    • Primitive types and unnamed complex types are keyed their type name. i.e int, string
    • Complex named types are keyed by their names, this includes , fixed and enum.

    This is safe because an Avro union can only contain a single member of each unnamed type and duplicates of the same named type are not allowed. i.e only a single array is allowed, multiple records (or other named types) are allowed as long as each has a unique name.

    Binary types

    bytes and fixed Avro types will be returned by default as base64 encoded strings unless the option is enabled on the Avro parser. This setting will decode these types as UTF-8 strings.

    Enums

    enum types will be returned as string of the enum symbol.

    Complex types

    record and map types representing nested data can be ingested using flattenSpec on the parser.

    Logical types