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

  • 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