Skip to main content

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:

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

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