Skip to main content

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:

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

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

  • DateTime as Date, Time, DateTime

  • 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