Tipos de datos Avro
Utiliza la herramienta Datos de entrada para leer archivos Avro sin comprimir y comprimidos mediante la opción desinflar, y utiliza la herramienta Datos de salida para escribir archivos Avro.
Entrada
Solo se admite la compresión mediante la opción desinflar.
La mayoría de los 14 tipos de datos propios de Avro son compatibles. Esta es la asignación de tipos en la importación:
Cadena: UTF-8 convertida en V_WString (UTF-16)
Bytes: Se mantiene como Blob (utiliza la herramienta Blob para convertir según sea necesario)
Int: Se mantiene como Int32
Long: Se mantiene como Int64
Float: Se mantiene como Float
Double: Se mantiene como Double
Boolean: Se mantiene como Bool
Null: No compatible
Enum: Se convierte en un equivalente de cadena
Union: Alteryx es compatible con los apilados de dos subtipos Ambos subtipos deben ser equivalentes (por ejemplo, ambos int o double) o uno de ellos debe ser Null.
El tipo de campo Alteryx es el tipo de rama no nula (o ambas ramas en el caso de que no sean nulas).
Si la rama no nula está activa, el campo Alteryx contiene ese valor.
Si la rama nula está activa, el campo Alteryx aparece como nulo.
Los apilados no válidos se importan como JSON en un V_WString (usa la herramienta Análisis JSON para convertir según sea necesario). Por ejemplo, se puede representar un apilado con un int como la rama activa como “{"int":123}”.
Fijo: Se mantiene como Blob (utiliza la herramienta Blob para convertir según sea necesario)
Estos tipos de Avro no son originalmente compatibles; sin embargo, se importan a una cadena como JSON (usa la herramienta Análisis JSON para convertir según sea necesario):
Registro: Por ejemplo, “{"SubField1":7,"SubField2":"Field2"}” para un registro que contiene campos int y de cadenas.
Matriz: Por ejemplo, “[1,2,3,4,5]” para una variedad de ints.
Asignar: Por ejemplo, “{"Key1":Value1,"Key2":Value2}” para una asignación de cadena a doble.
Salida
Hay dos opciones para escribir en archivos Avro:
Habilitar la compresión (desinflar) : habilitar la compresión aumenta el tiempo de salida; sin embargo, en el caso de archivos más grandes, también reduce el tiempo de red. La compresión admitida utiliza el algoritmo DEFLATE (esencialmente gzip) y debe ser compatible de forma intrínseca con otras herramientas que admitan Avro, como Hive.
Compatibilidad con valores Null : si seleccionas esta opción, se escriben _todos_ los campos como apilados con una rama nula y una rama de valor. Si el valor Alteryx es nulo, el apilado Avro de salida tiene la rama nula seleccionada; de lo contrario, tiene la rama de valor seleccionada.
Si esta opción no está seleccionada, todos los campos de salida se escriben como sus respectivos tipos Avro nativos (no apilados). Los campos Alteryx que son nulos se escriben como sus valores predeterminados (por ejemplo, el número 0 para un int32 y una cadena vacía para un campo de cadena).
Considera usar una herramienta Fórmula para tratar los valores Null con un valor “conocido” a fin de que se puedan manejar en Hadoop.
Esta es la asignación de tipos de Alteryx a Avro:
Bool: Se mantiene como booleano
Byte, Int16, Int32: Se mantiene en Int (32 bits)
Int64: Se mantiene como Long (64 bits)
Float: Se mantiene como Float
DateTime as Date, Time, DateTime
Double: Se mantiene como Double
FixedDecimal: Se convierte en Double
Cadena, V_String, Fecha, Hora, Fecha y hora: Se mantienen como cadena (UTF-8)
WString, V_WString: Se convierten en cadena (UTF-8)
Blob, SpatialBlob: Se mantiene como Bytes