Skip to main content

Tipos de dados Avro

Use a ferramenta Dados de Entrada para ler arquivos Avro não compactados e compactados por deflate e use a ferramenta Dados de Saída para gravar arquivos Avro.

Entrada

Apenas a compactação do tipo "deflate" é compatível.

A maioria dos 14 tipos de dados Avro nativos são compatíveis. O mapeamento de tipos na importação é o seguinte:

  • String: UTF-8 convertido para V_WString (UTF-16)

  • Bytes: mantido como Blob (use a ferramenta Blob para converter conforme necessário)

  • Int: mantido como Int32

  • Longo: mantido como Int64

  • Float: mantido como Float

  • Double: mantido como Double

  • Booleano: mantido como Bool

  • Nulo: não compatível

  • Enum: convertido para String Equivalent

  • União: o Alteryx tem suporte para uniões com dois subtipos. Ambos os subtipos devem ser equivalentes (por exemplo, ambos "int" ou ambos "double") ou um deles deve ser nulo.

    • O tipo de campo do Alteryx é o tipo do ramo não nulo (ou ambos os ramos, no caso de não serem nulos).

    • Se o ramo não nulo está ativo, o campo do Alteryx contém esse valor.

    • Se o ramo nulo está ativo, o campo do Alteryx é definido como nulo.

    • Uniões inválidas são importadas como JSON em uma V_WString (use a ferramenta Análise JSON para converter conforme necessário). Por exemplo, uma união com um "int" como seu ramo ativo pode ser representada como "{"int":123}".

  • Fixo: mantido como Blob (use a ferramenta Blob para converter conforme necessário)

Esses tipos Avro não são compatíveis nativamente, mas são importados como JSON em uma cadeia de caracteres (usar a ferramenta Análise JSON para converter conforme necessário):

  • Registro: por exemplo, "{"SubField1":7,"SubField2":"Field2"} para um registro contendo campos "int" e "string".

  • Array: por exemplo, "[1,2,3,4,5]" para uma matriz de "ints".

  • Mapa: por exemplo, "{"Key1":Value1,"Key2":Value2}" para um mapa de "string" para "double".

Saída

Ao gravar arquivos Avro, há duas opções:

  1. Habilitar compactação (deflate): habilitar a compactação aumenta o tempo de saída, mas, com arquivos maiores, também reduz o tempo de rede. A compactação compatível usa o algoritmo DEFLATE (essencialmente gzip) e deve obter suporte nativamente de outras ferramentas capazes de operar no Avro, como a Hive.

  2. Valores nulos com suporte: selecionar esta opção grava os campos "_all_" como uniões com um ramo nulo e um ramo de valor. Se o valor no Alteryx for nulo, a união Avro de saída terá seu ramo nulo selecionado; caso contrário, terá seu ramo de valor selecionado.

    Se esta opção não estiver selecionada, todos os campos de saída serão gravados como seus tipos Avro nativos (não união). Os campos no Alteryx que são nulos são gravados como seu valor padrão (por exemplo, o número 0 para um int32 e uma cadeia de caracteres vazia para um campo de cadeia de caracteres).

    Considere usar uma ferramenta Fórmula para tratar valores nulos com um valor "conhecido" para que eles possam ser manipulados no Hadoop.

O mapeamento de tipos de Alteryx para Avro é o seguinte:

  • Bool: mantido como booleano

  • Byte, Int16, Int32: Int mantido (32 bits)

  • Int64: mantido como longo (64 bits)

  • Float: mantido como Float

  • DateTime como data, hora e data/hora

  • Double: mantido como Double

  • FixedDecimal: convertido para Double

  • String, V_String, Date, Time, DateTime: mantidos como String (UTF-8)

  • WString, V_WString: convertidos para String (UTF-8)

  • Blob, SpatialBlob: mantidos como bytes

AVRO file Read/Write From Alteryx Designer

Earlier, in the .avro file, the DateTime field was represented solely using the logical type timestamp-millis (i.e., in UTC). Now, a Time Zone dropdown has been introduced in both the Read and Write options, offering the values No Time Zone and Local Time Zone.

  • No Time Zone: The DateTime is treated as timestamp-millis in Avro. This ensures backward compatibility, as no time zone conversion occurs during Avro read or write operations.

  • Local Time Zone: DateTime values are converted. During Avro write, the conversion is based on the Default Time Zone configured in the Runtime settings.

During Avro read, DateTime conversion is performed based on the stored logicalType and the Default Time Zone specified in the Runtime settings. For example: If the local time zone is IST (UTC +05:30) and the Default Time Zone is CEST (UTC +02:00), a DateTime value of 2026-03-25 22:00:00 will be converted during .avro write. Since IST is 3 hours and 30 minutes ahead of CEST, the value will be adjusted to 2026-03-25 18:30:00 in CEST.

Below is a summary of DateTime conversions during Avro write and read operations. In the examples, the Local Time Zone is IST. The first four columns represent the .avro Write scenario, while the next three columns represent the Read scenario for the same Avro data.

Incoming Time

Workflow Runtime TZ

AVRO TZ

AVRO Write

AVRO TZ

Workflow Runtime TZ

Alteryx AVRO Read

2026, 2, 11, 22:00:00

Local

NTZ

2026, 2, 11, 22:00:00 (Timestamp-millis)

NTZ

Local

2026, 2, 11, 22:00:00

NTZ

UTC

2026, 2, 11, 22:00:00

LTZ

UTC

2026, 2, 11, 22:00:00

LTZ

Local

2026, 2, 12, 03:30:00

2026, 2, 11, 22:00:00

Local

LTZ

2026, 2, 11, 22:00:00 (Local timestamp-millis)

NTZ

Local

2026, 2, 11, 22:00:00

LTZ

Local

2026, 2, 11, 22:00:00

NTZ

UTC

2026, 2, 11, 22:00:00

LTZ

UTC

2026, 2, 11, 16:30:00

2026, 2, 11, 22:00:00

UTC

NTZ

2026, 2, 11, 22:00:00 (Timestamp-millis)

LTZ

UTC

2026, 2, 11, 22:00:00

UTC

2026, 2, 11, 22:00:00

Local

2026, 2, 11, 22:00:00

Local

2026, 2, 12, 03:30:00

2026, 2, 11, 22:00:00

UTC

LTZ

2026, 2, 12, 03:30:00 (Local--timestamp-millis)

LTZ

Local

2026, 2, 12, 03:30:00

NTZ

Local

2026, 2, 12, 03:30:00

NTZ

UTC

2026, 2, 12, 03:30:00

LTZ

UTC

2026, 2, 11, 22:00:00

2026, 2, 11, 22:00:00

CEST

LTZ

2026, 2, 12, 2: 30:00 (Local-timestamp-millis)

LTZ

Local

2026-02-12 02:30:00

2026-02-11 21:00:00

2026-02-12 02:30:00

2026-02-12 02:30:00

2026, 2, 11, 22:00:00

CEST

NTZ

2026, 2, 11, 22:00:00 (Timestamp-millis)

LTZ

Local

2026-02-12 03:30:00

LTZ

UTC

2026-02-11 22:00:00

NTZ

UTC

2026-02-11 22:00:00

NTZ

Local

2026-02-11 22:00:00