Tipi di dati Avro
Utilizza lo strumento Dati di input per leggere i file Avro non compressi e compressi con Deflate e utilizza lo strumento Dati di output per scrivere i file Avro.
Input
È supportata solo la compressione con Deflate.
È supportata la maggior parte dei 14 tipi di dati Avro nativi. La mappatura dei tipi in fase di importazione è la seguente:
String: UTF-8 convertito in V_WString (UTF-16)
Byte: mantenuto come Blob (utilizza lo strumento Blob per eseguire la conversione come necessario)
Int: mantenuto come Int32
Long: mantenuto come Int64
Float: mantenuto come Float
Double: mantenuto come Double
Boolean: mantenuto come Bool
Null: non supportato
Enum: convertito in String Equivalent
Union: Alteryx supporta i tipi union con due sottotipi. Entrambi i sottotipi devono essere equivalenti (ad esempio, entrambi int o entrambi double) o uno di essi deve essere Null.
Il tipo di campo Alteryx è il tipo del ramo non Null (o di entrambi i rami nel caso in cui entrambi siano non Null).
Se il ramo non Null è attivo, il campo Alteryx contiene il relativo valore.
Se il ramo Null è attivo, il campo Alteryx è impostato su Null.
I tipi union non validi vengono importati come JSON in un V_WString (utilizza lo strumento Analisi JSON per eseguire la conversione come necessario). Ad esempio, un tipo union con un int come relativo ramo attivo può essere rappresentato come "{"int":123}".
Fixed: mantenuto come Blob (utilizza lo strumento Blob per eseguire la conversione come necessario)
I seguenti tipi Avro non sono supportati in modalità nativa ma vengono importati come JSON in una stringa (utilizza lo strumento Analisi JSON per eseguire la conversione secondo necessità):
Record: ad esempio "{"SubField1":7,"SubField2":"Field2"}" per un record contenente campi di tipo sia int che string.
Array: ad esempio "[1,2,3,4,5]" per un array di int.
Map: ad esempio "{"Key1":Value1,"Key2":Value2}" per una mappatura da string a double.
Output
Per la scrittura di file Avro sono disponibili due opzioni:
Abilita compressione (Deflate): l'attivazione della compressione aumenta il tempo di output ma, con file di dimensioni maggiori, riduce anche il tempo di rete. La compressione supportata utilizza l'algoritmo DEFLATE (essenzialmente gzip) e dovrebbe essere supportata in modo nativo da altri strumenti compatibili con Avro, ad esempio Hive.
Supporta valori null: selezionando questa opzione, i campi _all_ vengono scritti come union con un ramo null e un ramo valore. Se il valore Alteryx è null, nel tipo union Avro di output è selezionato il ramo null, altrimenti è selezionato il ramo valore.
Se questa opzione non è selezionata, tutti i campi di output vengono scritti come i relativi tipi Avro nativi (non union). I campi Alteryx null vengono scritti come il relativo valore predefinito (ad esempio il numero 0 per un int32 e una stringa vuota per un campo string).
Considera l'utilizzo di uno strumento Formula per gestire i valori Null con un valore "noto" in modo che possano essere gestiti in Hadoop.
La mappatura dei tipi da Alteryx ad Avro è la seguente:
Bool: mantenuto come Boolean
Byte, Int16, Int32: mantenuti come Int (32 bit)
Int64: mantenuto come Long (64 bit)
Float: mantenuto come Float
Data e ora come Data, Ora, Data e ora
Double: mantenuto come Double
FixedDecimal: convertito in Double
String, V_String, Date, Time, DateTime: mantenuti come String (UTF-8)
WString, V_WString: convertiti in String (UTF-8)
Blob, SpatialBlob: mantenuti come Byte
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-millisin 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 |