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