Table des matières

Search

  1. Preface
  2. Introduction aux transformations
  3. Ports de transformation
  4. Caches de transformation
  5. Transformation Outil de validation des adresses
  6. Transformation Agrégation
  7. Transformation Association
  8. Transformation Exception d'enregistrements incorrects
  9. Transformation Convertisseur de casse
  10. Transformation Classeur
  11. Transformation Comparaison
  12. Transformation Consolidation
  13. Transformation Masquage des données
  14. Transformation Processeur de données
  15. Transformation Décision
  16. Transformation Exception d'enregistrements dupliqués
  17. Transformation Expression
  18. Transformation filtre
  19. Transformation Hiérarchique à relationnel
  20. Transformation Java
  21. Référence de l'API de transformation Java
  22. Expressions Java
  23. Transformation jointure
  24. Transformation Générateur de clés
  25. Transformation Libellé
  26. Transformation Recherche
  27. Caches de recherche
  28. Cache de recherche dynamique
  29. Transformation Correspondance
  30. Transformations Correspondance dans l'analyse de champ
  31. Transformations de correspondance dans l'analyse d'identité
  32. Transformation Fusion
  33. Transformation Normaliseur
  34. Transformation Analyseur
  35. Transformation Python
  36. Transformation Rang
  37. Transformation Lecture
  38. Transformation Relationnel à hiérarchique
  39. Transformation Consommateur de service Web REST
  40. Transformation Routeur
  41. Transformation Générateur de séquence
  42. Transformation Trieur
  43. Transformation SQL
  44. Transformation Normalisation
  45. Transformation Union
  46. Transformation Stratégie de mise à jour
  47. Transformation Consommateur de service Web
  48. Analyse des messages SOAP du service Web
  49. Génération des messages SOAP du service Web
  50. Transformation moyenne pondérée
  51. Transformation Écriture
  52. Délimiteurs de transformation

Developer Transformation Guide

Developer Transformation Guide

Exemple de conversion en données struct

Exemple de conversion en données struct

Votre organisation doit convertir un grand volume de données clients dans un fichier plat en données struct et l'écrire dans un fichier Avro. Le fichier d'entrée contient des détails clients tels que le nom, l'âge et les numéros de téléphone. Si le nom du client est null dans le fichier d'entrée, vous ne voulez pas ajouter les détails clients au fichier de sortie.
Vous pouvez développer un mappage à l'aide d'une transformation Java pour définir la fonctionnalité de transformation. Dans l'environnement Hadoop, exécutez le mappage sur le moteur Spark pour transformer les données et écrire les données struct dans un fichier Avro.
Créez un mappage et configurez les transformations suivantes :
  • Transformation Lecture qui lit les informations clients depuis une source de fichier plat
  • Transformation Java en tant que transformation active qui convertit les données de fichiers plats en données struct et qui supprime les données incohérentes
  • Transformation Écriture qui écrit les données struct dans un fichier Avro
L'image suivante montre le mappage à l'aide des transformations Lecture, Java et Écriture.
Le mappage m_JavaTx_StructConversion contient une transformation Lecture qui représente la source du fichier plat Customer_Flat. Le mappage contient une transformation Java qui convertit les données de fichiers plats en données struct et une transformation Écriture qui représente la cible Avro Customer_Avro.
Dans l'onglet Bibliothèque de définitions de types de l'éditeur de mappage, créez une définition de type de données complexe Customer. La définition de type de données complexe représente le schéma des données struct. Renommez la bibliothèque de définitions de types en CustomerInfo. Ajoutez les éléments suivants à la définition de type de données complexe :
  • nom de type string
  • âge de type integer
  • numéros de téléphone de type array avec des éléments string
L'image suivante montre la définition de type de données complexe dans la bibliothèque de définitions de types :
La bibliothèque de définitions de types CustomerInfo contient la définition de type de données complexe Customer avec les éléments nom, âge et numéros de téléphone.
Dans la transformation Java, ajoutez un port de sortie struct et spécifiez la configuration type du port pour référencer la définition de type de données complexe que vous avez créée. La transformation Java génère une classe Customer avec les setters et les getters pour lire et définir les champs membres. Cette classe contient les champs membres suivants :
  • _name
  • _age
  • _phones
L'image suivante montre la classe créée pour le port struct dans l'onglet
Code complet
de la vue
Java
 :
L'onglet Code complet de la vue Java dans l'onglet Propriétés de la transformation Java montre la classe externe CustomerInfo et la classe interne Customer avec les getters et les setters des champs membres. Les champs membres _name, _age et _phones sont d'un type de données Java.
Le type de données Java du port struct utilise le nom de la bibliothèque de définitions de types et la définition de type de données complexe. L'image suivante montre le nom du type de données CustomerInfo.Customer Java pour le champ cust dans le code généré :
L'onglet Code complet de la vue Java indique le code que la transformation Java génère. Le code indique le champ cust créé pour le port struct. Le champ est du type de données CustomerInfo.Customer Java.
Dans la vue
Java
de la transformation Java, importez des packages Java personnalisés, tiers ou intégrés que la transformation exige. Écrivez et compilez le code Java pour convertir les données de fichiers plats en données struct et pour supprimer la ligne client si le nom du client est Null.
L'image suivante montre le code dans l'onglet
À l'entrée
 :
 L'onglet À l'entrée de la vue Java indique le code qui définit la fonctionnalité de transformation.
Validez et exécutez le mappage sur le moteur Spark pour écrire les données transformées dans la sortie du fichier Avro.