Skip to main content

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:

  1. 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.

  2. 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-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