Types De Données Avro

Version:
2023.1
Last modified: July 26, 2023

Utilisez l'outil Input Datapour lire les fichiers Avro non compressés et dégonflés et utiliser l'outil De Output Datapour écrire des fichiers Avro.

Entrée

Seule la compression Deflate est prise en charge.

La plupart des 14 types de données Avro natifs sont pris en charge. La concordance des types pour l’importation est la suivante :

  • Chaîne: UTF-8 converti en V_WString (UTF-16)
  • Octets: maintenu en tant que BLOB (utilisez l'outil BLOB pour les convertir si nécessaire)
  • Int: maintenu en tant que Int32
  • Long: maintenu en tant que Int64
  • Float: maintenu comme float
  • Double: maintenue en double
  • Boolean: maintenu comme bool
  • NULL: non pris en charge
  • Enum: converti en équivalent de chaîne
  • Union: Alteryx soutient les unions avec deux sous-types. Les deux sous-types doivent être équivalents (par exemple, int ou les deux doubles) ou l'un d'eux doit être null.
    • Le type de champ Alteryx est celui de la branche non Null (ou les deux branches si les deux sont non Null).
    • Si la branche non Null est active, le champ Alteryx contient cette valeur.
    • Si la branche Null est active, le champ Alteryx est défini sur Null.
    • Les unions invalides sont importées en tant que JSON dans un champ V_WString (utilisez l’outil Analyse JSON pour convertir si nécessaire). Par exemple, une union avec un champ int en tant que branche active peut être représentée comme « {“int”:123} ».
  • Correction: maintenue en tant que BLOB (utilisez l'outil BLOB pour convertir au besoin)

Les types Avro suivants ne sont pas pris en charge localement, mais sont importés comme JSON dans une chaîne (utiliser l'outil JSON Parsepour convertir au besoin):

  • Enregistrement: par exemple, "{" SubField1 ": 7," SubField2 ":" champ2 "} pour un enregistrement contenant à la fois des champs int et String
  • Array: par exemple, "[1, 2, 3, 4, 5]" pour un tableau de ints
  • Map: par exemple, "{" Key1 ": value1," key2 ": value2}" pour une carte de chaîne à doubler

Sortie

Lors de l'écriture des fichiers Avro, il existe deux options :

Si cette option n'est pas sélectionnée, tous les champs de sortie seront écrits comme leurs types Avro natifs (non syndiqués).  Les champs Alteryx nuls sont écrits avec leur valeur par défaut (par exemple, le chiffre 0 pour un int32 et une chaîne vide pour un champ de chaîne).

Envisagez d'utiliser un outil De formulepour gérer les valeurs Null avec une valeur « connue » afin qu'elles puissent être manipulées dans Hadoop.

  1. Activer la compression (Dégonfler): La compression habilitante augmentera le temps de sortie mais, avec des fichiers plus volumineux, réduira également le temps de réseau. La compression prise en charge utilise l'algorithme DEFLATE (essentiellement gzip) et doit être pris en charge nativement par d'autres outils avro-capables tels que La ruche.
  2. Lors de la rédaction des fichiers Avro, il existe deux options : si cette option n'est pas sélectionnée, tous les champs de sortie seront écrits comme leurs types Avro natifs (non syndiqués).  Les champs Alteryx nuls sont écrits avec leur valeur par défaut (par exemple, le chiffre 0 pour un int32 et une chaîne vide pour un champ de chaîne). Envisagez d'utiliser un outil De formulepour gérer les valeurs Null avec une valeur « connue » afin qu'elles puissent être manipulées dans Hadoop.
  3. Activer la compression (Dégonfler) : La compression habilitante augmentera le temps de sortie mais, avec des fichiers plus volumineux, réduira également le temps de réseau. La compression prise en charge utilise l'algorithme DEFLATE (essentiellement gzip) et doit être pris en charge nativement par d'autres outils avro-capables tels que La ruche.
  4. Soutenir les valeurs nulles : la sélection de cette option écrira les champs « tous » en tant que syndicats avec une branche nulle et une branche de valeur. Si la valeur Alteryx est nulle, l'union avro de sortie aura sa branche nulle sélectionnée, sinon elle aura sa branche de valeur sélectionnée.
  5. La cartographie de type d'Alteryx à Avro est la suivante:
  6. Bool: maintenu comme booléen
  7. Byte, Int16, Int32: maintenu int (32 bits)
  8. Int64: maintenu en tant que long (64 bits)
  9. Float: maintenu comme float
  10. Double: maintenue en double
  11. FixedDecimal: converti en double
  12. String, V_String, date, Time, DateTime: maintenu en tant que chaîne (UTF-8)
  13. WString, V_WString: converti en chaîne (UTF-8)
  14. BLOB, SpatialBlob: maintenu en octets
  15. : La sélection de cette option écrira les champs « tous » en tant qu'Unions avec une branche nulle et une branche de valeur. Si la valeur Alteryx est nulle, l'union avro de sortie aura sa branche nulle sélectionnée, sinon elle aura sa branche de valeur sélectionnée.

La cartographie de type d'Alteryx à Avro est la suivante:

  • Bool: maintenu comme booléen
  • Byte, Int16, Int32: maintenu int (32 bits)
  • Int64: maintenu en tant que long (64 bits)
  • Float: maintenu comme float
  • Double: maintenue en double
  • FixedDecimal: converti en double
  • String, V_String, date, Time, DateTime: maintenu en tant que chaîne (UTF-8)
  • WString, V_WString: converti en chaîne (UTF-8)
  • BLOB, SpatialBlob: maintenu en octets
Cette page vous a-t-elle été utile ?

Vous rencontrez des problèmes avec votre produit Alteryx ? Visitez la communauté Alteryx ou contactez le  support. Vous n'arrivez pas à soumettre ce formulaire ? Envoyez-nous un e-mail.