Types de données Avro
Utilisez l'outil Entrée de données pour lire les fichiers Avro non compressés et compressés par Deflate, et utilisez l'outil Sortie de données pour écrire les fichiers Avro.
Entrée
Seule la compression Deflate est prise en charge.
La plupart des 14 types de données Avro natifs sont pris en charge. La concordance des types pour l'importation est la suivante :
String : UTF-8 converti en V_WString (UTF-16)
Octets : Conservé en Blob (utilisez l'outil Blob pour convertir si nécessaire)
Int : maintenu comme Int32
Long : maintenu comme Int64
Flottant : maintenu comme Flottant
Double : maintenu comme Double
Booléen : maintenu comme Bool
Null : non pris en charge
Enum : converti en équivalent String
Union : Alteryx autorise les unions avec deux sous-types. Les deux sous-types doivent être équivalents (par exemple, deux « int » ou deux « Double ») ou l’un d’eux doit être Null.
Le type de champ Alteryx est celui de la branche non Null (ou les deux branches si les deux sont non Null).
Si la branche non Null est active, le champ Alteryx contient cette valeur.
Si la branche Null est active, le champ Alteryx est défini sur Null.
Les unions invalides sont importées en tant que JSON dans un champ V_WString (utilisez l'outil Interpréter JSON pour convertir si nécessaire). Par exemple, une union avec un champ int en tant que branche active peut être représentée comme « {"int":123} ».
Conservé en Blob (utilisez l'outil Blob pour convertir si nécessaire)
Ces types Avro ne sont pas pris en charge en mode natif, mais ils sont importés comme JSON dans un champ String (utilisez l'outil Interpréter JSON pour effectuer la conversion si nécessaire) :
Enregistrement : par exemple, «{"SubField1":7,"SubField2":"Field2"}» pour un enregistrement contenant les champs « int » et « string ».
Tableau : Par exemple, « [1,2,3,4,5] » pour un tableau de champs « int ».
Carte : par exemple, «{"Key1":Value1,"Key2":Value2}» pour une concordance de champ String en Double.
Sortie
Pendant l'écriture des fichiers Avro, deux options sont possibles :
Activation de la compression (Deflate) : l'activation de la compression ralentit la production de sortie mais, avec des fichiers plus volumineux, le temps réseau est également réduit. La compression utilise l’algorithme DEFLATE (essentiellement gzip) qui doit être pris en charge en mode natif par les autres outils compatibles Avro tels que Hive.
Prise en charge des valeurs Null : si vous activez cette option, tous les champs sont écrits en tant qu'unions avec une branche Null et une branche valeur. Si la valeur Alteryx est nulle, la branche nulle est sélectionnée sur l'union de sortie Avro, sinon la branche valeur est sélectionnée.
Si cette option n'est pas sélectionnée, tous les champs de sortie sont écrits dans leur type Avro natif (sans union). Les champs Alteryx nuls sont écrits avec leur valeur par défaut (par exemple, le chiffre 0 pour un int32 et une chaîne vide pour un champ de chaîne).
Il peut être intéressant d'utiliser un outil Formule pour gérer les valeurs nulles avec une valeur « connue » afin de les prendre en charge dans Hadoop.
La concordance des types entre Alteryx et Avro est la suivante :
Bool : maintenu comme booléen
Octet, Int16, Int32 : champ int conservé (32 bits)
Int64 : Conservé en Long (64 bits)
Flottant : maintenu comme Flottant
DateTime as Date, Time, DateTime
Double : maintenu comme Double
FixedDecimal : converti en Double
String, V_String, Date, Heure, DateHeure : conservé en tant que String (UTF-8)
WString, V_WString : converti en String (UTF-8)
Blob, SpatialBlob : conservé en octets
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 |