Avro-Datentypen
Mithilfe des Eingabedaten-Tools können Sie unkomprimierte und mit Verkleinerung komprimierte Avro-Dateien lesen. Mithilfe des Datenausgabe-Tools können Sie Avro-Dateien schreiben.
Eingabe
Es wird nur die Komprimierung mit Verkleinerung unterstützt.
Die meisten der 14 systemeigenen Avro-Datentypen werden unterstützt. Die Typenzuordnung beim Importieren ist wie folgt:
Zeichenfolge: UTF-8 wird in „V_WString“ (UTF-16) konvertiert
Bytes: Beibehalten als Blob (verwenden Sie das Blob-Tool zur Konvertierung wie erforderlich)
Int: Beibehalten als Int32
Long: Wird als Int64 beibehalten
Float: Wird als Float beibehalten
Double: Wird als Double beibehalten
Boolesch: Wird als Bool beibehalten
Null: Nicht unterstützt
Enum: Konvertiert zu Zeichenfolgen-Äquivalent
Union: Alteryx unterstützt Vereinigungen mit zwei Untertypen. Beide Untertypen müssen äquivalent (z. B. beide Int oder beide Double) oder einer davon muss Null sein.
Der Alteryx-Feldtyp ist der Typ des Nicht-Null-Zweigs (oder beide Zweige für den Fall, dass beide nicht null sind).
Wenn der Nicht-Null-Zweig aktiv ist, enthält das Alteryx-Feld diesen Wert.
Wenn der Null-Zweig aktiv ist, wird das Alteryx-Feld auf Null festgelegt.
Ungültige Vereinigungen werden als JSON in einen V_WString importiert (verwenden Sie das JSON-Parse-Tool zur Konvertierung wie erforderlich). Beispielsweise wird eine Vereinigung mit einem Int als aktiver Zweig als „{"int":123}“ dargestellt.
Fixed: Beibehalten als Blob (verwenden Sie das Blob-Tool zur Konvertierung wie erforderlich)
Die folgenden Avro-Typen werden systemintern nicht unterstützt, sondern als JSON in eine Zeichenfolge importiert (verwenden Sie das JSON-Parse-Tool zur Konvertierung wie erforderlich):
Datensatz: „{"SubField1":7,"SubField2":"Field2"}“ ist ein Beispiel für einen Datensatz, der sowohl Int- als auch Zeichenfolgenfelder enthält.
Array: „[1,2,3,4,5]“ ist ein Beispiel für ein Array von Ints.
Zuordnung: „{"Key1":Value1,"Key2":Value2}“ ist ein Beispiel für eine Zuordnung einer Zeichenfolge zu Double.
Ausgabe
Beim Schreiben von Avro-Dateien stehen Ihnen zwei Optionen zur Verfügung:
Komprimierung aktivieren (Verkleinern): Durch die Aktivierung der Komprimierung wird die Ausgabezeit erhöht, doch bei größeren Dateien wird auch die Netzwerkzeit verkürzt. Die unterstützte Komprimierung verwendet den DEFLATE-Algorithmus (im Prinzip GZIP) und sollte systemeigen von anderen Avro-fähigen Tools wie Hive unterstützt werden.
Nullwerte unterstützen: Durch Auswahl dieser Option wird „_alle_Felder“ als Vereinigung mit einem Null-Zweig und einem Wert-Zweig geschrieben. Wenn der Alteryx-Wert null ist, dann ist bei der Ausgabe-Avro-Vereinigung der Null-Zweig ausgewählt, andernfalls wird dessen Wert-Zweig ausgewählt.
Wenn diese Option nicht ausgewählt ist, werden alle Ausgabefelder als deren systemeigene Avro-Typen (keine Vereinigung) geschrieben. Alteryx-Felder, die null sind, werden als deren Standardwert geschrieben (z. B. die Zahl 0 für einen int32 und eine leere Zeichenfolge für ein Zeichenfolgenfeld).
Verwenden Sie eventuell ein Formel-Tool, um Nullwerte mit einem „bekannten“ Wert zu verarbeiten, sodass sie in Hadoop verarbeitet werden können.
Die Typenzuordnung von Alteryx zu Avro ist wie folgt:
Bool: Beibehalten als Boolesch
Byte, Int16, Int32: Beibehalten als Int (32 Bit)
Int64: Beibehalten als Long (64 Bit)
Float: Wird als Float beibehalten
Datum/Uhrzeit als Datum, Uhrzeit, Datum/Uhrzeit
Double: Wird als Double beibehalten
FixedDezimal: Konvertiert in Double
String, V_String, Date, Time, DateTime: Beibehalten als String (UTF-8)
WString, V_WString: Konvertiert in String (UTF-8)
Blob, SpatialBlob: Beibehalten als 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-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 |