Tipos de datos Avro

Utiliza Herramienta Datos de entrada para leer archivos Avro comprimidos sin comprimir y desinflar y utilizar el Herramienta Datos de salida para escribir archivos Avro.

Datos de entrada

Sólo se admite la compresión de desinflado.

La mayoría de los 14 tipos de datos nativos de Avro son soportados. La asignación de tipos en Import from es la siguiente:

  • Cadena: UTF-8 convertido a V_WString (UTF-16)
  • Bytes: mantenido como BLOB (use la herramienta BLOB para convertirlo como sea necesario)
  • Int: mantenida como Int32
  • Largo: mantenido como Int64
  • Flotador: mantenido como flotador
  • Doble: mantenido como doble
  • Boolean: mantenido como bool
  • NULL: no se admite
  • Enum: convertido en equivalente de cadena
  • Unión: Alteryx apoya los sindicatos con dos sub-tipos. Ambos subtipos deben ser equivalentes (por ejemplo, tanto int como Double) o uno de ellos debe ser nulo.
    • El tipo de campo Alteryx será el tipo de la rama no nula (o ambas sucursales en el caso de que ambas no sean nulas)
    • Si la rama no nula está activa, el campo Alteryx contendrá ese valor
    • Si la rama nula está activa, el campo Alteryx se establecerá en null
    • Los sindicatos no válidos se importan como JSON en un V_WString (utilice la herramienta de análisis JSON para convertirlo según sea necesario). Por ejemplo, una unión con un int como su rama activa puede ser representada como "{" int ": 123}".
  • Arreglado: mantenido como BLOB (usa la herramienta BLOB para convertirlo como sea necesario)

Los siguientes tipos de Avro no se admiten de forma nativa, sino que se importan como JSON en una cadena (utilice el Herramienta Convertir a JSON para convertirlo según sea necesario):

  • Registro: por ejemplo, "{" SubField1 ": 7," SubField2 ":" Campo2 "} para un registro que contenga campos int y String
  • Array: por ejemplo, "[1, 2, 3, 4, 5]" para una matriz de enteros
  • Map: por ejemplo, "{" clave1 ": valor1," clave2 ": valor2}" para un mapa de cadena a doble

Salida

Al escribir archivos Avro, hay dos opciones:

  1. Activar compresión (desinflar): al activar la compresión aumentará el tiempo de salida pero, con archivos más grandes, también reducirá el tiempo de red. La compresión soportada utiliza el algoritmo de desinflado (esencialmente gzip) y debe ser soportado nativamente por otras herramientas compatibles con Avro como la colmena.
  2. Admitir valores nulos: al seleccionar esta opción, se escribirán campos _all_ como uniones con una rama nula y una rama de valor. Si el valor Alteryx es null, la Unión de salida Avro tendrá su rama nula seleccionada, de lo contrario tendrá su rama de valor seleccionada.
  3. Si no se selecciona esta opción, todos los campos de salida se escribirán como sus tipos de Avro nativos (no sindicalizados).  Los campos Alteryx que son NULL se escribirán como su valor predeterminado (por ejemplo, el número 0 para un Int32 y una cadena vacía para un campo de cadena).

    Considere el uso de un Herramienta Fórmula para manejar valores NULL con un valor ' conocido ' para que puedan ser manejados en Hadoop.

La asignación de tipos de Alteryx a Avro es la siguiente:

  • Bool: mantenida como Boolean
  • Byte, Int16, Int32: mantenida int (32-bit)
  • Int64: mantenido como de largo (64-bit)
  • Flotador: mantenido como flotador
  • Doble: mantenido como doble
  • FixedDecimal: convertido al doble
  • String, V_String, Date, Time, DateTime: mantenida como String (UTF-8)
  • WString, V_WString: convertido a String (UTF-8)
  • BLOB, SpatialBlob: mantenidos como bytes